First blog post, shellCMS
There are two installations of shellCMS on this computer, at ~/.shellcms/www and ~/.shellcms/www/news. The former is configured as a documentation CMS (Content Management System), the latter as a blog.
This is an arbitrary choice, a site can have any number of shellCMS installations, nested or otherwise.
A local installation of shellCMS is for creating and editing posts.
At any time, the local site can be uploaded to a remote site. shellCMS
is just static HTML pages, so uploading is just a matter of using ftp or
rsync.
shellCMS is run by shell scripts, that are located in /usr/local/shellcms. The main script is /usr/local/shellcms/shellcms, a CLI (commandline) app. There is also remotesync, mozeditor and shellcmsgui. These scripts are also linked from /usr/local/bin.
As the name suggests, remotesysnc is for uploading to a remote site. Script mozeditor is a wrapper for SeaMonkey Composer WYSIWYG HTML editor, and is called from shellcms. Script shellcmsgui is a GUI frontend.
As shown in the first documentation post, each post may have images. For this post, there is folder ~/.shellcms/www/news/201711/images, so create a relative link "images/image-name.png"
Documentation posts have just one category, however, blog posts may have more than one. if you had, for example, categories "linux" and "puppy", you could post to both.
A useful technical detail: Configuration settings are managed via the GUI frontend, however, you can also directly edit the configuration files. The script /usr/local/shellcms/shellcms has default variables, any of which can be overridded by ~/.shellcms/www/news/cms_config/config (or, for the documentation CMS, ~/.shellcms/www/cms_config/config).
In fact, everything can be done from the commandline, if you have an aversion to the GUI frontend. For example, to create a new post to this blog, and upload to a remote site:
# cd ~/.shellcms...quite simple!
# shellcms www/news post
# remotesync www/news
Tags: admin