Push from Obsidian to Vengeance
Write in Obsidian, run one command, your note becomes a blog post.
Vengeance Blog1 minInspired by Obsidian sync workflow
Setup first
Before push works, copy the example config and point it at your vault:
powershell1copy .vengeance\config.example.json .vengeance\config.json
Then edit .vengeance/config.json:
vaultPath— absolute path to your Obsidian vaultmappings— which Obsidian folders map to which blog categoriesobsidianBlogRoot— where pulled posts land in the vault (default:Blogs)
Example:
json1{2 "vaultPath": "C:/Users/you/Documents/MyVault",3 "mappings": [4 {5 "obsidianFolder": "Blogs/Drafts",6 "blogCategory": "frontend",7 "direction": "bidirectional"8 }9 ],10 "obsidianBlogRoot": "Blogs"11}
This file is gitignored — it stays on your machine only.
→
How push works
Rendering diagram...
Example
You write Blogs/Drafts/my-react-tips.md in Obsidian:
markdown1---2title: My React Tips3description: Three hooks I use every day4---5 6## useMemo7Use when profiling shows a real cost.
You run:
powershell1npx tsx scripts/sync-obsidian.ts push "Blogs/Drafts/my-react-tips.md"
You get content/blog/frontend/my-react-tips.md → open /frontend/my-react-tips.
Use [[how-browsers-work]] in Obsidian to link another note — push converts it to a blog route. See Pull from Vengeance into Obsidian for the reverse direction.
Where to write
| Obsidian folder | Goes to |
|---|---|
Blogs/Drafts/ | content/blog/frontend/ |
Blogs/about/ | content/blog/about/ |
Those folders must match mappings in .vengeance/config.json.
Commands
powershell1npm run sync:status # check vault + counts2npx tsx scripts/sync-obsidian.ts push "Blogs/Drafts/note.md" # one file3npx tsx scripts/sync-obsidian.ts push # all mapped folders