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

Announcing BSSG 0.16.0: Enhanced Configuration, Flexible Caching, and Archive Control

Published on: by Stefano Marinelli

2 min read

I'm thrilled to announce the release of BSSG version 0.16.0! Tagged and available now, this update brings more power to your workflow with enhanced configuration options, greater control over caching, and new ways to display your archives.

Key Highlights in 0.16.0

This update focuses on providing finer-grained control over your BSSG environment and site structure:

1. Superior Site Configuration Flexibility (--config & BSSG_LCONF)

Managing multiple sites or specific build contexts just got easier!

  • The --config <path> command-line flag has been re-implemented for bssg.sh. This allows you to specify a custom configuration file (e.g., a site's config.sh.local) to override default settings. It's perfect for running commands from the BSSG core directory while targeting a specific site.
  • Additionally, the new BSSG_LCONF environment variable provides an alternative. If set to a valid configuration file path, BSSG will use it when --config isn't specified, letting you set a site context for your entire session.

2. Customizable Build Cache Location (CACHE_DIR)

You now have direct control over where BSSG stores its build cache.

  • A new configuration variable, CACHE_DIR, has been added to config.sh (defaulting to .bssg_cache in the BSSG core directory).
  • You can set this to a custom path, allowing you to, for example, place caches on a different drive, organize them per-project outside the site directory, or manage them according to your backup strategy.

3. New Comprehensive Archive Listing (ARCHIVES_LIST_ALL_POSTS)

Offer your readers a more detailed view of your archives!

  • The new ARCHIVES_LIST_ALL_POSTS option (default false in config.sh) allows the main archives/index.html page to list all posts chronologically under their respective month links. This is in addition to the standard year/month navigation, providing an at-a-glance view of all content.

4. Smoother Site Initialization & Cache Management

I've refined the init script for a better out-of-the-box experience:

  • When you initialize a new site, the init script now adds a CACHE_DIR setting to the new site's config.sh.local, pointing to .bssg_cache within that site's directory. This ensures each initialized site maintains its own separate cache, preventing interference.
  • The init script now defaults to 'Yes' (Y) when asking whether to modify the core config.sh.local to automatically source the new site's configuration, streamlining setup.

5. Important Fixes and Stability

This release also includes targeted fixes:

  • The main archive index page (archives/index.html) now correctly rebuilds when ARCHIVES_LIST_ALL_POSTS is true and post content changes, ensuring your comprehensive archive view is always up-to-date.

Important Update Notes

No major breaking changes requiring specific actions like a clean rebuild are anticipated with this release. However, to take advantage of the new site-specific caching initialized by bssg.sh init, new sites will benefit immediately. For existing sites, you might consider manually adding CACHE_DIR="/path/to/your/site/.bssg_cache" to your site's config.sh.local if you desire isolated caching.

Get the Update!

Ready to take advantage of these new configuration and customization features? Update to BSSG 0.16.0 now!

Happy building!

Stefano