Sunday 20 November 2022
I wanted to write my notes in text format. my options were:
- Web Service
- Google doc
- Notion
- Application
- One note
- Obsidian
- Typora
- Emacs Org-Mode
My preferences ¶
- I wanted to have my notes on my machine. having all of my notes on remote server is a no go.
- I wanted to be able to extend the solution
- Nothing complicated, it should be simple with no extra features I don’t need
- Plain text format, binary data or custom formats lock my files to a specific solution
Org-Mode ¶
That eleminates everything but Emacs Org-Mode. And I tried it for a while. the main problem for me was that it’s limited by emacs UI. so I can’t include a video or audio and extending it require Knowing Elisp. I can do simple stuff in Elisp but the fact that Org-Mode is already complicated then extending it with a language I’m not very familiar with harder.
So that drops even Org-Mode.
Xlog ¶
So I had to write my own solution. I choose #go for that. build a very simple core:
- HTTP server
- works on current directory
- has an interface that renders markdown to HTML
- has an interface to edit markdown files
Then I started to add every feature as one file to the project and structured it in a way that removing the file removes the feature.
Then I started to add some features like:
- supporting hashtags
- converting any text to a link if it’s a name of another note.
- list of recently edited files
- search
- support for emojis
- versioning
Generating static files ¶
- After couple months of development I made a video on youtube describing the program and that increased my interest in developing it again
- So I added a way to use the program in readonly mode
- and then used that develop a way to build the whole directory as HTML + extension pages.
- That allowed me to migrate my personal website (the one you’re reading now) to more simple and flat structure. I was using github page default jekyll structure before.
Main website ¶

Xlog is a static site generator for digital gardening written in Go. It serves markdown files as HTML and allows editing files online. It focuses on enriching markdown files and surfacing implicit l
Github project ¶
The program is open source on github:
📼 Personal knowledge management application. One binary HTTP server. works in any Markdown directory. autolinks pages, hashtags, auto preview images link, screenshare, screenshot, camera recording ...
Backlinks
- ActivityPub
- Bulma HTML5 Dialog
- Go FileSystem with fallback
- 🌻 Home
- PKGBUILD
- Simple Developer Choices Checklist
- Tailwind
- 🗄️ Zettelkasten
See Also
- Access unexported struct fields in Go
- Converting Ruby sinatra project to Go
- Copy file
- Country code to flag emojie in Go
- Go FileSystem with fallback
- Go function logging technique
- Go init function
- Go slice that doesn't grow past capacity
- Golang Bleve Experience
- Golang
- 🎊 Home Server
- 🌻 Home
- Hydra
- Learning Go
- Mau
- ⌨️ Programming
- Replacing Golang Regexp matching with a premitive faster solution
- Who is popular today
- json