◊(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.