/shlog

a static blog generator in /bin/sh: rewrite pending

Primary LanguageShell

SHLOG(1)                                                                SHLOG(1)
NAME
    shlog - a WIP static blog generator in /bin/sh

SYNOPSIS
    shlog [subcommand]

DESCRIPTION
    Note: This projects has been abandoned in favour of shite:
    https://git.zakaria.org/shite/

    Generate simple static sites. shlog is geared towards blogs.
    
    Warn: This project is no longer intended for any use other than my own.
    I will provide little to no support for anyone attempting to use this
    monstrosity - use at your own risk.

    The subcommands are as follows:

    i|index     Generate the post index page. This page lists all posts and
                links to them.

    r|rss       Generate the RSS feed. RSS feed location is configurable in the
                config file.

    u|update    Find articles that haven't been converted to HTML and
                convert them.   

    shlog defaults to u/update if no arguments are given.

EXAMPLE
    To use shlog setup your site root as so:

        .                           # $SITE_ROOT
        |- posts/                   # $POSTS_DIR
        |  |- index.html            # list of posts in chronological order
        |  |- 2020-09-08-post.md    # markdown post source
        |  |- 2020-09-08-post.html  # 'compiled' HTML post source
        |- html/                    # dir containing html
        |  |- footer.html           # HTML added to the end of each post
        |  |- head.html             # HTML <head> added to every post
        |  |- nav.html              # HTML added to the start of each post
        |  |- posts.html            # HTML added to $POSTS_DIR/index.html
        |- style.css                # style (not required)
        |- index.html               # index/homepage (not required)

    After running `shlog update` Markdown in /posts/ following the filename
    format DD-MM-YYYY-shortitle.md will be run through lowdown and converted
    into HTML. Additional HTML will be added from the html/head.html,
    html/nav.html and html/footer.html.

    To generate a post index file (located at /posts/index.html) which lists
    posts in order of the date in it's filename (most recent first) and links
    to them, run `shlog index`.

DEPENDENCIES
    shlog depends on the following programs:

    /bin/sh     Obviously.

    lowdown     Markdown to HTML converter (https://kristaps.bsd.lv/lowdown/).

GOALS
    - Be a shell script.
    - Minimal external dependencies.
    - Be fast.
    - Be cross-platform (POSIX?).

NON-GOALS
    - JavaScript (though it should be easy to add it yourself).
    - Post tags/categories.

CONFIGURATION
    The main configuration file is located at:
        ${XDG_CONFIG_HOME}/shlog/shlog.conf.
    This config file is just a regular shell script that the shlog script
    sources on startup.

    A default/reference config is included in shlog.conf.def.

PLANS
    - Better configuration syntax.
    - Better docs.
    - Better usablity.