My Objective: create md files that can be universally used in any app compatible with Markdown format, besides Obsidian.
- I want my content to be independent from the editor I choose to work with.
- I want to be able to change the editor whenever I want.
- I want to use more than one editor simultaneously to work with my vault: maybe one is best for bulk editing and another just for writing or connecting the dots.
Unfortunately there isn’t a unique Markdown format definition. There are a lot of specs available:
- John Gruber’s original syntax
- CommonMark
- MarkdownGuide
- GitHub Flavored Markdown Spec
- Ciro Santilli’s Markdown Style Guide
- MultiMarkdown
Why did this happened? Because John Gruber’s canonical description of Markdown’s syntax does not specify the syntax unambiguously.
They all (sorta) share some Basic Syntax but there are additional features like the Extended Syntax for tables, fenced code blocks, footnotes, task lists, and so on. Beyond that, each app decides which one supports.
In order to achive my goal I should restrict my markdown to the most compatible syntax between all of them, but I enjoy highlights, tables, fenced code blocks. Needless to say, I decided against using HTML tags (HTML is not Markdown to begin with).
Highlights syntax (not syntax highlighting for fenced codeblocks) doesn’t have a single shared definition for Markdown variants: some of them propose ==double equal signs== (Joplin and Obsidian adhere to it), others just recommend you to use the <mark>
HTML tag…
Obsidian uses Wikilinks by default, but I disabled that option. I usually open my vault with VSCode and had no problem working with Markdown links. I could even install a ‘Wikilinks extension’ if I wanted but I’d rather not to. Maybe another editor I switch to in the future won’t have that possibility. Dealing manually with internal links adds certain friction.
There are not such things as #tags in any Markdown spec. But a lot of apps implement them. They don’t disturb the content in any way and you can search/filter files with them with a powerful editor or just with a simple command-line grep
.
I do not know exactly how different software treats YAML front matter. It seems to be suitable for handling metadata, but I haven’t started using it yet.
Mermaid for diagrams and Latex for math formulas are awesome, but both introduce dependencies to render or export md notes. Nevertheless, I use them too.
I do not have precise answers to this puzzle. I can only share my experience. I’d like to hear yours.