Arnt Gulbrandsen
About meAbout this blog

How to use Plusxome

Plusxome is a rewrite of loathxsome, which in turn is a rewrite of blosxom, which also spawned other rewrites, of which pybloxsom is/was the best known. The original purpose of my rewrite was to play around with C++11. I appear to have been running it in production for many years now, which implies that it's solid enough to warrant a user guide. The number of likely users suggests that a very short one is sufficient. But one should exist, because I do not approve of undocumented software.

Plusxome is the kind of program that's user-friendly and choosy about who its users are. This program is only for people who host their own blogs on linux, are happy compiling C++ and can write HTML.

First, git clone the source and build it. Second, write a template, or several. One of my templates is quoted below. Third, write some HTML that'll turn into a blog posting. Again, an example is below. Fourth, start plusxome using a command such as plusxome -base-directory /home/arnt/rant --home-template all.template (but see the -h option first). Fifth, join the tradition and rewrite it, or join the modern world and get a hosted blog at a SaaS company.

Here's a posting, more or less in blosxom format:

How to use Plusxome
meta: tags=rantg,plusxome

<p>Plusxome is a rewrite of <a href="https://github…

Whitespace matters for the first few lines, after that it's plain HTML. You may include whatever HTML you like. It'll be passed through HTML tidy and inserted into the right spot in the template, and comments will disappear. If you add a new blog posting, plusxome notices that at once and serves it as it should. Here's my all.template:

<!doctype html>
<html><head>
<meta name="viewport" content="width=device-width">
<meta name="robots" content="snippet,follow,archive">
<link rel=stylesheet type="text/css" href="/arnt.css">
<link rel=icon type="image/png" href="https://rant.gulbrandsen.priv.no/images/shell.png">
<link rel=alternate type="application/atom+xml" title="Arnt Gulbrandsen" href="https://rant.gulbrandsen.priv.no/index.atom">
<link rel=author href="https://arnt.gulbrandsen.priv.no">
<link rel=author href="mailto:arnt@gulbrandsen.priv.no">
<title>Arnt Gulbrandsen</title>
</head><body>
<div id=container>
<a href="https://rant.gulbrandsen.priv.no" class="homelink">Arnt Gulbrandsen</a>
<div class=trivia>
<a href="https://arnt.gulbrandsen.priv.no">About me</a> •
<a href="https://rant.gulbrandsen.priv.no/rantg">About this blog</a>
</div>
<div id="postings">
</div>
<footer>
<div id="otherposts">
<h1>A few other posts</h1>
<ul><li>dummy
</ul>
</div>
</footer></div></body></html>

As you can guess, whitespace doesn't matter and comments are removed here too. I also have three more templates, -h lists the possibilities.

Plusxome does not support TLS. I run a web server that terminates TLS and forwards (some) requests to Plusxome via cleartext HTTP. (I also run Plusxome on my desktop, serving my blog's working directory, so that it shows the current working state, including unfinished and unpublished postings.)