zet

ZettelMark: Simplified, Semantic CommonMark+Tables

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:

CommonMark does not allow tables, but GitHub does. Therefore, GFM tables are allowed in ZettelMark but with the following constraints to facilitate parsing:

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: