diff --git a/README.md b/README.md index a7252c4..6a026e4 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,16 @@ # OpenWords -**OpenWords** 是一个用于背单词和单词管理的 Obsidian 插件, 与 [OpenText](https://github.com/insile/OpenText) 单词库配套设计, 已上线[社区插件市场](obsidian://show-plugin?id=openwords). 插件入口是左侧工具栏上的一个按钮再加上两个绑定命令, 主要功能有生成索引, 背单词, 默写单词, 添加双链等, 其中单词文件使用 OpenText 中的单词库, 而背单词的核心逻辑是 SuperMemo 2 间隔重复算法. 本插件完全依赖单词文件及其属性, 没有外部存储记录回答历史, 所以不能做一些记忆曲线拟合, 单词调度看起来很简单朴素, 仅依靠上次回答记录. 插件启动时会读取所有单词缓存, 更改时会即时写入相应的单词文件并更新缓存. 插件没有设计过多的搜索功能, 提倡使用 Obsidian 内置的搜索功能. 如果您认为本插件有帮助, 欢迎微信赞赏支持 +**OpenWords** 是一个用于背单词和单词管理的 Obsidian 插件, 与 [OpenText](https://github.com/insile/OpenText) 单词库配套设计. 插件入口是左侧工具栏上的一个按钮再加上两个绑定命令, 主要功能有生成索引, 背单词, 默写单词, 添加双链等. 其中单词文件使用 OpenText 中的单词库, 而背单词的核心逻辑是 SuperMemo 2 间隔重复算法. 本插件完全依赖单词文件及其属性, 没有外部存储记录回答历史, 所以不能做一些记忆曲线拟合, 单词调度看起来很简单朴素, 仅依靠上次回答记录. 插件启动时会读取所有单词缓存, 更改时会即时写入相应的单词文件并更新缓存. 插件没有设计过多的搜索功能, 提倡使用 Obsidian 内置的搜索功能. 目前尚未发现 Obsidian 提供一个对 Bases 视图结果访问或者筛选的 API. 如果您认为本插件有帮助, 欢迎微信赞赏支持 -预计 Obsidian Bases API 公布后, 本插件将直接从 Bases 筛选结果中进行调度 - -![p7](README/p7.png) +![p1](README/1.png) ## 安装 -手动安装首先从本仓库 `Releases` 发布页面下载最新版本, 将 `main.js`, `manifest.json`, `styles.css` 三个文件放到新建的插件文件夹中 `{vault}/.obsidian/plugins/openwords`, 重启软件并在设置的第三方插件中启用插件. 如果您愿意协作开发, 也可以将此存储库克隆到本地开发文件夹, 安装依赖项`npm install`, 开始编译`npm run dev`, 修改 `main.ts` 即可生成 `main.js`, 然后手动安装即可测试 +手动安装首先从本仓库 `Releases` 发布页面下载最新版本, 将 `main.js`, `manifest.json`, `styles.css` 三个文件放到新建的插件文件夹中 `{vault}/.obsidian/plugins/openwords`, 重启软件并在设置的第三方插件中启用插件. 如果您愿意协作开发, 也可以将此存储库克隆到本地开发文件夹, 安装依赖项 `npm install`, 开始编译`npm run dev`, 修改 `main.ts` 即可生成 `main.js`, 然后手动安装即可测试 ## 单词 -单词的格式属性及组织形式以 OpenText 中的单词库为参考基准. 单词库是仓库中的一个文件夹, 其中按首字母分类储存所有单词文件, 并且仅存储单词文件, 单词即为文件名, 元数据使用文件 YAML 属性, 其中复选框和标签用于确定插件运行的作用域, 数字和日期是 SM 2 的计算参数. 单词索引是为了更快访问的一系列单词双链文件, 详见生成索引. 目前没有设计批量增加单词的功能, 需要手动仿照格式创建文件确定属性 +单词的格式属性及组织形式以 OpenText 中的单词库为参考基准. 单词库是仓库中的一个文件夹, 其中按首字母分类储存所有单词文件, 并且仅存储单词文件, 单词即为文件名, 元数据使用文件 YAML 属性, 其中复选框和标签用于确定插件运行的作用域, 数字和日期是 SM 2 的计算参数. 单词索引是为了更快访问的一系列 Bases 文件, 详见生成索引. 目前没有设计批量增加单词的功能, 需要手动仿照格式创建文件确定属性 - 复选框: `掌握` , 确定插件作用域, 单词被掌握意味着不会被插件处理 - 标签: `级别/小学`, `级别/中考`, `级别/高考四级`, `级别/考研`, `级别/六级`, `级别/雅思`, `级别/托福`, `级别/GRE`, 确定插件作用域, 标签意味着当前主要精力范围, 设置中没有勾选意味着不会被插件处理 - 数字: `重复次数`, 连续正确回答的次数, 初始值为 0 @@ -29,29 +27,32 @@ ## 设置 -设置必须点击应用才能保存, 同时也会立即缓存路径中所有单词属性. 单词文件夹路径就是单词库的路径, 默认是仓库的根目录 "/" , 但并不会被运行, OpenText 中是 `笔记/人文社科/英语/英语单词/words`; 索引文件夹路径就是生成索引的路径, 默认是仓库根目录下的文件夹 "索引", 如果不存在则会被创建, OpenText 中是 `笔记/人文社科/英语/英语单词/索引`; 而标签设置单词的作用域 +- 单词文件夹路径, 指单词库的路径, 默认是仓库的根目录 "/" , 但并不会被运行, OpenText 中是 `笔记/人文社科/英语/英语单词/words`; +- 索引文件夹路径, 指生成索引的路径, 默认是仓库根目录下的文件夹 "索引", 如果不存在则会被创建, OpenText 中是 `笔记/人文社科/英语/英语单词/索引`; +- 启用标签, 可以通过输入单词属性中的标签进行自定义筛选, 多个标签的筛选逻辑是 "或" +- 扫描单词, 路径与标签必须点击扫描才能保存, 同时插件也会立即加载路径中所有单词. Obsidian 启动后会自动运行 -![p6](README/p6.png) +![p2](README/2.gif) ## 功能 ### 生成索引 -生成索引按级别生成单词库中所有单词的首字母索引文件, 在索引文件夹路径中会创建 9 个级别文件夹和 1 个总索引名文件, 其中级别文件夹又含有 26 个首字母索引文件和 1 个总索引文件, 所以一共 9×27+1=244 个文件. 无论单词有多少个, 总是固定生成这些文件. 索引中复选框和单词 `掌握` 属性同步. 通常单词库中增加, 删除, 重命名单词后需要重新生成索引 +生成索引按设置中所选标签生成单词库中所有单词的首字母索引文件, 默认在索引文件夹路径中会创建 1 个 `.md` 文件以及 9 个 `.base` 文件. 其中, `.md` 文件是一个二维表, 而 `.base` 文件是标签划分的数据库视图. 无论单词有多少个, 总是固定生成这些文件. 通常单词库中增加, 删除单词后需要重新生成索引. 该索引不会自动更新, 更换单词库路径需手动生成 -![p3](README/p3.gif) +![p3](README/3.png) +![p4](README/4.gif) -### 掌握列表 +点击主页中的总计也会生成单词状态索引, 其中的视图与状态栏中的统计一一对应. 该单词状态索引会在点击总计, 扫描设置以及恢复默认设置中创建. Obsidian 启动时不会更新 -掌握列表能够即时快速修改单词的 `掌握` 属性, 可以首先将自己无比熟悉的单词设置为掌握, 例如 hello, that, my 等, 可以防止它们出现在后续功能中, 到后期再将新学会的单词设置为掌握 - -![p2](README/p2.gif) +![p5](5.png) +![p6](6.gif) ### 监听同步 -单词库是被监听的, 单词文件的属性修改会和插件缓存保持同步, 手动修改和插件修改都会立即同步. 左下角状态栏实时统计当前单词属性的变化 `新词数 + 旧词数 + 非作用域词数 = 单词库词数`, 特别的索引中的复选框也会和单词文件的 `掌握` 属性同步 +单词库是被监听的, 单词文件的属性修改会和插件缓存保持同步, 手动修改和插件修改都会立即同步. 下方状态栏实时统计当前单词属性的变化 -![p1](README/p1.gif) +![p7](README/7.gif) ### 背单词 @@ -67,7 +68,7 @@ - 评分 4, 易记因子 -0 - 评分 5, 易记因子 +0.1 -![p4](README/p4.gif) +![p8](README/8.gif) ### 默写单词 @@ -77,17 +78,25 @@ - 看答案, 易记因子 - 0.02 - 易记因子最低不低于 1.3 -![p8](README/p8.gif) +![p9](README/9.gif) ### 添加双链 为当前活动页面笔记中的单词添加双链, 单词范围是作用域中易记因子小于等于设置的参数, 所以默认情况所有单词都会添加. 词形还原准确率在 90 %. 需要文章尽可能规范, 减少不必要的标点符号. 可以将参数设为 1.2 进行还原, 因为没有单词易记因子小于 1.3 -![p5](README/p5.gif) +![p10](README/10.gif) + +### 恢复默认设置 + +重置所有设置选项为默认值, 请谨慎使用 + +![p11](README/11.gif) ### 重置单词属性 -重置作用域单词的重复次数, 间隔, 易记因子, 到期日为默认值, 该功能运行较慢无法回撤, 请谨慎使用 +重置启用单词的重复次数, 间隔, 易记因子, 到期日为默认值, 请谨慎使用 + +![p12](README/12.gif) ## SuperMemo 2 diff --git a/README/1.png b/README/1.png new file mode 100644 index 0000000..b8d8463 Binary files /dev/null and b/README/1.png differ diff --git a/README/10.gif b/README/10.gif new file mode 100644 index 0000000..a6eab55 Binary files /dev/null and b/README/10.gif differ diff --git a/README/11.gif b/README/11.gif new file mode 100644 index 0000000..239d2ef Binary files /dev/null and b/README/11.gif differ diff --git a/README/12.gif b/README/12.gif new file mode 100644 index 0000000..b016e8c Binary files /dev/null and b/README/12.gif differ diff --git a/README/2.gif b/README/2.gif new file mode 100644 index 0000000..b230e74 Binary files /dev/null and b/README/2.gif differ diff --git a/README/3.png b/README/3.png new file mode 100644 index 0000000..ca86cb0 Binary files /dev/null and b/README/3.png differ diff --git a/README/4.gif b/README/4.gif new file mode 100644 index 0000000..1223c91 Binary files /dev/null and b/README/4.gif differ diff --git a/README/5.png b/README/5.png new file mode 100644 index 0000000..3abf5ca Binary files /dev/null and b/README/5.png differ diff --git a/README/6.gif b/README/6.gif new file mode 100644 index 0000000..a852f6c Binary files /dev/null and b/README/6.gif differ diff --git a/README/7.gif b/README/7.gif new file mode 100644 index 0000000..5a976aa Binary files /dev/null and b/README/7.gif differ diff --git a/README/8.gif b/README/8.gif new file mode 100644 index 0000000..14230d4 Binary files /dev/null and b/README/8.gif differ diff --git a/README/9.gif b/README/9.gif new file mode 100644 index 0000000..2f79809 Binary files /dev/null and b/README/9.gif differ diff --git a/README/p1.gif b/README/p1.gif deleted file mode 100644 index 70edb2e..0000000 Binary files a/README/p1.gif and /dev/null differ diff --git a/README/p2.gif b/README/p2.gif deleted file mode 100644 index 5d59ab2..0000000 Binary files a/README/p2.gif and /dev/null differ diff --git a/README/p3.gif b/README/p3.gif deleted file mode 100644 index 7c2a481..0000000 Binary files a/README/p3.gif and /dev/null differ diff --git a/README/p4.gif b/README/p4.gif deleted file mode 100644 index 77c160a..0000000 Binary files a/README/p4.gif and /dev/null differ diff --git a/README/p5.gif b/README/p5.gif deleted file mode 100644 index b680d83..0000000 Binary files a/README/p5.gif and /dev/null differ diff --git a/README/p6.png b/README/p6.png deleted file mode 100644 index 83f31b1..0000000 Binary files a/README/p6.png and /dev/null differ diff --git a/README/p7.png b/README/p7.png deleted file mode 100644 index 122c0dd..0000000 Binary files a/README/p7.png and /dev/null differ diff --git a/README/p8.gif b/README/p8.gif deleted file mode 100644 index 35240c7..0000000 Binary files a/README/p8.gif and /dev/null differ