Simple Blogging System: a blog-oriented static site generator.
ssg
Go to file
Jake Bauer 359cc142d6 Bump version number 2022-02-22 16:26:24 -05:00
LICENSE Initial commit 2021-08-25 09:47:17 -04:00
README.md Minor update to README 2022-02-15 01:36:20 -05:00
sbs Bump version number 2022-02-22 16:26:24 -05:00

README.md

sbs - Simple Blogging System

A simple static site generator designed to be simpler to use than existing solutions such as Hugo and Jekyll.

Usage

sbs genfeed|[new [page|post|site]] file(s)

sbs genfeed will build an Atom feed from the posts under the configured postsDir directory. This feed will be output to static/feed.xml.

sbs new page <file> will create the file <file> under the content directory with the basic layout for a regular page. Note that if a subdirectory is specified for <file>, this subdirectory must already exist.

sbs new post <file> will create the file <file> under the content/ directory with the basic layout for a blog post. Note that if a subdirectory is specified for <file>, this subdirectory must already exist.

sbs new site <file> will create a new site structure under the directory <file> populated with sample files. These sample files should be edited to conform to the webmaster's needs. It is also recommended to create a favicon.png and robots.txt file.

sbs <file(s)> will attempt to build the given <file(s)> and will place the output under the static/ directory.

Here's a quick example:

$ sbs new site example.com
$ cd example.com
$ vi config.ini templates/header.html templates/footer.html static/style.css
$ sbs new page index.md
$ vi content/index.md
$ sbs content/index.md
$ mkdir content/posts
$ sbs new post blog/first-post.md
$ vi content/blof/first-post.md
$ sbs genfeed
$ rsync static/* webserver:/var/www/

Troubleshooting

lowdown: <tag>: unknown keyword - Lowdown tried to parse metadata tag <tag> but the tag was not found in the file. This is usually caused either by accidentally omitting a required tag, or leaving the content for a tag blank. Make sure that there is at least some text for each MultiMarkdown metadata tag in the file you are trying to build, and that all the required tags exist.

What Can It Do?

After trying out Hugo and the like, I found even the solutions that call themselves simple to be too complex for what I need from my website. I also found that I needed a greater degree of control over the output without having to spend hours creating template documents. I wanted to make something that does the bare minimum of what I need out of a blog.

  • Create static pages from Markdown documents
  • Metadata support
  • Atom feed creation
  • Basic website styling -> One CSS file
  • Make writing posts and creating sites as painless as possible
  • Friendly configuration (i.e. simple config file)