Yes, you are correct.
Let me explain what is happening.
First, the reason why I ask this. These are my wishes:
- No vendor lock-in, just plain and simple markdown files.
- A great editing experience: Obsidian (or Visual Code Studio)
- Publish part of my notes as website.
- Enhance my personal knowledge management with my tools.
I ran into a problem: while Obsidian is a great editor, it is not open source. It uses a proprietary indexing, as well as plugins that can only be used with the indexing and rendering of Obsidian.
While dataview is a great plugin, suddenly my markdown files were not portable anymore. I could not render HTML files myself, like I used to do.
Enter the solution: Web Components. Markdown fully supports HTML elements! And it takes only one scripts (and possibly stylesheet) to add support for custom webcomponents to HTML. This is a very portable and elegant solution.
When I want to embed youtube-video’s or image gallaries, this is super easy. Things get a bit harder when I want to engage in my markdown notes: I have to to the indexing myself.
So, I have created a “markdown rendering pipeline” that does the following:
- give it a directory of markdown files
- index the files and extract information (YAML frontmatter, title, tags, etc)
- render it however you like (*.html files, *.json, etc)
- create a server to render on-demand.
So one way to use this, is to index the files, filter for my website (which is only my public notes), then render to HTML.
While I am taking notes, I spin up a local server, which watches the files and renders the HTML files on demand (giving me information that is always up-to-date, without rebuilding the entire website).
In addition, my local zettelkasten server also servers a “data.json” which contains an index of all my files (including title, tags and content).
My webcomponents download this index and use it for searching, listing tags, etc, etc.
You could try the script yourself if you load https://markmarijnissen.com/zettelkasten-components.mjs. However, this will also load the https://markmarijnissen.com/zettelkasten-data.json file, which is of course the index of my personal website, and not your vault.
I could open source the scripts, but this will take me some time (to write a readme, cleanup the code, etc).
You can read a bit more about my setup here: My Zettelkasten Setup - Mark Marijnissen