Add custom font styles and theme enhancements
- Created a new CSS file for font imports and defined font families for base, mono, strong, em, and h1 elements. - Added a new JavaScript file to extend the default VitePress theme, incorporating a custom layout and a Vue component for enhanced functionality. - Integrated Mermaid diagram support and included the necessary styles for it.
This commit is contained in:
62
.claude/commands/oki/extract.md
Normal file
62
.claude/commands/oki/extract.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
name: "OKI: Extract"
|
||||
description: 基于资料,进行思考、总结、提炼,生成知识点,搭建知识链接
|
||||
category: Knowledge
|
||||
tags: [knowledge, wiki]
|
||||
---
|
||||
|
||||
基于给予资料,或现有资料,进行思考、总结、提炼,生成知识点,搭建知识链接
|
||||
|
||||
## 指令参数
|
||||
|
||||
- 可指定为资料地址,**基于资料**提炼,例如:`/oki:extract references/paper.pdf`、`/oki:summary https://www.example.com/article.html`
|
||||
- 也可以为知识点,**基于目标**从现有资料中提炼,例如:`/oki:extract 胶原蛋白`
|
||||
|
||||
若未指定,则尝试从对话上下文自动推断;若表述模糊或存在歧义,必须提示列出可用变更项
|
||||
|
||||
## 知识库结构
|
||||
|
||||
```bash
|
||||
openwiki
|
||||
├── nodes/ # 知识点 - 从「资料记录」提取到的,描述某知识点的页面
|
||||
├── public/ # 静态资源
|
||||
├── scripts/ # 执行脚本
|
||||
├── sources/ # 资料记录 - 对单篇「原始资料」的总结、记录
|
||||
├── templates/ # 页面模板
|
||||
├── config.yaml # 配置文件
|
||||
├── index.md # 主页 - 知识库内容索引页
|
||||
├── log.md # 变更日志页 - 知识库改动的记录
|
||||
└── overview.md # 总览页 - 对知识库的总结
|
||||
```
|
||||
|
||||
## 知识点页面规范
|
||||
|
||||
- 根据模板(`templates/node.md`)构建页面
|
||||
- 以中文为主,专有名词、约定俗称可用英文
|
||||
- 正文内容按描述的对象,设多级标题分块表达
|
||||
- 「知识点」的正文内容,概览页的节点描述,都至少包含一个「知识链接」
|
||||
- 流程图使用 Mermaid
|
||||
- `aliases`允许空格、特殊符号
|
||||
- `tags`大驼峰,不留空格,不用除,至少包含一个非数字字符
|
||||
- 链接使用 `[]()` ,而非`[[wiki-link]]`
|
||||
|
||||
## 执行步骤
|
||||
|
||||
严格分步骤进行,不可跳步
|
||||
|
||||
1. **根据不同情况,准备相关的「资料记录」**
|
||||
- 若基于资料,执行`/oki:summary`,为给定的原始资料创建或更新「资料记录」
|
||||
- 若基于目标,执行`/oki:query --source`,在知识库内部查找与目标相关的「资料记录」
|
||||
|
||||
2. **从「资料记录」中提取知识点,创建或更新「知识点」**
|
||||
- 知识点可以是抽象的概念,如:现象、原理、分子、基因、解剖结构、物质、物种、方法、术语、说法等
|
||||
- 也可以是具体的实体,如:某人物、某公司、某产品、某项目、某课题、某案例等
|
||||
- **不要**基于现有任何「知识点」,仅通过「资料记录」
|
||||
|
||||
3. **搭建「知识链接」**
|
||||
从正文中寻找,与已有「知识点」相关的表述,创建链接,例如`[III型胶原蛋白](concepts/胶原蛋白.md)功能的核心结构基础,是由[三条α链](concepts/三螺旋结构.md)组成`
|
||||
|
||||
4. **若有新页面,更新「总览页」**
|
||||
|
||||
5. **页面格式化**
|
||||
执行`npx prettier --write entities/ concepts/ index.md overview.md log.md`
|
||||
52
.claude/commands/oki/lint.md
Normal file
52
.claude/commands/oki/lint.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
name: "OKI: Lint"
|
||||
description: 检查并修复知识库
|
||||
category: Knowledge
|
||||
tags: [knowledge, wiki]
|
||||
---
|
||||
|
||||
检查并修复知识库
|
||||
|
||||
## 指令参数
|
||||
|
||||
可指定范围(若不指定则全局),例如:`/oki:lint index.md`,`/oki:lint 资料记录`、`/oki:lint concepts`
|
||||
|
||||
## 知识库结构
|
||||
|
||||
```bash
|
||||
openwiki
|
||||
├── nodes/ # 知识点 - 从「资料记录」提取到的,描述某知识点的页面
|
||||
├── public/ # 静态资源
|
||||
├── scripts/ # 执行脚本
|
||||
├── sources/ # 资料记录 - 对单篇「原始资料」的总结、记录
|
||||
├── templates/ # 页面模板
|
||||
├── config.yaml # 配置文件
|
||||
├── index.md # 主页 - 知识库内容索引页
|
||||
├── log.md # 变更日志页 - 知识库改动的记录
|
||||
└── overview.md # 总览页 - 对知识库的总结
|
||||
```
|
||||
|
||||
## 执行步骤
|
||||
|
||||
1. **检查页面规范**
|
||||
逐个读取所有「资料记录」、「知识点」内容,是否符合页面规范,并修复
|
||||
- 是否根据对应模板(存于`templates/`)构建页面?
|
||||
- 是否以中文为主,英文为辅?
|
||||
- 是否正文内容设多级标题分块表达?
|
||||
- 是否「知识点」的正文内容,「总览页」的节点描述,都至少包含一个与其他页面的链接?
|
||||
- 是否「资料记录」的正文内容,没有任何链接能到其他页面?
|
||||
- 是否「资料记录」的文件名为`{类型/来源}_{正文标题}`,且不留空格,不用特殊符号?
|
||||
- 是否`tags`仅包含分类标签,而没其他标签?
|
||||
- 是否使用 Mermaid 绘制流程图?
|
||||
- 是否使用规范的`tags`(大驼峰,不留空格,不用除,至少包含一个非数字字符)?
|
||||
- 是否使用 `[]()` ,而不是`[[wiki-link]]`
|
||||
|
||||
2. **合并重复的页面**
|
||||
- 「资料记录」的`source`一致,才视为重复
|
||||
- 「知识点」描述主体相似,可视为重复
|
||||
- 需用户确认,才可执行
|
||||
|
||||
3. **检查链接和文件名**
|
||||
执行`node scripts/check-md.js sources/ nodes/ index.md overview.md log.md`,并修复
|
||||
4. **页面格式化**
|
||||
执行`npx prettier --write sources/ nodes/ index.md overview.md log.md`
|
||||
22
.claude/commands/oki/publish.md
Normal file
22
.claude/commands/oki/publish.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: "OKI: Publish"
|
||||
description: 本地知识库查看、发布
|
||||
category: Knowledge
|
||||
tags: [knowledge, wiki, publish]
|
||||
---
|
||||
|
||||
本地知识库查看、发布
|
||||
|
||||
## 指令参数
|
||||
|
||||
- `--preview`、`-p`变为预览(默认发布)
|
||||
|
||||
## 发布步骤
|
||||
|
||||
1. 执行`cd openwiki && pnpm build`
|
||||
2. 若报错,修复错误
|
||||
3. 执行`bash scripts/deploy.sh`
|
||||
|
||||
## 预览步骤
|
||||
|
||||
1. 执行`cd openwiki && pnpm dev`
|
||||
105
.claude/commands/oki/query.md
Normal file
105
.claude/commands/oki/query.md
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
name: "OKI: Query"
|
||||
description: 查询有关的知识点,找到直接依据,返回对应「资料记录」
|
||||
category: Knowledge
|
||||
tags: [knowledge, wiki]
|
||||
---
|
||||
|
||||
查询有关的知识点,找到直接依据,返回对应「资料记录」
|
||||
|
||||
## 知识库结构
|
||||
|
||||
```bash
|
||||
openwiki
|
||||
├── nodes/ # 知识点 - 从「资料记录」提取到的,描述某知识点的页面
|
||||
├── public/ # 静态资源
|
||||
├── scripts/ # 执行脚本
|
||||
├── sources/ # 资料记录 - 对单篇「原始资料」的总结、记录
|
||||
├── templates/ # 页面模板
|
||||
├── config.yaml # 配置文件
|
||||
├── index.md # 主页 - 知识库内容索引页
|
||||
├── log.md # 变更日志页 - 知识库改动的记录
|
||||
└── overview.md # 总览页 - 对知识库的总结
|
||||
```
|
||||
|
||||
## 输入
|
||||
|
||||
- `[entry]`,查询目标可指定为知识点,例如:`/oki:query 胶原蛋白`,也可以为自然语言,如:`/oki:query 什么是胶原蛋白?`、`/oki:query 它是什么构成的?`
|
||||
- `--from`、`-f`,则改为知识库外查询,其后填入查询来源,如:`/oki:query 胶原蛋白 --from 维基百科`,`/oki:query 胶原蛋白 --f https://pubmed.ncbi.nlm.nih.gov/`
|
||||
|
||||
若未指定任何参数,则尝试从对话上下文自动推断;若表述模糊或存在歧义,必须提示列出可用变更项。
|
||||
|
||||
## 输出
|
||||
|
||||
按以下格式输出相关的「资料记录」(**不是「知识点」**)
|
||||
|
||||
```markdown
|
||||
<!-- 报告正文 -->
|
||||
|
||||
## 相关资料
|
||||
|
||||
- [{资料记录}](../sources/{资料记录}.md):{和查询目标直接相关的原文节选}
|
||||
- ...
|
||||
```
|
||||
|
||||
## 知识库内查询步骤
|
||||
|
||||
逐层深入挖掘,查询直接证据
|
||||
|
||||
**从「知识点」中查询**
|
||||
若有和查询目标直接关联的「知识点」,则从「知识点」中查询
|
||||
|
||||
1. 返回它在`## 相关资料`中的「资料记录」
|
||||
2. 在「资料记录」中找到和查询目标直接相关的原文节选
|
||||
3. 若查到,按格式输出报告
|
||||
|
||||
**从「资料记录」中查询**
|
||||
若没直接关联的「知识点」,则从「资料记录」中查询
|
||||
|
||||
1. 找到可能相关的「资料记录」
|
||||
2. 读取「资料记录」内容,查询和目标直接相关的原文节选
|
||||
3. 若查到,按格式输出报告
|
||||
4. 若没找到,尝试**从「原始资料」中查询**
|
||||
|
||||
**从「原始资料」中查询**
|
||||
若「资料记录」内容中没有能作为直接依据的,推测可能其原始资料有,则从「原始资料」中查询
|
||||
|
||||
1. 执行`/oki:summary`重读「资料记录」`source`记录的原始资料
|
||||
2. 从「资料解析」中查询直接证据。若查到,更新「资料记录」,添加直接依据部分的内容
|
||||
3. 若查到,更新「资料记录」(添加直接依据部分的内容),按格式输出报告
|
||||
4. 若没查到,询问用户是否从外部查询
|
||||
|
||||
**重要**
|
||||
|
||||
- **不要**查询除`nodes/`、`sources/`文件夹以外的页面
|
||||
|
||||
- **优先选择**强证据来源:
|
||||
- 知识库中:「原始资料」 > 「资料记录」 > 「知识点」
|
||||
- 「资料记录」中:百科 > 论文 > 专利 > 会议 > 新闻
|
||||
|
||||
## 知识库外查询步骤
|
||||
|
||||
1. **从外部数据检索**
|
||||
- 从`--from`、`-f`后的获取意图,寻找合适的外部数据库:
|
||||
- 论文 `https://link.springer.com/search?query={查询内容}&content-type=Review`
|
||||
- 论文 `https://pubmed.ncbi.nlm.nih.gov/?term={查询内容}&filter=pubt.review`
|
||||
- 全百科 `https://en.wikipedia.org/w/index.php?search={查询内容}`
|
||||
- 医学百科 `https://www.a-hospital.com/index.php?search={查询内容}`
|
||||
- 专利 `https://patents.google.com/?q=({查询内容})`
|
||||
- 若`--from`、`-f`后为空,则根据查询目标的类型来判断:
|
||||
- 若为科学术语、专业名词,则从百科中查询
|
||||
- 若为医学概念,则从医学百科中查询
|
||||
- 若为编号`ZLxxxxx`、`CNxxxxx`,则可能为专利号
|
||||
- 若为研究相关,则从论文中查询
|
||||
|
||||
- 网站资料**优先选择**强证据来源:
|
||||
- 百科 > 论文 > 专利 > 新闻 > ~~其他~~
|
||||
|
||||
2. **从参考资料中检索**
|
||||
若检索不到直接依据,尝试从网站页面提供的参考资料中寻找,**直到找到为止**
|
||||
|
||||
3. **创建并返回「资料记录」**
|
||||
1. 若找到直接依据(可多篇),通过`/oki:summary`创建「资料记录」
|
||||
2. 按格式输出报告
|
||||
|
||||
4. 若没查到,询问用户其他外部数据库。
|
||||
72
.claude/commands/oki/summary.md
Normal file
72
.claude/commands/oki/summary.md
Normal file
@@ -0,0 +1,72 @@
|
||||
---
|
||||
name: "OKI: Summary"
|
||||
description: 读取原始资料,记录总结,返回对应「资料记录」
|
||||
category: Knowledge
|
||||
tags: [knowledge, wiki]
|
||||
---
|
||||
|
||||
读取原始资料,记录总结,返回对应「资料记录」
|
||||
|
||||
## 知识库结构
|
||||
|
||||
```bash
|
||||
openwiki
|
||||
├── nodes/ # 知识点 - 从「资料记录」提取到的,描述某知识点的页面
|
||||
├── public/ # 静态资源
|
||||
├── scripts/ # 执行脚本
|
||||
├── sources/ # 资料记录 - 对单篇「原始资料」的总结、记录
|
||||
├── templates/ # 页面模板
|
||||
├── config.yaml # 配置文件
|
||||
├── index.md # 主页 - 知识库内容索引页
|
||||
├── log.md # 变更日志页 - 知识库改动的记录
|
||||
└── overview.md # 总览页 - 对知识库的总结
|
||||
```
|
||||
|
||||
## 「资料记录」页面规范
|
||||
|
||||
- 根据模板(`templates/source.md`)构建页面
|
||||
- 以中文为主,专有名词、约定俗称可用英文
|
||||
- 正文内容按描述的对象,设多级标题分块表达
|
||||
- 文件名为`{类型/来源}_{正文标题}`,但不留空格,不用特殊符号
|
||||
- `tags`大驼峰,不留空格,不用特殊符号,至少包含一个非数字字符
|
||||
- 若原始资料存于本仓库,`source`使用相对仓库根目录的路径
|
||||
- 链接使用 `[]()` ,而非`[[wiki-link]]`
|
||||
|
||||
**不要**
|
||||
|
||||
- 正文中**不要**存在和「知识点」的链接
|
||||
- `tags`**不要**除分类标签以外的标签类型,如不要`- 胶原蛋白`
|
||||
|
||||
## 输入
|
||||
|
||||
- `[entry]`,可指定为本地文件或者网址,可批量(用空格区分),如:`/oki:summary references/paper-1.pdf paper-2.pdf`、`/oki:summary https://www.example.com/article.html`
|
||||
|
||||
若未指定任何参数,则尝试从对话上下文自动推断;若表述模糊或存在歧义,必须提示列出可用变更项。
|
||||
|
||||
## 输出
|
||||
|
||||
## 输出
|
||||
|
||||
按以下格式输出相关的「资料记录」
|
||||
|
||||
```markdown
|
||||
<!-- 报告正文 -->
|
||||
|
||||
## 资料记录
|
||||
|
||||
- [{资料记录}](../sources/{资料记录}.md):{摘要}
|
||||
- ...
|
||||
```
|
||||
|
||||
## 执行步骤
|
||||
|
||||
1. **把「原始资料」解析为「资料缓存」**
|
||||
- 若是PDF,执行`opendataloader-pdf file1.pdf file2.pdf -f markdown -o ~/.cache/oki-summary`
|
||||
- 若是网页,执行`npx defuddle parse [url] --markdown -o ~/.cache/oki-summary/[cache-name].md`
|
||||
- 若是其他格式,则尝试自行选择方式转化为 markdown 并存于`~/.cache/oki-summary`
|
||||
|
||||
2. **创建或更新「资料记录」**
|
||||
1. 执行`grep -rh "^source:" openwiki/sources/ --include="*.md" | sed 's/^source: *//'`,以获取目前所有「资料记录」的原始资料地址,进行比对
|
||||
- 若存在,则更新与之对应「资料记录」
|
||||
- 若不存在,则新建对应「资料记录」
|
||||
2. 执行`cd openwiki && npx prettier --write sources/ log.md`
|
||||
Reference in New Issue
Block a user