Stig-Ørjan Smelror 47a4c04d96 refactor: Standardize theme structure and update configs
- Restructured 'minimal' theme to use 'static/css' and 'static/js' subdirectories for assets, aligning with qsgen3's expected theme structure.
- Moved 'minimaltemplate-v1.css' to 'themes/minimal/static/css/'.
- Moved JS files from 'themes/minimal/css/' to 'themes/minimal/static/js/'.
- Updated 'site.conf.example' to reflect 'minimal' theme usage and correct 'site_theme_css_file' path relative to the theme's static directory.
- Cleaned up redundant CSS variable definitions in 'bin/qsgen3' (_generate_index_page function).
2025-05-31 00:05:05 +02:00
2025-05-30 20:37:56 +02:00
2025-05-30 21:06:09 +02:00

qsgen3 - A Minimal Markdown Static Site Generator

This is a refactored version of qsgen, focusing on simplicity, Markdown with YAML frontmatter, and a Zsh-based build process.

Project Goals

  • Remove QSTags and switch to Markdown + YAML frontmatter.
  • Simplify codebase by removing multilingual and theme support.
  • Refactor templating with uniform variables (e.g., {{ content }}, {{ title }}).
  • Ensure future-proofing by avoiding complex dependencies (like AWK for long string manipulation) for core tasks.
  • Provide a solid initial setup that works out of the box with a sample post, index, and layout.
  • Include a converter script in scripts/convert-qstags-to-md.sh for legacy content.

Structure

  • bin/qsgen3: The main Zsh build script.
  • site.conf: Site configuration (INI format).
  • content/: Source Markdown files.
    • content/posts/: Blog posts.
    • content/pages/: Static pages.
  • layouts/: HTML templates.
    • layouts/base.html: Base template for all pages.
    • layouts/post.html: Template for individual blog posts.
    • layouts/page.html: Template for static pages.
  • static/: Static assets (CSS, images, etc.) copied as-is to the output.
  • output/: The generated website.
  • scripts/: Utility scripts (e.g., content converter).

Usage

  1. Configure your site in site.conf.
  2. Add Markdown content to the content/ directory.
  3. Customize templates in layouts/.
  4. Run the build script:
    ./bin/qsgen3
    
  5. Your static site will be generated in the output/ directory.

Dependencies

  • Zsh
  • A Markdown processor (e.g., Pandoc, CommonMark, or a Zsh-native solution if feasible for basic needs).
  • Standard Unix utilities (grep, sed, find, etc.).
Description
qsgen3 is a shell script that generates pure HTML web sites
Readme GPL-3.0 1.2 MiB
Languages
Shell 72.2%
Python 14.2%
HTML 9%
CSS 4.6%