Development notes, release, and insights on BSSG - Bash Static Site Generator

Announcing BSSG 0.33.0: Full Content Display on Homepage, Dutch translation and Command-Line Workflow Enhancement

Published on: by Stefano Marinelli

2 min read

I am glad, after some months, to announce the release of BSSG version 0.33.0!

Key Highlights in 0.33.0

Full Content Display on Homepage

Version 0.33 introduces a highly requested feature: the ability to display complete post content directly on your homepage index, rather than just excerpts or descriptions.

New Configuration Option:

# Control homepage content display in config.sh.local
INDEX_SHOW_FULL_CONTENT="false"  # Default: show excerpts only
INDEX_SHOW_FULL_CONTENT="true"   # Show full post content

This feature maintains backward compatibility - sites will continue showing excerpts by default unless explicitly configured otherwise.

Dutch Language Support

BSSG's internationalization continues to expand with the addition of Dutch (nl) locale support, contributed by Stefan "ZipKid" Goethals

Command-Line Workflow Enhancement

A quality-of-life improvement from contributor Tj makes working with multiple BSSG sites significantly easier through automatic config variable expansion in command-line arguments.

When managing multiple sites via BSSG_LCONF, you previously had to type full paths repeatedly:

  export BSSG_LCONF=/a/very/deep/path/to/site/a
  ./bssg.sh edit '/a/very/deep/path/to/site/a/pages/page-1.md'

Now you can reference config variables directly using shell variable syntax (with single quotes to prevent premature expansion):

  export BSSG_LCONF=/a/very/deep/path/to/site/a
  ./bssg.sh edit '$PAGES_DIR/page-1.md'

Supported Variables:

  • $SRC_DIR - Posts directory
  • $PAGES_DIR - Pages directory
  • $DRAFTS_DIR - Drafts directory
  • $OUTPUT_DIR - Build output directory
  • And any other config variables you've defined

This enhancement makes BSSG more intuitive and faster to use, especially for power users managing multiple sites.

Improved BSD/Non-GNU Compatibility

A critical fix addresses compatibility issues when using the parallel command from the moreutils package instead of GNU Parallel.

BSSG's parallel processing feature assumed that any parallel command was GNU Parallel. Systems with moreutils installed would fail during post processing because the two tools have incompatible command-line interfaces.

BSSG now explicitly checks for GNU Parallel by querying the version string, ensuring it only enables parallel processing when the correct tool is available. This fix improves compatibility across FreeBSD, various Linux distributions, and other Unix-like systems.

Thank you to all contributors for making BSSG more powerful and accessible!

No additional dependencies or server configuration required for this update.

Get the Update!

Upgrading is as easy as ever:

  1. Pull the latest changes from the repository.

Profit :-)

Looking Forward

I'm already working on a partial rewrite. On systems with slow I/O, BSSG can suffer from poor performance. The new implementation will run entirely in RAM, removing all caching while significantly benefiting from in-memory speeds. It’s not a trivial task and not all features are implemented yet, so it will take a bit more time.

As usual, you can download this release using the following link: https://brew.bsd.cafe/stefano/BSSG/releases/tag/0.33.0

A huge thank you goes out to everyone in the community for your continued feedback, bug reports, and contributions. Your input is what drives BSSG forward.

Happy building!

Stefano