1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
+
+
-
+
|
I’m a little better at this than I was when I started the project, and I’m using this branch to implement some ideas that will make everything simpler, quicker, and more elegant.
* The SQLite cache will be removed.
* A custom `#lang` will be used instead of Pollen ([more info](https://joeldueck.com/wiki?name=A+lightweight+Pollen+replacement))
* Articles will keep all the values needed to render themselves and their notes in their metas, rather than reparsing the doc at render time.
* Articles and notes will compile to an AST rather than directly to HTML or LaTeX or MP3 or whatever (no “poly tags” required).
* At compile time, an article will serialize each of its notes to a separate .rktd file in a subfolder. The filename will be timestamp-prefixed to allow for easy sorting.
* A separate build step will serialize articles, notes, and highlighted sources to a separate .rktd file in a subfolder. The filename will be timestamp-prefixed to allow for easy sorting.
* After all updated articles are compiled, an indexer (`yarn/stitch` below) will rebuild sort tables and serialize them to .rktd files:
* Dictionary of main index entries → subentry + list of link targets
* Hash table of series → articles
* Ordered lists of all articles and notes by date
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
-
-
-
+
|
* articles/
* series/
* templates/
* img/
* web/ (CSS, JS, fonts, etc)
* yarn-lib/
* markup (anything needed by articles at compile time)
* struct (AST)
* stitch (for gathering info from/referring to other files)
* render/
* base
* html
* latex
* mp3? etc…
* yarn-doc/
* pollen.rkt
* build.rkt
* blog.rkt
* feed.rkt
* index.rkt
* crossref.rkt
* makefile
Templates will `(require yarn/render/html)` or whichever module is needed for the output format.
|