A complete blog engine in one ~1,000-line bash script: cfenollosa/bashblog. Zero dependencies beyond coreutils. The tilde-appropriate blog tool: drop bb.sh in a public folder and post.
mkdir -p ~/blog && cd ~/blog curl -fsSLO https://raw.githubusercontent.com/cfenollosa/bashblog/master/bb.sh chmod +x bb.sh ./bb.sh # shows the command list
On a pubnix, put it in ~/public_html/blog/ and posts appear at host.tld/~you/blog/ instantly. See Publishing on a Pubnix.
./bb.sh post # opens $EDITOR on a new markdown file
Saves as Title-Of-Post.html and updates index, RSS, and tag pages automatically.
./bb.sh list # all posts ./bb.sh edit post.html # edit (keeps original timestamp) ./bb.sh edit -n post.md # edit the markdown source ./bb.sh rebuild # regenerate everything from sources ./bb.sh delete post.html ./bb.sh preview draft.md # render without publishing
Drafts: quit the editor without publishing and the file stays as a draft. ./bb.sh post draft.md finishes it later.
Create .config next to bb.sh. It overrides defaults without touching the script:
global_software_name="my log" global_author="you" global_url="https://tilde.town/~you/blog" global_email="you@tilde.town" global_description="notes"
Full variable list: grep '^global_' bb.sh. Notables: global_title, global_date_format, global_posts_per_page, and markdown_bin (point it at pandoc: markdown_bin=“pandoc -f markdown -t html”).
index.html: recent postsall_posts.html, all_tags.html, per-tag pagesblog.rss: the feed (what tilde.town's planet aggregator wants)bb.css: replace or symlink your own stylesheet, then ./bb.sh rebuildguestbook.txt is the tilde-native answer.edit preserves the page timestamp; rebuild regenerates pages.