Everything. Ideas: -- Replace cl-markdown with 3bmd down the line? -- Use cl-inotify or similar for notifications instead of timers? TODO: ;;;; STATIC ;;;; implement start-coleslaw, stop-coleslaw! ;;;; implement cl-store use+init, once every 24 hours? ;;;; how many globals can we move into *storage* as keywords? ALL OF THEM! ;;;; --what about accessing them? ;;;; write a proper version of escape considering wild pathnames and valid URL issues ;;;; implement atom feed. RSS too? ;;;; implement non-disqus comment support? ;;;; What do post update semantics look like? i.e. edit file to change tags. what about post-removal? ;;;; 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)