ZettelMark is CommonMark with the following additions and constraints.
These constraints are specifically designed to provide cognitive
boundaries resulting in content that is maximally succinct, digestible,
and composable as if applying the UNIX philosophy to knowledge:
communicate one thing well, and make sure it can be composed nicely with
others. This promotes compatibility with more limited text
representations such as YouTube descriptions and Go documentation —
even just on paper. It simplifies the requirements for any
tooling to work with ZettelMark. Relatively powerful parsers and
utilities can be created with simple bash scripts alone. For example,
since no “front-matter” head -1
always gets the title; since tags are
always on last line tail -1
always gets them.
CommonMark is the most widely accepted standard for knowledge content, but further redundancy reductions are required to keep things as simple as possible and maximally readable in source form:
*
,**
,***
for italic, bold, bold italic1.
for ordered lists*
for unordered lists----
for horizontal rule / separator (but generally avoid)Images must meet specific requirements (see Raster Image Figures)
CommonMark does not allow tables, but GitHub does. Therefore, GFM tables are allowed in ZettelMark but with the following constraints to facilitate parsing:
|
(rest is fine to omit)|
is must be a table.Name | Description |
---|---|
Foo | The foo of it all |
Bar | The bar as well |
There are no plans to accept any other table format than what is supported by GitHub and (if and when added) eventually CommonMark. Sticking with this universal standards ensures the most sustainable content syntax.
⚠️ Tables are very hard for some people to process. Often putting the same information in a list, which could be read aloud without misunderstanding might be a better choice.
Additionally, some semantics and constraints to the overall format and organization of a ZettelMark document are needed to make the content easier to create, grok, and index:
> ⚠️
)