So often I need to link to a very small bit of code to convey how
something is done. I would put them in an info node if I could include
code, but nothing that supports info nodes also supports code snippets.
This means we need something sustainable that is tied to it. I believe
the solution is a good ‘ol knowledge node with code in it. A zettel is
going to be too limiting to contain all the stuff in the lab —
especially if I write it as a process of steps to follow and use more
than is allowed in ZettelMark. This is more than just a zettel. A
knowledge node is designed for public consumption and less about just
brainstorming. So in mim
(the knowledge management monolith that will
contain zet
and live
and kn
and keg
) it would be within the same
knowledge monorepo (if even a repo at all). I’m thinking it could be a
separate top-level branch called lab
in which code experimentation
goes.
This particular example has all the bells and whistles included. Some
people won’t necessarily want to render everything for Web —
especially when other followers have mim keg
from the command line to
use to read anything on KEG in their terminal (or GUI eventually)
without any web rendering at all. In principle, everything here that
takes a computer to create could be replaced with just folders of paper
containing the same information. GPG signing is a progressive
additions of technology where available, not dependencies.
KEG/
manifest - sorted by lastmod(isosec), path
sigs - GPG signatures by path, one per line
follow - list of KEG URLs followed
cancel - cancelled KEG URLs to ignore completely
types/
infotag/
README.md
zettel/
README.md
lab/
README.md
cv/
README.md
post/
README.md
README.md
zet/
K20220426213407/ - KN Type: Zettel, isosec unique identifier
README.md
lab/
K20220426213452/ - KN Type: Lab
README.md
foo.go
go.mod
info/
README.md - KN Type: InfoTags, multiple h1 tags, <380 each
cv/ - KN Type: CV
README.md - partially generated from data.yaml
data.yaml - main file
gen.go - generator
foo/ - anything needing short url, generated
README.md - standard KN node file
README.gotmpl - (extra but allowed)
data.yaml - standard KN node file
gen.go - anything with gen triggers generation
posts/ - KN Type: Post (edited for publication)
README.md
Note that no Web code of any kind is allowed in any KEG node (unless, of course, the content itself is about Web development). This is by design. Web pages are one form to which KEG Markdown may be rendered, but rendering is out of scope for the KEG project.
However, someone may want rendered Web pages next to a KEG site, say
if both are in the same GitHub repo. Since KEG does not fundamentally
depend on Git it could still be saved there for convenience. The same
goes for hosting on a web server. For example, I could have rwx.gg
pointing to my rendered web pages while keg.rwx.gg
points to the raw
KEG data being served over HTTP, FTP, Gopher, or Secure Shell (scp
,
rsync
, since nothing about KEG cares about the transport protocol). A
KEG node is just another static site to be mirrored, that’s it.
One fundamental different this separation has from previous designs is
that there is no longer an optional index.html
that lives next to the
README.md
file bloating up the entire KEG node.
#mim #keg #structure #design