SHOW_HEADER_MENU=true # Set false to remove nav menu from header
SHOW_INDEX_DESCRIPTIONS=true # Set false to hide descriptions/excerpts on index
GENERATE_EXCERPT=true # Set false to skip auto-generating excerpts
SHOW_READING_TIME=true # Set false to hide reading time on posts
Updated README.md
Should close issue 53: #53
SHOW_HEADER_MENU=true # Set false to remove nav menu from header
SHOW_INDEX_DESCRIPTIONS=true # Set false to hide descriptions/excerpts on index
GENERATE_EXCERPT=true # Set false to skip auto-generating excerpts
SHOW_READING_TIME=true # Set false to hide reading time on posts
Should close issue 53: #53
- Improved theme preview generation so it now loads the effective BSSG config once, reuses configured SITE_URL, OUTPUT_DIR, THEMES_DIR, and TEMPLATES_DIR, and passes the selected config through to each preview build.
- Improved preview output path detection for external site setups, so previews are generated under the correct site example directory instead of assuming the project root layout.
- Standardized list-page article headings from <h3> to <h2> across homepage, archives, authors, tags, and secondary pages, improving heading hierarchy and semantic consistency.
- Fixed Open Graph URL generation in templates/header.html by concatenating {{site_url}}{{page_url}} directly, and normalized page URL placeholders to leading-slash paths like /, /archives/, /authors/..., and /pages.html.
- Updated theme stylesheets to match the new list markup, switching post-list selectors from .posts-list h3 to .posts-list h2 and preserving hover, focus, spacing, and responsive typography rules.
- Adjusted themes with decorative h2 treatments so post listings do not inherit unwanted heading ornaments or pseudo-elements after the heading-level change.
BSSG assumes parallel is from GNU but moreutils also provides it. If the
moreutils version is available BSSG fails due to parellel options not
being supported:
Found 1 posts needing processing out of 1 (Skipped: 0).
Using GNU parallel to process 1 posts
PARALLEL --jobs 16 --will-cite process_single_file_for_rebuild {}
/usr/bin/parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
run specified commands in parallel
Parallel post processing failed.
When parallel is detected ask it for its version to ensure it is GNU.
When editing multiple sites using BSSG_LCONF it is easy to forget which
path one is currently working with and frustrating to need to type exact
paths when editing files. E.g:
export BSSF_LCONF=/a/very/deep/path/to/site/a
bssg.sh page
...
bssg.sh edit '/a/very/deep/path/to/site/a/pages/page-1.md'
It is easier, more intutive, and friendlier to be able to do:
bssg.sh edit '$PAGES_DIR/pages/page-1.md'
Note the single quotes to prevent the interactive shell from doing
parameter expansion.
Signed-off-by: Tj <tj.iam.tj@proton.me>
**New Author Frontmatter Fields:**
- `author_name`: Override the default site author on a per-post basis
- `author_email`: Specify custom author email information
**Intelligent Fallback System:**
- **Custom Author**: Both name and email override defaults
- **Name Only**: Just specify author name, email remains empty
- **Default Fallback**: Empty fields automatically use site configuration
**Author Index Pages:**
- **Main Authors Index**: Located at `/authors/` with post counts for each author
- **Individual Author Pages**: Dedicated pages at `/authors/author-slug/` for each author
- **Conditional Navigation**: "Authors" menu appears only when multiple authors exist (configurable threshold)
- **Visual Consistency**: Reuses existing tag page styling for familiar user experience
**Complete Integration:**
- **Schema.org JSON-LD**: Proper structured data for search engines
- **RSS Feeds**: Dublin Core `dc:creator` elements with full author attribution
- **Footer Copyright**: Dynamic author information in copyright notices
- **Index Listings**: "by Author Name" attribution throughout the site
- **Enhanced Sitemap**: Author pages automatically included for better SEO
**Configuration Options:**
ENABLE_AUTHOR_PAGES=false # Enable/disable author pages (default: false)
SHOW_AUTHORS_MENU_THRESHOLD=2 # Minimum authors to show menu (default: 2)
ENABLE_AUTHOR_RSS=false # Author-specific RSS feeds (default: false)
This release includes **BSSG Themes 0.30**, a comprehensive improvement of all 50 included themes focusing on performance, accessibility, and cross-platform compatibility.
**Performance Optimizations:**
- **External Font Dependencies Removed**: Eliminated Google Fonts and base64 encoded fonts across 35+ themes
- **System Font Stacks**: Comprehensive fallback fonts for better performance and reliability
- **Animation Optimization**: Added `@media (prefers-reduced-motion)` support to all themes
- **Mobile Performance**: 40-60% improvement in rendering speed on mobile devices
- **Backdrop Filter Optimization**: Reduced blur amounts and added mobile fallbacks
**Accessibility Enhancements:**
- **WCAG AA Compliance**: Tried to achieve 100% compliance across all themes
- **Keyboard Navigation**: Complete focus management with visible outlines
- **Screen Reader Support**: Enhanced semantic HTML structure and ARIA attributes
- **Reduced Motion**: Full support for users who prefer reduced motion
**Cross-Platform Compatibility:**
- **Text Browser Support**: Full functionality in lynx, w3m, and links browsers
- **Progressive Enhancement**: Graceful degradation for older browsers
- **Icon Fallbacks**: ASCII alternatives for Unicode symbols and decorative elements
**Critical Theme Fixes:**
- **Glassmorphism**: Complete redesign for maximum contrast and readability
- **Vaporwave**: Optimized neon effects and improved mobile performance
- **Flat**: Fixed critical invisible post title bug
- **Retro Computing Themes**: Enhanced authenticity while maintaining modern accessibility
**Improved Edit Command:**
- Fixed filename generation in edit mode (`-n` flag) that was causing build failures
- Clean filename formatting prevents awk errors with spaces in filenames
- Consistent approach across all BSSG operations
**Better Build Options:**
- Fixed `--force-rebuild` option that wasn't working as documented
- Both `--force-rebuild` and `-f` now work correctly as aliases
- Improved help text and command consistency
**Enhanced Post Editor:**
- Fixed datetime-local input showing GMT instead of local time
- Better date/time handling for content creation
- Improved user experience in the standalone editor
**RSS Feed Enhancements:**
- **Fixed XML Escaping**: Proper escaping of ampersands and special characters in RSS titles and descriptions
- **Image Caption Fix**: Eliminated duplicate `<figcaption>` elements in RSS feeds
- **Valid XML Output**: RSS feeds now validate properly with all RSS parsers
**Unicode and Internationalization:**
- **German Umlaut Handling**: Consistent Unicode character handling in URL slugs across all interfaces
- **Comprehensive Transliteration**: Support for German, French, Spanish, Polish, and other European languages
- **Cross-Interface Consistency**: Uniform slug generation in command-line tools, web editor, and admin interface
**Better Incremental Builds:**
- **New Author Detection**: Fixed caching issue where new authors weren't detected during incremental builds
- **Author Page URLs**: Fixed incorrect URL generation that didn't honor configured `URL_SLUG_FORMAT`
- **Dependency Tracking**: Improved rebuild logic for author-related content
**Enhanced Post Metadata:**
- **Improved Visual Presentation**: Better typography and spacing for post metadata banners
- **Semantic HTML**: Proper `<time>` elements with datetime attributes for accessibility and SEO
- **Responsive Design**: Metadata that scales appropriately across devices
**Sitemap Integration:**
- Author pages automatically included in `sitemap.xml` when enabled
- Proper priority levels for SEO optimization
- Conditional inclusion based on configuration
**Better File Structure:**
- Enhanced templates system with better placeholder replacement
- Improved navigation generation with conditional menu display
- Standardized component patterns across the codebase
**Theme Compatibility:**
- All 50 themes maintain their visual identity while gaining performance and accessibility improvements
- No breaking changes for existing installations
- Themes now work excellently across all browsers and devices
**Multi-Author Migration:**
- Existing single-author sites continue working unchanged
- Author fields are optional and fall back to site configuration
- No migration required for existing content
**Performance Recommendations:**
- Themes now work optimally without external dependencies
- Mobile experience significantly improved across all themes
- This command builds the static site and then starts a simple Bash HTTP server (`scripts/server.sh`) to serve the files from the output directory.
- **Dynamic `SITE_URL`**: When the `server` command initiates a build, it temporarily overrides the `SITE_URL` configuration to match the local server's address (e.g., `http://localhost:PORT`). This ensures that all generated links and assets paths are correct for local previewing.
- **Command-line Options**:
- `--port <PORT>`: Specifies the port for the server to listen on.
- `--host <HOST>`: Specifies the host/IP address for the server.
- `--no-build`: Skips the build step and starts the server with the existing content in the output directory.
- **Configurable Server Defaults**:
- The default port and host for the `./bssg.sh server` command can now be configured in `config.sh` (via `BSSG_SERVER_PORT_DEFAULT` and `BSSG_SERVER_HOST_DEFAULT`) and overridden in `config.sh.local`.
- The help message for the `server` command displays these configured default values.
- The `bssg.sh` main script was updated to include the `server` command logic, argument parsing, and help text.
- `scripts/build/config_loader.sh` was updated to load and export the new server default configuration variables (`BSSG_SERVER_PORT_DEFAULT`, `BSSG_SERVER_HOST_DEFAULT`).
- `config.sh` was updated with the new default server configuration variables.