Obsidian Spaced Repetition 插件使用教程
1. 项目的目录结构及介绍
Obsidian Spaced Repetition 插件的目录结构如下:
obsidian-spaced-repetition/
├── .github/
│ └── workflows/
│ └── ci.yml
├── .obsidian/
│ └── plugins/
│ └── spaced-repetition/
│ ├── main.js
│ ├── manifest.json
│ └── styles.css
├── .gitignore
├── LICENSE
├── README.md
├── package.json
├── rollup.config.js
└── src/
├── main.ts
├── settings.ts
├── srs.ts
└── utils.ts
目录结构介绍
.github/workflows/ci.yml
: GitHub Actions 的 CI 配置文件。.obsidian/plugins/spaced-repetition/
: Obsidian 插件的核心文件夹,包含插件的主要逻辑、配置和样式。main.js
: 插件的主入口文件。manifest.json
: 插件的元数据文件,包含插件的名称、版本等信息。styles.css
: 插件的样式文件。
.gitignore
: Git 忽略文件配置。LICENSE
: 项目许可证文件。README.md
: 项目说明文档。package.json
: Node.js 项目的配置文件,包含依赖项和脚本。rollup.config.js
: Rollup 打包配置文件。src/
: 源代码文件夹,包含插件的主要逻辑。main.ts
: 主入口 TypeScript 文件。settings.ts
: 设置相关的 TypeScript 文件。srs.ts
: 间隔重复算法相关的 TypeScript 文件。utils.ts
: 工具函数相关的 TypeScript 文件。
2. 项目的启动文件介绍
项目的启动文件是 src/main.ts
,它是插件的主入口点。这个文件负责初始化插件,并注册各种事件和命令。
主要功能
- 初始化插件实例。
- 注册 Obsidian 命令,如“开始复习”、“添加卡片”等。
- 监听 Obsidian 事件,如笔记编辑、保存等。
3. 项目的配置文件介绍
项目的配置文件主要包括 manifest.json
和 package.json
。
manifest.json
manifest.json
是 Obsidian 插件的元数据文件,包含以下关键信息:
{
"id": "spaced-repetition",
"name": "Spaced Repetition",
"version": "1.7.0",
"minAppVersion": "0.12.0",
"description": "Fight the forgetting curve by reviewing notes using spaced repetition on Obsidian.md",
"author": "Stephen Mwangi",
"authorUrl": "https://github.com/st3v3nmw",
"isDesktopOnly": false
}
package.json
package.json
是 Node.js 项目的配置文件,包含以下关键信息:
{
"name": "obsidian-spaced-repetition",
"version": "1.7.0",
"description": "Fight the forgetting curve & note aging by reviewing notes using spaced repetition on Obsidian.md",
"main": "main.js",
"scripts": {
"dev": "rollup --config rollup.config.js -w",
"build": "rollup --config rollup.config.js"
},
"keywords": [
"obsidian",
"spaced repetition",
"flashcards",
"learning",
"review"
],
"author": "Stephen Mwangi",
"license": "MIT",
"devDependencies": {
"@rollup/plugin-commonjs": "^15.1.0",
"@rollup/plugin-node-resolve": "^9.0.0",
"@rollup/plugin-typescript": "^6.0.0",
"@types/node": "^14.14.22",
"obsidian": "latest",
"