site  news  contact

Category front-pages

September 16, 2017 — BarryK

A very useful feature is the per-category front-page. This is only for document mode.

Without a category front-page, if you point your browser at one of the category folders, say, there is a index.html file there, which has a line like this in it (in the head section):

<meta http-equiv="refresh" content="0; url=" />

This causes a redirection to tag_shellcms.html, which has the posts for that tag (category).

However, you can create an index.html that becomes the front-page for that category. This is how to create it:

# ./shellcms www post shellcms/index.htmraw

Where www is the path to the installation of shellCMS, and post is for creating a new post.

In earlier tutorials there was nothing after post, however, that last parameter is optional and can be used to predetermine the category folder and name of the post.
Without that extra parameter, the shellcms script will ask you what tag (category) you want the post to go into, and will generate the filename of the post from the title.

Having run the above, you can then write a nice introduction/overview of that category. After saving and exiting the HTML editor, index.html will get generated, with your introduction, followed by a horizontal rule, then links to all the other posts under that category.

Of course "a picture is worth a thousand words", so here is a front-page that I have created:

So easy to create per-category front-pages, but note also, it has its own banner at the top.

if you put a image named top-banner.png into www/shellcms/images, it will be automatically used, instead of the default one (which is at www/images0).

That's about it, so simple. You can edit it, just like any other post:

# ./shellcms www edit shellcms/index.htmraw

I have some thoughts for future enhancements, stay tuned!


Installing shellCMS as a blog

September 13, 2017 — BarryK

I posted recently how to install shellCMS at the top-level of my site, as a documentation manager:

A lot of water under the bridge since shellCMS was conceived -- which was mid-August, 2017. shellCMS was forked from BashBlog, and has rapidly become a very different creature. Markdown was abandoned, and posts are now created using a HTML editor.

I am using SeaMonkey Composer WYSIWYG HTML editor, and writing posts is now a dream. The "gotchas" and limitations of markdown are gone, and I know that what I am typing-in is what I will see in the final online post.


Install at top-level as document manager

September 13, 2017 — BarryK

shellCMS, a static site generator, is available for download as a tarball:

Writing this document in the first-person, I, Barry, have plans for more features. In particular, I would like to implement a GUI frontend. For now, the script shellcms has to be run from a terminal.

I also plan to post documentation. First up, outlining how shellCMS is setup as a documentation site.

My website,, is mostly just documentation files, for various projects, just static web pages, plus files to download. For a purely static site like this, shellCMS is ideal, set in its "documentation" mode. I do also have a blog at, but shelve that one for now.


Submitting a sitemap to Google

September 10, 2017 — BarryK

For a shellCMS managed site, this has turned out to be easy-peasy.

A sitemap is a file, named sitemap.xml, at the root of your site, that helps the Google site-indexing-bot to discover everything on your site. It also works for some other search engines.

There are many tools to create this file, and this is a good links page to most of them:

Some of them cost money. But, right at the bottom of the page, I found this:


BashBlog forked to shellCMS

September 01, 2017 — BarryK

My blog,, started life powered by BashBlog, project page here:

It is very simple, too simple I soon realised. I have been hacking on the script. Some hacks are specific to my requirements, some are generic and could be adopted by the BashBlog developers if they wish.

As my script has become very different from BashBlog, I decided to give it a new name, shellCMS. It is hosted on my site, here:

Here are the main changes from BashBlog:

Local development
shellCMS is designed for local development, whereas BashBlog is designed for development on the remote site.