Files
SkyJourney 98522ef9be feat(obsidian): 描述去冗余 + 核心补 OFM 语法 + workflow 补 Web Clip
对标社区基准(kepano/obsidian-skills 31.8k★、AgriciDaniel/claude-obsidian
15 技能完整体系)后的 P1-P6 优化合集:

- P1: 8 个子技能 description 末尾去"伴随激活"冗余句(路由不识别该声明)
- P5: obsidian-plugins 描述聚焦环境层(插件/主题/CSS/Templates/快捷键/命令)
- P6: obsidian-workflow-pkm 描述加"多步骤复合需求优先匹配"前置引导
- P3: 核心 obsidian skill 增补 OFM 语法速查章节
       (wikilinks/embeds/callouts/block refs/highlight/math 全表)
- P4: workflow-pkm 新增 Workflow 8 Web Clip → Permanent
       (引用 defuddle 社区标准,WebFetch 兜底)
2026-06-12 19:48:45 +08:00

285 lines
9.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: obsidian-plugins
description: 管理 Obsidian 环境层配置——插件(核心/社区,启用/禁用/安装/卸载)、主题切换、CSS snippets、Templates 模板、内置命令(command id)、快捷键 hotkeys。高频场景:首次配置 vault 时批量装常用插件、按团队规范统一主题/CSS。触发词:启用插件、社区插件、Obsidian 主题、CSS snippet、Templates、快捷键、hotkey、内置命令、首次配置 vault、安装插件。不用于笔记内容 CRUD(obsidian 核心技能),不用于 frontmatter 属性(obsidian-meta)。
---
# 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` 并在设置中指定模板文件夹。
### CommandsObsidian 内置命令系统)
```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+ 的属性面板
# 可选:启用 Bases1.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` 检查 |