# 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: ```bash ./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.).