I've started over with riki development. My previous two attempts ended in complicated messes, but at least I learned some things about how riki should be designed. This time I'm taking it slow, and building fundamental building blocks first.
My friend Richard wrote me a PageSpec parser. I'm not much of a parser person, so this helped me a lot.
I've since implemented page names, and resolving a link on a page to another page (LinkingRules). There's a start of an architecture document, and a couple of other notes on how ikiwiki works.
Progress will be slow, but I hope to get to the goal this time.
Below is my current road map. It's not complete: I do not find it feasible to plan all the steps to a distant goal, only the next few steps.
prod:
label: "riki is in production use"
depends:
- html
- scan_source
html:
label: "produces HTML"
depends:
- relative_links
- parse_markdown
- wikilinks
- directives
scan_source:
label: "scans source tree for files"
relative_links:
label: "produces relative internal links"
status: next
parse_wikitext:
label: "parses wikitext"
parse_markdown:
label: "parses markdown text"
depends:
- parse_wikitext
wikilinks:
label: "wiki links produce HTML links"
depends:
- parse_wikitext
directives:
label: "implements needed directives"
depends:
- meta_directive
meta_directive:
label: "implements the meta directive"
depends:
- parse_wikitext
(The above should be a diagram, but because the way I do diagrams with ikiwiki broke, I'll need to implement riki to make it work, sorry.)