Tue Aug 9 13:09:32 CEST 2011

Flat namespace

I want to do the following:

  - get a sorted list of all article IDs by date.  should work with
    cache: don't update this list if the underlying files didn't

    this probably can be done by storing the ID list in the contents
    node, next to the index proper.

  - query article using ID only.  this needs an ID -> section map and
    requires all IDs to be unique.

To get at the list I had to:

  - Change `format-index' in entry-index.ss to collect (Index . ID)
    pairs and store them in the index node under IndexIDs.

  - Create a function get-index-ids:

;; Get all Index->ID maps.  (Index is parsed from Date in parse-article)
(define (get-index-ids [sections *sections*])
  (apply append
         (for/list (((section get-article) (in-dict sections)))
           (dict-ref (rv-force (get-article 'contents)) 'IndexIDs))))

Now, how to use:

  - Don't put it on the front page.  Use a separate link,
    i.e. "recent" to get a chronological page with entries like:

    20110809-130932 [sweb] Flat namespace

  - Use a redirect for section mismatch.

Now, to get at the article titles without forcing body compile, it's
necessary to fish out that information in the first parse, because a
query for 'Entry on the rv value will trigger a full body compile,
including latex etc.

So, I'm moving the index-gathering step to make-index.