- name
- dendron-sync-website
- description
- Sync information from a personal Hugo (or similar static-site) source into the Dendron knowledge base. Use when bio, CV, publications, grants, or project descriptions need to reflect website content.
# Dendron Sync Website
Sync information from a personal Hugo website (or any structured static-site source) into the Dendron knowledge base.
## When to Use
- Update Dendron notes from website content
- Sync bio, CV, publications, research, grants from the website
- Keep personal information current across platforms
- Extract publications from the website to create `user.*` references
- Update project descriptions from the research page
## What It Does
1. **Reads** Hugo/static-site content from a configured path
2. **Extracts** structured information: bio, CV, publications, research projects, grants, talks
3. **Updates** corresponding Dendron notes (`personal.*`, `personal.grant.*`, `proj.*`, `user.*`)
4. **Preserves** existing Dendron content (merge, never overwrite)
5. **Commits** changes with a clear message
## Usage
```
@dendron-sync-website
@dendron-sync-website --section=bio
@dendron-sync-website --section=publications
@dendron-sync-website --section=grants
@dendron-sync-website --dry-run
```
## Website Structure
Default layout assumed (configurable via `.dendron-sync.json`):
```
<website_root>/content/
├── about/index.md # Bio, contact info, current position
├── cv/cv.qmd # Full CV with education, experience, grants, publications
├── research/index.md # Research highlights and publication list
└── talks/index.md # Presentations and talks
```
## Sync Workflows
### Bio & Contact Info
- **Source**: `content/about/index.md`
- **Extract**: current position, affiliations, contact info, bio paragraph
- **Update**: `personal.md` or `personal.history.md`
### Grants & Fellowships
- **Source**: `content/cv/cv.qmd` (Grants section)
- **Extract**: grant name, agency, title, period
- **Update**: `personal.grant.*`
### Publications
- **Source**: `content/research/index.md` or `cv/cv.qmd`
- **Extract**: author list, title, journal, year, DOI
- **Update**: create or update `user.<firstauthor><year>.md`; update `user.md` index
### Research Projects
- **Source**: `content/research/index.md` or `content/cv/cv.qmd`
- **Extract**: project names, descriptions, status, collaborators
- **Update**: existing `proj.*` files
## Safety & Validation
- **Backup**: ensure git is clean before syncing
- **Dry-run**: show proposed changes without writing
- **Merge strategy**: preserve existing Dendron content; never overwrite
- **Conflict resolution**: flag mismatches for user review
## Configuration File
Create `.dendron-sync.json` in the vault root:
```json
{
"website_path": "~/path/to/website-repo",
"last_sync": "2026-01-28T12:00:00Z",
"sync_sections": ["bio", "grants", "publications", "projects"],
"auto_commit": true,
"dry_run": false,
"merge_strategy": "preserve_dendron"
}
```
## Extraction Patterns
**DOI**: `https?://doi\.org/(10\.\d{4,}/[\S]+)` or `10\.\d{4,}/[\S]+`
**Author parsing**: `A First, B Second, ..., X Last` — first-author lastname → `user.<lastname><year>`
**Grant period**: `\hfill 2025 -- 2028` → `start_date: 2025`, `end_date: 2028`
## Related Skills
- **dendron-add** — general vault writes
- **dendron-query** — look up what already exists before syncing
- **dendron-config** — set the active vault
View on GitHub