sbs

A Simple Blogging System.
git clone https://git.sr.ht/~jbauer/sbs
Log | Files | Refs | README | LICENSE

commit 766ca83d02970602af64554695c442c503e5772e
parent d080d15e9e36a53c8c1125f27b259018d74f8ad9
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Thu, 23 Jun 2022 06:17:33 -0400

Update README

Diffstat:
MREADME.md | 76+++++++++++++++++++++-------------------------------------------------------
1 file changed, 21 insertions(+), 55 deletions(-)

diff --git a/README.md b/README.md @@ -3,64 +3,30 @@ 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. +# Installation -`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. +Place the sbs program and the sbs.1 manpage in the appropriate paths for your +operating system. `/usr/local/bin/` and `/usr/local/man/man1/` are likely +respective paths. -`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 +# Usage -`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. +Please refer to the manpage for usage and other information. ## 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) +After trying out Hugo and other popular static site generators, I found that +even the solutions which call themselves simple are too complicated for what I +need for my websites. I also found that I need a greater degree of control +over the generated output without having to spend hours creating or fiddling +with templates. I wanted to make something that does the bare minimum of what I +need out of a static site generator/blogging system while making it as painless +as possible to write content for my site. + +sbs therefore has the following features: + +* Create static HTML pages from Markdown documents with minimal "templates" +* Metadata support (MultiMarkdown) +* Easy creation of an Atom feed containing the content of all posts +* Basic website styling through one CSS file +* Simple configuration file