author’s note: I’ve kept this post for historical context. This blog is now built with oedipus.
I’ve run into a few snags while building a new version of starbreaker.org using pblog. If anybody is curious, I’ve got a git repo on Sourcehut.
- The main pblog script expects all pages to be in
/pages, and doesn’t copy subdirectories under/pagesto_output. pandocdoesn’t seem to support Fountain, a Markdown-style markup language for screenplays.- I want to have both a blog and multiple serials, each with their own RSS feeds.
Calling rsync with the right switches will probably
solve the first issue. I just need to RTFM and tinker a bit to figure
out what they are.
While pandoc doesn’t have native support for Fountain, it can be extended using Lua scripts. The Github project for
pandoc includes a repository for a Lua-based extension
called pandoc-fountain, so I need
not write my own extension.
The third problem is the complicated one. If all I wanted was a blog
with all of its pages in the site’s root, pblog would do
the job admirably. It’s got just about everything you need in one
script, with a makefile playing a supporting role. However, Bradley Taunt didn’t have my use case in
mind when he wrote pblog, and that is perfectly
fine. Really, it is. Just as literature ain’t Burger
King, neither is FOSS.
I should be able to use the pblog.sh script as the basis
for my own scripts. For example, I can modify it so that it reads
variables from a separate file, thus making it configurable and capable
of generating multiple RSS feeds from different sources. This would
allow me to have a blog with a separate feed from the serial I’ve
started writing.
Before I get started, though, I should ask Bradley why
pblog.sh builds posts twice, creating HTML files in a
rss/ directory while also creating HTML files in
/posts. If I could upload the same HTML that gets used to
make the RSS feed, I could refactor more functionality out of
pblog.sh and put it into the makefile.
Also, it might be worthwhile to get rid of the _output
directory. python -m http.server can also serve the
directory in which the makefile lives as
http://localhost:8000, and if I don’t want to upload my
source files I can create an exclusion file and pass that to
rsync.