config.toml: Site configuration (Zola + serene theme).content/: Markdown pages and posts. Blog posts live undercontent/posts/.templates/: Tera templates and macros that customize rendering.static/: Static assets copied as‑is (e.g.,static/img/).sass/: SCSS sources compiled whencompile_sass = true.themes/serene/: Theme as a Git submodule.public/: Build output (generated by Zola). Do not edit.
- Init theme submodule:
git submodule update --init --recursive. - Run locally with live reload:
zola serve -i 127.0.0.1 -p 1111. - Validate site/config/links:
zola check. - Build production output to
public/:zola build.
- Markdown: concise headings, one sentence per line preferred; wrap ~100 chars.
- Posts:
content/posts/YYYY-MM-DD-slug/index.md(English) andindex.zh.md(Chinese). - Front matter (TOML): include
title,description,date,slug, optional[taxonomies]and[extra]withlang = "en"|"zh". - Slugs and paths: kebab-case (e.g.,
rag-is-the-way). - Templates/SASS/TOML: 2‑space indent; avoid trailing whitespace.
- Run
zola checkbefore opening a PR; fix warnings and broken links. - Ensure
zola buildcompletes cleanly and the site renders as expected locally. - No unit tests in this repo; screenshots are helpful for template/style changes.
- Follow Conventional Commits:
feat:,fix:,docs:,chore:,refactor:; optional scopefeat(blog):. - Keep commits focused and descriptive (imperative mood).
- PRs should include: purpose, notable changes, screenshots (UI), and
zola check/buildstatus. - Reference related issues/PRs (e.g.,
(#50)), and mention if content is bilingual.
- Never commit secrets; keep
base_urlaccurate inconfig.toml. - When updating theme, re-run
git submodule update --remote --mergeand verify locally. - Do not edit files in
public/; changes belong incontent/,templates/,sass/, orstatic/.