Obsidian Digital Garden Management
Manage and maintain an Obsidian-based digital garden (second brain) with automated publishing, Zettelkasten/PARA organization, and bilingual Markdown conventions.
What This Skill Does
This skill helps you work with Obsidian digital garden repositories that use:
YAML frontmatter with `publish: true` flagsZettelkasten/PARA organizational methodsAutomated publishing via Python scriptBilingual (Chinese/English) contentBacklinks `[[...]]` and tags `#标签`Emoji-prefixed directories and notesInstructions
When working with this repository, follow these guidelines:
1. Understanding the Structure
**Note Directories**: `🍀 花园导览/`, `📥 Inbox/`, `Atlas/`, `Cards/`, `Calendar/`, `Extras/`, `Sources/`, `Spaces/`**Publishing Script**: `publish_by_frontmatter.py` at repo root**Metadata Format**: YAML frontmatter with fields like `publish`, `title`, `date created`, `date modified`, `tags`**Linking**: Use `[[双链]]` for backlinks and `#标签` for tags2. Creating or Editing Notes
When creating or modifying Markdown notes:
Use YAML frontmatter at the top with at least `publish: true` if the note should be publishedWrite prose in Chinese, use English for technical termsUse headings from `#` to `####`Create atomic notes with clear single topicsUse `[[backlinks]]` to connect related notesAdd emoji prefixes where appropriate (e.g., `🧰`, `📂`)Follow Zettelkasten/PARA principles for organization**Example frontmatter:**
```yaml
---
publish: true
title: "Note Title"
date created: 2024-01-01
date modified: 2024-01-02
tags:
- example
- knowledge
---
```
3. Publishing Notes
To publish notes with `publish: true` frontmatter:
1. Ensure the note has `publish: true` in its YAML frontmatter
2. Verify no sensitive information is included
3. Run the publishing script: `python publish_by_frontmatter.py`
4. The script will:
- Select notes with `publish: true`
- Copy them to the publish repository
- Perform Git actions
**Configuration variables** (in `publish_by_frontmatter.py`):
`VAULT_PATH`: Source Obsidian vault path`SHOWCASE_PATH`: Target publish repository path`FORCE_INCLUDE_DIRS`: Directories to always include4. Link Validation
Before publishing:
Use Obsidian's "检查失效链接" (Check broken links) featureSpot-check external URLs in edited notesVerify all `[[backlinks]]` resolve correctly5. Python Script Maintenance
When modifying `publish_by_frontmatter.py`:
Follow PEP 8 conventionsUse 4-space indentationUse descriptive variable namesKeep configuration constants at the topAvoid hard-coding secrets or sensitive pathsEnsure the script filters sensitive files6. Commit Messages
Write commit messages in imperative mood with focused scope:
**Good examples:**
`Cards: add MOC for AI notes``script: filter sensitive files``Atlas: update knowledge graph structure``publish: add new workflow documentation`7. Security Considerations
Never commit personal data, API keys, or credentialsEnsure `.gitignore` excludes sensitive artifactsReview changes before pushing to the publish repositoryThe publish script should filter sensitive files automatically8. Testing Publishing Workflow
Before finalizing changes:
1. Set `publish: true` in target notes
2. Run `python publish_by_frontmatter.py`
3. Confirm sensitive files are excluded
4. Verify Git actions succeed
5. Check that only intended files appear in the publish repo
Usage Examples
**Example 1: Create a new note**
```markdown
---
publish: true
title: "AI 工具使用指南"
date created: 2024-02-07
tags:
- AI
- tools
---
AI 工具使用指南
这是一篇关于 AI tools 的笔记,使用 [[Claude]] 和 [[ChatGPT]]。
#AI #工具
```
**Example 2: Publish selected notes**
```bash
python publish_by_frontmatter.py
```
**Example 3: Commit changes**
```bash
git add Cards/AI工具使用指南.md
git commit -m "Cards: add AI tools guide"
git push
```
Important Notes
This is a bilingual repository (Chinese prose, English technical terms)Emoji prefixes in filenames and directories are intentionalAlways validate links using Obsidian's built-in checker before publishingThe publishing script automates Git operations—review its configuration before runningMOC (Maps of Content) notes are important organizational structures—handle with care