Commit Briefs

8511eeb973 Murilo Ijanc

enable gfm extensions in markdown parser (main)


080678415d Murilo Ijanc

linkify post headings as self-anchors for sharing


8fdcd6d1ef Murilo Ijanc

place post metadata and toc after h1 title

add sourcehut and github clone urls to readme


9703368d1f Murilo Ijanc

add optional toc generation, example site


de29d84011 Murilo Ijanc

add license header, version, ci targets to makefile


35eedcc793 Murilo Ijanc

add tags, version flag, allow raw html in markdown


e5faee711d Murilo Ijanc

remove site-specific templates from repo


ca3ca403aa Murilo Ijanc

replace cargo with rustc makefile, add manpage, separate site content

remove cargo dependency, compile with rustc via makefile and vendored crates. move source from src/main.rs to kssg.rs. add kssg.1 mandoc manpage. remove example content (site content lives in ijanc.org repo now). add new subcommand, updated frontmatter field, draft visibility in serve, post listing by year, root/ directory support, webring footer, content type detection, watcher re-registration for new dirs.



5bf6d120ef Murilo Ijanc

add file watcher via inotify and kqueue


Branches

Tags

This repository contains no tags

Tree

.gitignorecommits | blame
.rustfmt.tomlcommits | blame
LICENSEcommits | blame
Makefilecommits | blame
README.mdcommits | blame
example/
kssg.1commits | blame
kssg.rscommits | blame

README.md

kssg - KISS static site generator
==================================
kssg is a minimal static site generator written in Rust.


Requirements
------------
In order to build kssg you need rustc.


Installation
------------
Edit Makefile to match your local setup (kssg is installed into
the /usr/local/bin namespace by default).

Afterwards enter the following command to build and install kssg:

    make clean install

To fetch vendored dependencies from crates.io:

    make vendor


Running kssg
------------
Build your site:

    kssg build

Start the development server with live reload (drafts are visible):

    kssg serve

Create a new post:

    kssg new "Post title"


Configuration
-------------
The configuration of kssg is done by editing the template
in templates/base.html and (re)building the site. There is no
configuration file.

Content lives in content/ as Markdown files with YAML frontmatter:

    ---
    title: Post title
    date: 2026-04-07
    description: Short description
    draft: false
    ---

    # Content here


Directory structure
-------------------
    content/       Markdown source files
    templates/     HTML templates
    static/        Static assets (copied to public/static/)
    root/          Files copied to the root of public/
    public/        Generated output
    vendor/        Vendored Rust dependencies


Download
--------
    got clone ssh://anon@ijanc.org/kssg
    git clone https://git.ijanc.org/kssg.git
    git clone https://git.sr.ht/~ijanc/kssg
    git clone https://github.com/kssg.git

License
-------
ISC — see LICENSE.