add claude-obsidian
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env bash
|
||||
# claude-obsidian vault setup script
|
||||
# Run this ONCE before opening Obsidian for the first time.
|
||||
# Usage: bash bin/setup-vault.sh [optional: /path/to/vault]
|
||||
# Default: uses the directory where this script lives (the vault root)
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
VAULT="${1:-$(dirname "$SCRIPT_DIR")}"
|
||||
OBSIDIAN="$VAULT/.obsidian"
|
||||
|
||||
echo "Setting up claude-obsidian vault at: $VAULT"
|
||||
|
||||
# ── 1. Create directories ─────────────────────────────────────────────────────
|
||||
mkdir -p "$OBSIDIAN/snippets"
|
||||
mkdir -p "$VAULT/.raw"
|
||||
mkdir -p "$VAULT/wiki/concepts" "$VAULT/wiki/entities" "$VAULT/wiki/sources" "$VAULT/wiki/meta"
|
||||
mkdir -p "$VAULT/_templates"
|
||||
|
||||
# ── 2. Write graph.json ───────────────────────────────────────────────────────
|
||||
cat > "$OBSIDIAN/graph.json" << 'EOF'
|
||||
{
|
||||
"collapse-filter": false,
|
||||
"search": "path:wiki",
|
||||
"showTags": false,
|
||||
"showAttachments": false,
|
||||
"hideUnresolved": true,
|
||||
"showOrphans": false,
|
||||
"collapse-color-groups": false,
|
||||
"colorGroups": [
|
||||
{ "query": "path:wiki/entities", "color": { "a": 1, "rgb": 12945088 } },
|
||||
{ "query": "path:wiki/concepts", "color": { "a": 1, "rgb": 5227007 } },
|
||||
{ "query": "path:wiki/sources", "color": { "a": 1, "rgb": 6986069 } },
|
||||
{ "query": "path:wiki/meta", "color": { "a": 1, "rgb": 5676246 } },
|
||||
{ "query": "path:wiki", "color": { "a": 1, "rgb": 5676246 } }
|
||||
],
|
||||
"showArrow": true,
|
||||
"textFadeMultiplier": -1,
|
||||
"nodeSizeMultiplier": 1.8,
|
||||
"lineSizeMultiplier": 1.2,
|
||||
"centerStrength": 0.5,
|
||||
"repelStrength": 30,
|
||||
"linkStrength": 1.5,
|
||||
"linkDistance": 120,
|
||||
"scale": 1.0
|
||||
}
|
||||
EOF
|
||||
|
||||
# ── 3. Write app.json (excluded files) ───────────────────────────────────────
|
||||
cat > "$OBSIDIAN/app.json" << 'EOF'
|
||||
{
|
||||
"userIgnoreFilters": [
|
||||
"agents/",
|
||||
"commands/",
|
||||
"hooks/",
|
||||
"skills/",
|
||||
"_templates/",
|
||||
"README.md",
|
||||
"CLAUDE.md",
|
||||
"WIKI.md",
|
||||
"Welcome.md"
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
# ── 4. Write appearance.json (enable CSS snippets) ───────────────────────────
|
||||
cat > "$OBSIDIAN/appearance.json" << 'EOF'
|
||||
{
|
||||
"enabledCssSnippets": [
|
||||
"vault-colors",
|
||||
"ITS-Dataview-Cards",
|
||||
"ITS-Image-Adjustments"
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
# ── 5. Download Excalidraw main.js (8MB, not in git) ─────────────────────────
|
||||
EXCALIDRAW="$OBSIDIAN/plugins/obsidian-excalidraw-plugin"
|
||||
if [ -f "$EXCALIDRAW/manifest.json" ] && [ ! -f "$EXCALIDRAW/main.js" ]; then
|
||||
echo "Downloading Excalidraw main.js (~8MB)..."
|
||||
curl -sS -L \
|
||||
"https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/latest/download/main.js" \
|
||||
-o "$EXCALIDRAW/main.js"
|
||||
echo "✓ Excalidraw main.js downloaded"
|
||||
elif [ -f "$EXCALIDRAW/main.js" ]; then
|
||||
echo "✓ Excalidraw main.js already present"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "✓ Setup complete."
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo " 1. Open Obsidian"
|
||||
echo " 2. Manage Vaults → Open folder as vault → select: $VAULT"
|
||||
echo " 3. Enable community plugins when prompted (Calendar, Thino, Excalidraw, Banners are pre-installed)"
|
||||
echo " 4. Install: Dataview, Templater, Obsidian Git (Settings → Community Plugins)"
|
||||
echo " 5. Type /wiki in Claude Code to scaffold your knowledge base"
|
||||
echo ""
|
||||
echo "Pre-installed plugins:"
|
||||
echo " - Calendar (sidebar calendar with word count + task dots)"
|
||||
echo " - Thino (quick memo capture)"
|
||||
echo " - Excalidraw (freehand drawing + image annotation)"
|
||||
echo " - Banners (add banner: to any note frontmatter for header images)"
|
||||
echo ""
|
||||
echo "CSS snippets enabled:"
|
||||
echo " - vault-colors: color-codes wiki/ folders in file explorer"
|
||||
echo " - ITS-Dataview-Cards: use \`\`\`dataviewjs with .cards for card grids"
|
||||
echo " - ITS-Image-Adjustments: append |100 to image embeds for sizing"
|
||||
echo ""
|
||||
echo "Views available:"
|
||||
echo " - Wiki Map canvas (wiki/Wiki Map.canvas) — knowledge graph"
|
||||
echo " - Design Ideas canvas (projects/visual-vault/design-ideas.canvas) — visual reference board"
|
||||
echo " - Graph view filtered to wiki/ only, color-coded by type"
|
||||
echo ""
|
||||
echo "To switch to the visual layout (Canvas + Calendar + Thino sidebar):"
|
||||
echo " Quit Obsidian, then run:"
|
||||
echo " cp $OBSIDIAN/workspace-visual.json $OBSIDIAN/workspace.json"
|
||||
echo " Then reopen Obsidian."
|
||||
echo ""
|
||||
echo "Graph colors: if they reset after closing Obsidian, open Graph settings"
|
||||
echo "→ Color groups and re-add them once. They persist permanently after that."
|
||||
Reference in New Issue
Block a user