Commit graph

27 commits

Author SHA1 Message Date
cbc08b06cc add RAM mode and overhaul the build pipeline
- introduce RAM build mode with in-memory preload/index datasets and stage timing
- refactor build orchestration, indexing, content processing, and template handling
- improve cache/rebuild logic and parallel worker execution across generators
- enhance posts/pages/tags/authors/archives/feed generation and related-post flow
- update CLI/config/README for new build options and performance tuning
- harden timing logic to handle locale-specific EPOCHREALTIME decimal separators
2026-02-10 19:08:59 +01:00
b1c2397a93 Added INDEX_SHOW_FULL_CONTENT configuration option.
If true, show full post content on homepage instead of just description/excerpt.
2025-12-28 14:47:56 +01:00
1f59e61879 Added pre-compression, thoughtful theme, Cyber-Dark theme, removed some Google fonts leftovers 2025-07-17 08:55:06 +02:00
70760825b0 Preparing for 0.31 - related posts, theme fixes, etc 2025-06-18 19:26:13 +02:00
3c88fc7e69 The headline feature of this release is **complete multi-author support** throughout BSSG! This feature transforms BSSG from a single-author platform into a collaborative publishing system.
**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
2025-06-02 08:46:08 +02:00
ea2afcd6e9 Aggiorna README.md 2025-05-25 21:18:35 +02:00
e8c98d10ab Added bssg-editor - updated README 2025-05-25 19:12:10 +02:00
3a52a4b24a Fixed README 2025-05-18 19:05:39 +02:00
03c83e5b76 - **server Command**: Introduced a new command ./bssg.sh server to facilitate local development.
- 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.
2025-05-18 15:17:19 +02:00
95b5319b93 Updated README.md - on MacOS, the default bash is too old 2025-04-30 06:55:30 +02:00
a055615e79 Fixed for home deploy script 2025-04-21 08:24:49 +02:00
e3139d51f4 Do not generate the "Tags" menu if there are no posts with tags (adapted by Tom's patch)
Allow a custom pages/index.md (with slug "index") that will be shown as homepage. This allows to create a custom homepage for the website, without the "Latest Posts" list.  (adapted by Tom's patch)
Render automatically generated post excerpts (used when no explicit `description` is set in frontmatter) as HTML instead of raw markdown on list pages (index, tags, archives).
Partial rewrite of the caching code, index generations, etc. Now only the modified tags and/or archives will be regenerated, speeding up the rebuild time.
Many, many other bugfixes
2025-04-18 19:54:04 +02:00
cc354c5dbd Bugfix for backup/restore logic 2025-04-16 08:26:00 +02:00
1876b199b3 Added deploy support 2025-04-15 21:24:23 +02:00
96f708367f Added post creation from command line 2025-04-15 21:04:24 +02:00
4144fe5c7b - New command-line arguments for the build command to override configuration settings:
- `--config`, `--src`, `--output`, `--templates`, `--theme`, `--static`, `--clean-output`, `--site-title`, `--site-url`, `--site-description`, `--author-name`, `--author-email`, `--posts-per-page`, `--local-config`.
- Added CLI options `--pages`, `--drafts`, and `--themes-dir` to override respective directory paths during build.
- Implemented RSS feed generation for each tag (`${OUTPUT_DIR}/tags/<tag_slug>/rss.xml`).
- Tag-specific RSS feed generation is now optional via the `ENABLE_TAG_RSS` configuration variable (default: `false`).
2025-04-15 10:31:16 +02:00
66ea4b13cd init now supports relative path between quotes - fixed secondary pages 2025-04-14 10:25:54 +02:00
f5e90ba1f0 Added custom CSS support 2025-04-14 09:48:08 +02:00
852bba9f8d init now supports relative path between quotes - fixed secondary pages 2025-04-14 09:34:05 +02:00
5c9c9a19e1 Fixed README.md 2025-04-13 20:19:35 +02:00
b09a501b0c Added init <directory> command (bssg.sh, scripts/init.sh) to initialize a new, separate site structure. This allows keeping site content independent from the BSSG core installation, facilitating updates. The generated site config includes OUTPUT_DIR setting. 2025-04-13 20:12:39 +02:00
e94d166f70 edit now updates the lastmod - page has been updated as post, so generates lastmod - drafts directory can now be configured - post and page now use the config options to determine where to put the generated files 2025-04-13 19:24:44 +02:00
9de9d95b7c Added RSS_INCLUDE_FULL_CONTENT option 2025-04-13 15:13:23 +02:00
a15ae91fe1 Added blog to README.md 2025-04-13 12:18:26 +02:00
b7f7ded3c4 README.md - fixes 2025-04-13 12:05:41 +02:00
23eac6fbec feat: Refactor build process and add new features/configuration
- Refactor build system by splitting build.sh into modular scripts.
- Add configuration options for RSS item limit, timezone display, and automatic rebuilds after post/edit commands.
- Introduce features: localized "Back to Top" link, optional 'lastmod' frontmatter for posts, and a helpful 'vi' exit message easter egg.
2025-04-13 09:32:36 +02:00
eea95a6991 First commit for first release 2025-04-06 19:01:22 +02:00