UPDATE 2023-03-27: This page is obsolete, as it refers to a prior version of this blog. However, it may be of historical interest.

As many people can attest, sometimes you spend more time (and have more fun) tinkering with the underpinnings of a web site instead of actually writing new content to be posted on it. In that spirit, here is my current list of things I’m planning to add to or change about my web site and blog.

(I’ve left old items in place but simply marked them as deleted.)

The following are “must-haves”:

  • blog overlays old site (working)
    • URI rewriting for cononical URIs (done)
    • don’t special case POST for now (but may need to later?)
  • extensionless URIs (working)
    • plugin for Blosxom (done)
    • load as 20extensionless? (after content negotiation, before everything else) (done, loaded as first extension)
    • fix breadcrumbs, check for issues wtth other plugins (seemore, etc. ) (no seemore patch needed, need to post patch to breadcrumbs)
    • MultiViews for Apache (decided not to do this, but instead special-case .html in URI rewriting, will use .var files if I ever need more than that)
    • check for cruft (e.g., *.bak) (done, site can now be regenerated from scratch and be cleaned up with make remote-clean)
  • XHTML version (postponed)
    • return .xhtml vs .html based on Accept header? (decided against this, as it would require special-casing Internet Explorer)
  • basic feed (working)
    • vanilla RSS 0.91 (done)
    • validate feed (feedvalidator.org) (done)
    • try to “stupefy” excerpts to remove fancy punctuation? strip HTML? (left as is for now)
    • fix problem with example HTML tags messing up in NewsFire
  • site and category intros
    • use readme plugin (done)
    • add readme content to feed as description?
  • HTML 4.01 Strict
    • create HTML 4.01 Strict flavour files (done)
    • patch Markdown to generate HTML-compliant empty tags (done)
    • put validation check in footer (done)
    • validate all visible pages
    • fix old pages
  • CSS
    • simplify CSS more if possible
    • change old pages to new design (in progress)
    • add print media style (done)
    • eliminate common.css? (may keep this for Netscape Navigator 4.x)
    • determine proper invocation (done, use @import to hide from Netscape Navigator 4.x)
  • accessibility
    • do Bobby, etc., checks
    • get tips from diveintomark (done)
    • accessibility statement (have draft)
  • typography/markup
    • tweak SmartyPants as necessary (not needed?)
    • add needed entities to template files (including RSS? ), readme files
  • dating posts (working)
    • put date stamp in entry file (done)
    • compare entries_cache_meta plugin to meta plugin plus something else (done, using entries_cache_meta)
    • handle dates for statically-generated pages (have initial hack)
  • decide on archive (done, using the archives plugin)
  • nail down site hierarchy (see below)
  • other
    • look at bettertitles? (done, using bettertitles)
    • change Blosxom file extension from .txt to something else (e.g., .bls) (leaving as-is for now)
    • finalize plugin list and establish an order for them to run (done, using SEQUENCE file to generate prefixes on the fly when copying over new or modified plugins)
    • fix readme invocation (add P tag to readme.html? ) (no, this causes problems in practice, use one-paragraph readme blurbs)

The following are desirable but not necessarily “must-have”:

  • search
    • using Google SiteSearch for now
  • comment/writebacks
    • keep up with new wb versions
    • research URL rewriting for POST
  • other feed types
    • RSS 1.0 and 2.0 (adds dates)
    • Atom (done, using atomfeed plugin)
  • content negotiatlon for HTML vs XHTML (no, see previous note)
    • look for Accepts: application/xml+xhtml (not sent by Internet Explorer or Safari)
    • html flavour vs xhtml
    • would need to modify Markdown, etc., to generate both flavours (but needed for feeds)
  • cache control
    • send Last-modified header (done)
    • send ETag header (done)
    • send Expires header (done)
    • send Cache-control header (done)
    • send Content-length header (done)
    • do If-modified-since check ourselves (done)
    • do If-none-match check ourselves (done)
    • add support for ETag as strong validator (done)