feat: 新增 obsidian 插件族(9 个技能)
- 新增 plugins/obsidian 插件目录,含 9 个 obsidian-* 技能 - 核心技能重构:去除 README.md 分散路由,合并 vault 自动检测 SOP(.obsidian/ 目录置信度表 + 标准进入动作)到 SKILL.md - 所有技能 description 精简重写:触发信号 + 边界 + .obsidian/ 联动激活信号,字数从 300+ 压缩至 220-250 - 更新 marketplace.json 追加 obsidian 插件条目 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
f13bd26f59
commit
1e35ee4d9f
@@ -0,0 +1,284 @@
|
||||
---
|
||||
name: obsidian-plugins
|
||||
description: 管理 Obsidian 环境配置:核心/社区插件的启用/禁用/安装/卸载、主题切换、CSS snippets 管理、Templates 模板管理、Obsidian 内置命令执行、快捷键查询。触发词:启用插件、社区插件、Obsidian 主题、CSS snippet、Templates、快捷键、hotkey、首次配置 vault。不用于笔记内容 CRUD(obsidian 核心技能)。检测到 .obsidian/ 时与核心技能同步激活。
|
||||
---
|
||||
|
||||
# Obsidian Plugins · 环境配置管理
|
||||
|
||||
> Obsidian 的"控制面板":插件、主题、CSS、模板、命令、快捷键。一份技能管完所有环境配置。
|
||||
|
||||
---
|
||||
|
||||
## 何时使用
|
||||
|
||||
- **启用/禁用/安装/卸载**核心或社区插件
|
||||
- 切换 / 安装 / 卸载**主题**
|
||||
- 管理 **CSS snippets**(自定义样式片段)
|
||||
- 管理 **Templates**(Obsidian Templates 核心插件的模板文件)
|
||||
- 查看 / 执行 Obsidian 内置**命令**(`obsidian command id=...`)
|
||||
- 查询 / 管理**快捷键**(hotkeys)
|
||||
- 切换 **Restricted Mode**(安全模式,禁用社区插件)
|
||||
|
||||
## 不用于
|
||||
|
||||
- 笔记内容 CRUD → **obsidian** 核心技能
|
||||
- Frontmatter 管理 → **obsidian-meta**
|
||||
- Vault 层面同步设置 → **obsidian-history**
|
||||
|
||||
---
|
||||
|
||||
## 命令速查
|
||||
|
||||
### 插件(Plugins)
|
||||
|
||||
```bash
|
||||
# 列出
|
||||
obsidian plugins # 列出所有已安装插件(tsv 默认)
|
||||
obsidian plugins filter=core # 只看核心插件
|
||||
obsidian plugins filter=community # 只看社区插件
|
||||
obsidian plugins versions # 含版本号
|
||||
obsidian plugins format=json # JSON 输出
|
||||
|
||||
obsidian plugins:enabled # 只列启用的
|
||||
obsidian plugins:enabled filter=community versions format=json
|
||||
|
||||
obsidian plugin id=dataview # 某插件详情
|
||||
obsidian plugin id=<id> # 通过 ID 查询
|
||||
```
|
||||
|
||||
```bash
|
||||
# 启用/禁用/安装/卸载
|
||||
obsidian plugin:enable id=daily-notes # 启用核心插件
|
||||
obsidian plugin:enable id=dataview filter=community
|
||||
obsidian plugin:disable id=dataview filter=community
|
||||
obsidian plugin:install id=obsidian-git enable # 安装并立即启用(社区)
|
||||
obsidian plugin:uninstall id=dataview
|
||||
obsidian plugin:reload id=dataview # 开发用:重载插件
|
||||
```
|
||||
|
||||
### 安全模式(Restricted Mode)
|
||||
|
||||
```bash
|
||||
obsidian plugins:restrict on # 开启受限模式(禁用所有社区插件)
|
||||
obsidian plugins:restrict off # 关闭
|
||||
obsidian plugins:restrict # 查询状态
|
||||
```
|
||||
|
||||
### 主题(Themes)
|
||||
|
||||
```bash
|
||||
obsidian themes # 列出所有已安装主题
|
||||
obsidian themes versions # 含版本号
|
||||
obsidian theme # 当前主题
|
||||
obsidian theme name="Minimal" # 某主题详情
|
||||
|
||||
obsidian theme:set name="Minimal" # 切换主题
|
||||
obsidian theme:set name="" # 恢复默认
|
||||
obsidian theme:install name="Minimal" enable # 安装并启用
|
||||
obsidian theme:uninstall name="Minimal"
|
||||
```
|
||||
|
||||
### CSS Snippets
|
||||
|
||||
```bash
|
||||
obsidian snippets # 列出所有已安装 snippets
|
||||
obsidian snippets:enabled # 已启用的
|
||||
|
||||
obsidian snippet:enable name="compact-tables"
|
||||
obsidian snippet:disable name="compact-tables"
|
||||
```
|
||||
|
||||
### Templates(核心插件)
|
||||
|
||||
```bash
|
||||
obsidian templates # 列出所有模板
|
||||
obsidian templates total # 数量
|
||||
|
||||
obsidian template:read name="daily" # 读取模板内容
|
||||
obsidian template:read name="daily" resolve title="2026-04-09" # 解析变量后读取
|
||||
|
||||
obsidian template:insert name="meeting" # 插入到当前激活文件
|
||||
```
|
||||
|
||||
> 💡 Templates 插件需要先启用:`obsidian plugin:enable id=templates` 并在设置中指定模板文件夹。
|
||||
|
||||
### Commands(Obsidian 内置命令系统)
|
||||
|
||||
```bash
|
||||
obsidian commands # 列出所有可用命令
|
||||
obsidian commands filter=editor # 按前缀筛选
|
||||
obsidian commands filter=daily # 每日笔记相关命令
|
||||
|
||||
obsidian command id="editor:toggle-bold" # 执行命令(触发 Obsidian 内部动作)
|
||||
obsidian command id="workspace:split-vertical"
|
||||
obsidian command id="app:go-back"
|
||||
```
|
||||
|
||||
### Hotkeys 快捷键
|
||||
|
||||
```bash
|
||||
obsidian hotkeys # 列出所有快捷键(tsv)
|
||||
obsidian hotkeys format=json
|
||||
obsidian hotkeys all # 含未绑定快捷键的命令
|
||||
obsidian hotkeys verbose # 显示是否自定义
|
||||
obsidian hotkeys total # 数量
|
||||
|
||||
obsidian hotkey id="editor:toggle-bold" # 查询某命令的快捷键
|
||||
obsidian hotkey id="editor:toggle-bold" verbose
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## AI Agent 最佳实践
|
||||
|
||||
### 场景 1 · 首次配置检查清单
|
||||
|
||||
Agent 第一次进入某 vault,验证基础环境:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# obsidian-doctor.sh:环境体检
|
||||
|
||||
echo "=== Vault 基础 ==="
|
||||
obsidian vault info=name
|
||||
obsidian version
|
||||
|
||||
echo "=== 核心插件启用状态 ==="
|
||||
REQUIRED=("daily-notes" "templates" "file-recovery" "command-palette" "backlink" "outgoing-link")
|
||||
for p in "${REQUIRED[@]}"; do
|
||||
STATUS=$(obsidian plugin id=$p 2>/dev/null | grep -o 'enabled: true' && echo "✅" || echo "❌ $p 未启用")
|
||||
echo "$STATUS"
|
||||
done
|
||||
|
||||
echo "=== 社区插件 ==="
|
||||
obsidian plugins filter=community versions
|
||||
|
||||
echo "=== 主题 ==="
|
||||
obsidian theme
|
||||
|
||||
echo "=== 受限模式 ==="
|
||||
obsidian plugins:restrict
|
||||
```
|
||||
|
||||
### 场景 2 · 为 AI 工作流推荐的最小插件集
|
||||
|
||||
```bash
|
||||
# 启用核心插件(最小集)
|
||||
obsidian plugin:enable id=daily-notes
|
||||
obsidian plugin:enable id=templates
|
||||
obsidian plugin:enable id=file-recovery
|
||||
obsidian plugin:enable id=backlink
|
||||
obsidian plugin:enable id=outgoing-link
|
||||
obsidian plugin:enable id=tag-pane
|
||||
obsidian plugin:enable id=graph
|
||||
obsidian plugin:enable id=properties # Obsidian 1.4+ 的属性面板
|
||||
|
||||
# 可选:启用 Bases(1.9+)
|
||||
obsidian plugin:enable id=bases
|
||||
```
|
||||
|
||||
**推荐社区插件**(AI 协作友好):
|
||||
|
||||
| 插件 ID | 用途 | 何时需要 |
|
||||
|---------|------|---------|
|
||||
| `obsidian-git` | Git 集成 | 永远需要(vault 备份) |
|
||||
| `templater-obsidian` | 高级模板(JS 可执行) | 动态模板 |
|
||||
| `dataview` | 查询语言 | 还没迁移到 Bases |
|
||||
| `tasks` | 高级任务管理 | 重度 GTD 用户 |
|
||||
| `calendar` | 日历侧栏 | 频繁用每日笔记 |
|
||||
| `advanced-uri` | URI 命令增强 | 脚本化自动化 |
|
||||
|
||||
```bash
|
||||
# 批量安装
|
||||
for p in obsidian-git templater-obsidian tasks calendar; do
|
||||
obsidian plugin:install id=$p enable
|
||||
done
|
||||
```
|
||||
|
||||
### 场景 3 · 动态调用 Obsidian 内部命令
|
||||
|
||||
`obsidian command id=...` 可以执行**任意** Obsidian 命令,相当于 UI 层的自动化:
|
||||
|
||||
```bash
|
||||
# 拆分工作区(左侧文件树 + 右侧编辑)
|
||||
obsidian command id="workspace:split-vertical"
|
||||
|
||||
# 打开快速切换器
|
||||
obsidian command id="switcher:open"
|
||||
|
||||
# 打开命令面板(不常用,因为命令面板本身是交互式 UI)
|
||||
obsidian command id="command-palette:open"
|
||||
|
||||
# 切换 Reading View
|
||||
obsidian command id="markdown:toggle-preview"
|
||||
|
||||
# 折叠所有标题
|
||||
obsidian command id="editor:fold-all"
|
||||
```
|
||||
|
||||
**发现命令 ID**:`obsidian commands | less` 或 `obsidian commands filter=<prefix>`。
|
||||
|
||||
### 场景 4 · 模板驱动的笔记创建
|
||||
|
||||
```bash
|
||||
# 1. 先看有哪些模板
|
||||
obsidian templates
|
||||
|
||||
# 2. 预览模板内容
|
||||
obsidian template:read name="project-kickoff" resolve title="Alpha"
|
||||
|
||||
# 3. 基于模板创建新笔记(通过 create + content)
|
||||
CONTENT=$(obsidian template:read name="project-kickoff" resolve title="Alpha")
|
||||
obsidian create path="10-Projects/alpha/README.md" content="$CONTENT" open
|
||||
```
|
||||
|
||||
### 场景 5 · CSS Snippet 自动切换(深色/浅色模式)
|
||||
|
||||
```bash
|
||||
# 检测系统时间切换不同的 CSS snippet
|
||||
HOUR=$(date +%H)
|
||||
if [ "$HOUR" -ge 19 ] || [ "$HOUR" -lt 7 ]; then
|
||||
obsidian snippet:enable name="dark-extra"
|
||||
obsidian snippet:disable name="light-extra"
|
||||
else
|
||||
obsidian snippet:enable name="light-extra"
|
||||
obsidian snippet:disable name="dark-extra"
|
||||
fi
|
||||
```
|
||||
|
||||
### 场景 6 · 快捷键审计
|
||||
|
||||
```bash
|
||||
# 查自定义过的快捷键(避免冲突)
|
||||
obsidian hotkeys verbose format=json | jq '.[] | select(.custom == true)'
|
||||
|
||||
# 查没有快捷键绑定的命令(发现可以加快捷键的命令)
|
||||
obsidian hotkeys all format=json | jq '.[] | select(.hotkey == null)'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 与其他技能的协作
|
||||
|
||||
| 场景 | 链路 |
|
||||
|-----|------|
|
||||
| 启用 Daily Notes 前置 | obsidian-plugins → **obsidian-daily** |
|
||||
| 启用 Bases 前置 | obsidian-plugins(`plugin:enable id=bases`)→ **obsidian-bases** |
|
||||
| 启用 Templates 前置 | obsidian-plugins → **obsidian-daily**(daily template) |
|
||||
| 启用 File Recovery 前置 | obsidian-plugins → **obsidian-history** |
|
||||
| 推荐插件清单 | obsidian-plugins + **obsidian-workflow-pkm** |
|
||||
|
||||
---
|
||||
|
||||
## 常见陷阱
|
||||
|
||||
| 现象 | 原因 | 对策 |
|
||||
|------|------|------|
|
||||
| `plugin:install` 失败 | 处于 Restricted Mode | `plugins:restrict off` |
|
||||
| 社区插件 ID 写错 | 大小写/连字符敏感 | 先 `plugins filter=community` 查正确 ID |
|
||||
| `command id=...` 无效 | 命令 ID 写错 | `commands filter=<prefix>` 查询 |
|
||||
| Template 变量未解析 | 没加 `resolve` 参数 | `template:read name=<n> resolve` |
|
||||
| Templates 插件找不到模板 | 模板文件夹没配 | Settings → Templates → Template folder location |
|
||||
| 切主题后样式错乱 | 新主题与某 snippet 冲突 | 临时 `snippet:disable` 所有 |
|
||||
| 社区插件升级后命令失效 | 插件 API 变更 | `plugin:reload` 或重启 Obsidian |
|
||||
| Restricted Mode 下 agent 脚本报错 | Community 插件全部禁用 | 脚本增加 `plugins:restrict` 检查 |
|
||||
Reference in New Issue
Block a user