Repository Guidelines
This repository is an Obsidian-based digital garden. Notes are Markdown with YAML frontmatter, organized using Zettelkasten/PARA. Publishing is controlled by the publish: true flag and automated by a Python script.
Project Structure & Module Organization
- Notes:
🍀 花园导览/,📥 Inbox/,Atlas/,Cards/,Calendar/,Extras/,Sources/,Spaces/. - Script:
publish_by_frontmatter.pyat the repo root. - Metadata: YAML frontmatter per note; backlinks via
[[...]]; tags via#标签.
Build, Test, and Development Commands
- Run publish:
python publish_by_frontmatter.py— selects notes withpublish: true, copies to the publish repo, and performs Git actions. - Configure inside the script:
VAULT_PATH,SHOWCASE_PATH,FORCE_INCLUDE_DIRS. - Link check: in Obsidian, use “检查失效链接” to validate backlinks before publishing.
Coding Style & Naming Conventions
- Markdown: Chinese prose; English for technical terms. Headings
#→####. Use[[双链]],#标签, atomic notes, and MOCs. Emoji prefixes are allowed (e.g.,🧰,📂). Frontmatter fields includepublish,title,date created,date modified,tags. - Python: Follow PEP 8, 4-space indent, descriptive names. Keep configuration constants together and avoid hard-coding secrets.
Testing Guidelines
- Publishing: (1) ensure
publish: trueis set, (2) run the script, (3) confirm sensitive files are excluded, (4) verify Git actions succeed and only intended files appear in the publish repo. - Links: use Obsidian’s “检查失效链接”; spot-check external URLs in edited notes.
Commit & Pull Request Guidelines
- Commits: imperative mood and focused scope. Examples:
Cards: add MOC for AI notes,script: filter sensitive files. - PRs: clear description, linked issues, before/after screenshots for MOCs/Canvas, and notes on any script or config changes.
Security & Configuration Tips
- Keep personal data and keys out of notes;
.gitignoreshould exclude sensitive artifacts. - The publish script filters sensitive files, but always review changes before pushing.