◊(Local Yarn Code "Changes To branch/evolve")

Changes to "branch/evolve" between 2021-11-29 17:36:12 and 2022-04-25 19:27:29

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.