Everything. Ideas: -- Replace cl-markdown with 3bmd down the line? -- Use cl-inotify or similar for notifications instead of timers? TODO: ;;;; STATIC ;;;; implement head-inject/body-inject/navigation! ;;;; implement start-coleslaw, stop-coleslaw! ;;;; implement render-site!!! ;;;; how many globals can we move into *storage* as keywords? ALL OF THEM! ;;;; -- What about generics? ;;;; implement atom feed. RSS too? ;;;; implement non-disqus comment support? ;;;; What do post update semantics look like? i.e. edit file to change tags. ;;; indices ;; what should it really look like, keeping in mind the API should be mostly ;; identical between the static and dynamic backend? ;; indexes should be id, type, title + posts. rewrite indices to use them. ;;; posts ;; post-url, improve escaping. ;;;; PLUGINS ;;;; add activate-plugin, deactivate-plugin, :active-plugins? ;;;; implement: analytics, crossposting, disqus, mathjax, pygments, recaptcha, s3 ;;;; support input or output dirs being git repos + have git hooks? ;;; import ;; add comment handling ... (when comments ...) ;; support old URLs via use of post-aliases? ;;;; DYNAMIC ;;;; implement the whole damn backend! ;;;; make sure it has an admin interface! ;;;; -- spend two years trying to make it secure without HTTPS+SSL. fail. ;;;; rendering hooks (pygmentize, xposting) via :around/:before/:after methods ;; get run on rendered html before "storage" ;; xposting may be a rendering hook but may necessitate publishing hooks ;; again, these should be methods on a generic function ;;;; template hooks *ARE* pre-rendering-hooks. or methods on GFs. ;;;; they're methods on GFs you fool! work on the classes/constructors for post+indices ;;;; that's the only thing that makes sense. (eg 'disqus, 'mathjax) ;; run before the template is called to generate html or javascript includes ;; for a given template property (eg. comments, includes). they should probably be ;; methods on a generic function (eg. blog-comments, blog-includes)