` this is not really semantically correct, and may be problematic for accessibility. There are so many other things that can break in our fallback render scenario; it may be okay to assume some intent in presentation. If possible, I would use the comment trick instead, unless the adamonition must always be seen, in which case perhaps it shouldn't be an adamonition? ### Rendering fenced blocks A snippet of [Mermaid] or [Graphviz] source may replace itself with its SVG render. This is a bit different to TeX rendering, as nobody can imagine these from source. While content would be as unreadable as ``, it's another language to depend on, not a feature that ships with the browser. On the other hand, images are hard to edit, one needs to know how to generate a new one, so there is an indirect dependency there as well. It's easiest to sketch a raster. I can also draw and edit SVGs in [Graphite] or . [graphviz]: https://graphviz.gitlab.io/ [mermaid]: https://mermaid.js.org/ [graphite]: https://editor.graphite.rs/ ### Bibliography There are extensions like [citeproc] but I like to instead use reference links. [citeproc]: https://github.com/jgm/citeproc They can link to publisher's website, DOI or Arxiv, or internal notes. ``` Quantisation tends to outperform pruning. See [kuzmin23] for details. [kuzmin23]: https://arxiv.org/pdf/2307.02973.pdf ``` The links can be specified in-text, or auto-generated from a BibTex file or pages in `/bibliography`. ``` [angelopoulos22]: /bibliography/angelopoulos22.html ``` Depending on context, `[kuzmin23]` can be rendered in presentation as - `Kuzmin et al. (2023)` - `(Kuzmin et al., 2023)` - `Kuzmin, Nagel, van Baalen, Behboodi, Blankevoort (2023)` Without presentation support, it's still readable. Square [brackets] in text are already in use as punctuation to isolate text from it's surroundings. [brackets]: https://en.wikipedia.org/wiki/Bracket ### Typography It seems that serious typography shouldn't target HTML, but I believe adding much new syntax to content can be bad for reproducibility and writing experience. Otherwise, rewriting some quotes and semantic CSS can improve presentation without needing changes to content. [Practical Typography] is a great resource for rules. See [Pollen] for details on limitations of web publishing. [practical typography]: https://practicaltypography.com [pollen]: https://docs.racket-lang.org/pollen/Backstory.html ## [Diataxis] A model of how docs are consumed, and how they should be structured.  - `how-to` for problem solving - `references` for looking up information - `tutorials` for learning new things - `explanations` for narrow depth A few more categories could work for modelling how docs are produced - `drafts` for early iterations and experiments - `bibliography` for notes on publications - `changelog` as described in [hsiao_2023] for accounting for major changes to the project; `adrs` or `rfcs` could work here as well [diataxis]: https://diataxis.fr/ [intro]: https://www.youtube.com/watch?v=710uQqIqsWk [hsiao_2023]: https://luke.hsiao.dev/blog/housing-documentation/ ## [SECI] A model of knowledge creation from [nonaka_1994]. SECI stands for four subsequent phases of knowledge.  - Socialisation is broadcast and capture of [tacit] knowledge - Externalisation is saving an explicit record of it - Combination is integration with other explicit records - Internalisation is reading everything together and reflecting Knowledge is refined as it cycles between tacit and explicit. Docs as code map well to this framework - "S" is talking to people, adding features, fixing bugs - "E" is copy to local, branch, write, commit, push - "C" is integration, human review, merge, deploy - "I" is searching, clicking and reading everything Editor assist can speed up "E", Much in "C" can be automated. "I" and "S" are not controlled. [seci]: https://en.wikipedia.org/wiki/SECI_model_of_knowledge_dimensions [nonaka_1994]: https://www.uky.edu/~gmswan3/575/Nonaka_1994.pdf [tacit]: https://en.wikipedia.org/wiki/Tacit_knowledge ## Programming as theory building [naur_85] argues that programming is more about development of a collaborative insight/theory than writing down the program itself. [naur_85]: https://pages.cs.wisc.edu/~remzi/Naur.pdf ## Tools for thought Tools for thought. ## Just-in-time over just-in-case [hillmer_2016] proposed to focus on the intersection of - What software can do - What users wish to accomplish - What users can't figure out They also suggest collecting some metrics to - Unpublish low-traffic - Polish high-traffic - Understand reading behavior [hillmer_2016]: https://www.youtube.com/watch?v=FYNAqlQB9U4 ## [ADR] Architectural Decision Records are notes on design decisions that significantly alter architecture. A sequence of ADRs can also be great documentation, useful for onboarding new people to the project. For that purpose, consider a single [ARCHITECTURE.md]. [adr]: https://adr.github.io/ [architecture.md]: https://matklad.github.io/2021/02/06/ARCHITECTURE.md.html ## Moodboard - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -