really simple static blog generator and tooling, all in a single bash file. it is meant to meet the following requirements i have for my personal blog:
- create new blog posts in markdown
- translate markdown to html
- publish html to servers
- support easy image usage in posts
- support drafts
- archive posts
- fit in a single bash file
once upon a time, I used vimwiki for my blog, and it was heaven. it doesn't work the same for me in neovim nowadays, after which i tried hexo, next.js, hugo, gatsby, and jekyll.
this is basically a counter-reaction to everything that list having too many features for my requirements.
since everything i need to do throughout the process can fit in a single bash file, i made blogdor
.
the script is written to run on any linux system with a bash shell and the following programs on $PATH:
- bash: at the time of writing I use v5.2.37.
- pandoc: does most of the heavy lifting.
- python3: used to serve files during development.
- imagemagick: helps with image support.
have $HOME/local/bin
on your path.
curl -sLo "$HOME/.local/bin/blogdor" "https://raw.githubusercontent.com/rconjoe/blogdor/refs/heads/master/blogdor"
chmod +x "$HOME/.local/bin/blogdor"
blogdor
requires an empty file simply titled .blogdor
in the root directory of the blog.
(in the future, the status check on this file (present & empty) will be used to determine error handling operations. for now, it just ensures we don't try to build in a directory that isn't the root of a blog.
you need a template.html
, style.css
, and metadata.yaml
in the root directory for the program to work.
./blogdor Build the blog (excluding drafts)
./blogdor new [title] Create a new blog post
./blogdor preview Build the blog including draft posts
./blogdor serve Start a local server for the public site
./blogdor serve-preview Start a local server for the preview site
./blogdor clean Remove the build directories
./blogdor help Show this help message
MIT.
don't ask me for help before you submit a PR. even then, i might ignore you.