Daniel notes
you@here:~/blog$ cat a-site-you-can-cd-into.md

#md-term #meta #obsidian

A site you can cd into

This site is a folder of markdown notes. I write them in Obsidian, in a folder of my vault called site, and that is the whole publishing process. There is no deploy button and no build I have to remember to run.

How a note gets here

flowchart LR
    A[Obsidian vault] -->|sync| B[(Object storage)]
    B -->|every minute| C(md-term build --watch)
    C --> D[Static pages]
    D --> E{Your browser}
  1. Obsidian syncs the vault to an object store I run myself.
  2. A small job copies the site folder out of it once a minute.
  3. md-term notices the change and rebuilds the pages.
  4. A plain web server hands them to you.

A minute or two after I stop typing, the note is live. If I write something the builder cannot read, the site simply stays as it was until I fix it.

Why a terminal

Because a folder of notes already is a file system, and a shell is a good way to walk one. ls shows what is here, cat opens a note, grep searches all of them at once. Nothing has to be designed into menus.

It is still an ordinary website underneath. Every note is a complete HTML page, so links can be shared, search engines can read it and it works with JavaScript turned off. The terminal is a layer on top.

Things worth trying

  • tree to see the whole site at once
  • grep -i fuzzy to search every note
  • theme amber, because green is not the only phosphor
  • python, then import numpy as np: a real Python, running in your browser
  • edit hello.py, write a few lines, press Ctrl+Enter

Note

Files you create with edit stay in your own browser. They never reach this server.

What comes next

The first real content is the articles about two libraries I maintain, ANFIS Toolbox and highFIS. Shorter things will show up here, in the blog.