From 8e58684dbb4b24e2462d574468af4de6e07eacaa Mon Sep 17 00:00:00 2001 From: insile <39241051+insile@users.noreply.github.com> Date: Fri, 2 May 2025 08:51:37 +0800 Subject: [PATCH] Update README.md --- README.md | 102 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 0463e99..dad6ff4 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,68 @@ -## OpenWords -- 简介 - - **OpenWords** 是一个用于背单词和单词管理的 [Obsidian](https://obsidian.md/) 简单插件, 插件入口是左侧工具栏的一个按钮加上两个命令. 使用 SuperMemo 2 间隔重复算法以及 OpenText 单词库. 依赖的第三方包主要是用于重复计算的 [supermemo](https://www.npmjs.com/package/supermemo) 和用于词形还原的 [wink-pos-tagger](https://www.npmjs.com/package/wink-pos-tagger). 本插件完全依赖单词文件及其属性, 没有表格, Json 等外部存储, 启动时会读取所有单词缓存属性, 并在更改时写入相应的单词文件, 没有设计过多的搜索功能, 可以使用内置的属性搜索单词 - - ![p7](README/p7.png) -- 单词 - - **单词库**以 [OpenText](opentext.net.cn) 为参考, 是 Obsidian 仓库中的一个文件夹, 其中按首字母分类储存所有单词文件, 单词即为文件名, 元数据使用文件 YAML 属性, 其中复选框和标签用于确定插件运行的作用域, 数字和日期是 SM 2 的计算参数 - - 复选框: `掌握` , 确定插件作用域, 单词被掌握意味着不会被插件处理 - - 标签: `级别/小学`, `级别/中考`, `级别/高考四级`, `级别/考研`, `级别/六级`, `级别/雅思`, `级别/托福`, `级别/GRE`, 确定插件作用域, 标签意味着当前主要精力范围, 设置中没有勾选意味着不会被插件处理 - - 数字: `重复次数`, 连续正确回答的次数, 初始值为 0 - - 数字: `间隔`, 当前到下一次复习的间隔时间, 以天为单位, 初始值为 0 - - 数字: `易记因子`, 反映记忆的难易程度, 初始值为 2.5, 插件存储为整数 250 - - 日期: `到期日`, 下一次复习的时间 -- 设置 - - **插件设置**必须点击应用才能保存, 同时也会立即缓存路径中所有单词属性: 单词文件夹路径就是单词库的路径, 默认是仓库的根目录 "/" , 但并不会被运行; 索引文件夹路径就是生成索引的路径, 默认是仓库根目录下的文件夹 "索引", 如果不存在则会被创建, 详细过程参考生成索引; 而标签设置单词的作用域 - - ![p6](README/p6.png) -- 功能 - - 生成索引 - - 按级别生成单词库中所有单词的首字母索引文件, 在索引文件夹路径中会创建 9 个级别文件夹和 1 个总索引名文件, 其中级别文件夹又含有 26 个首字母索引文件和 1 个总索引文件, 所以一共 9×27+1=244 个文件. 无论单词有多少个, 总是固定生成这些文件. 通常单词库中增加, 减少, 重命名单词后需要重新生成索引 - - ![p3](README/p3.gif) - - 掌握列表 - - 掌握列表能够即时快速修改单词的 `掌握` 属性, 首先将自己无比熟悉的单词设置为掌握, 例如 hello, that, my 等, 防止它们出现在后续功能中 - - ![p2](README/p2.gif) - - 监听同步 - - 单词库是被监听的, 单词文件的属性修改会和插件缓存保持同步, 特别的索引中的复选框也会和单词文件的 `掌握` 属性同步. 手动修改和插件修改单词属性都会立即同步. 左下角状态栏实时统计当前单词属性的变化 `新词数 + 旧词数 = 作用域词数` - - ![p1](README/p1.gif) - - 背单词 - - 新词指重复次数为 0 的单词, 它可能是从未被学习过的, 也可能是前面学后面忘了的. 新词调度中 70% 纯随机, 30% 从易记因子和重复次数最低的 20% 中随机; 旧词指重复次数大于 0 的单词, 它是之前回答正确的. 旧词调度从已过期的单词中 70% 纯随机, 30% 从易记因子和重复次数最低的 20% 中随机. 应该尽可能的提高每个单词的重复次数和易记因子 - - ![p4](README/p4.gif) - - 默写单词 - - 从作用域中随机抽取单词进行拼写, 目前只是一个练习功能, 不会改变更改单词的属性, 按下 `Tab` 键显示答案 - - ![p8](README/p8.gif) - - 添加双链 - - 为当前活动页面笔记中的单词添加双链, 单词范围是作用域中易记因子小于等于 2.5 的, 所以默认属性都是添加的. 准确率在 90 %. 需要文章尽可能规范, 减少不必要的标点符号. 目前只能通过 `ctrl z` 回撤 - - ![p5](README/p5.gif) - - 重置单词属性 - - 重置作用域单词的重复次数, 间隔, 易记因子, 到期日为默认值, 重置读写会很慢 +# OpenWords +**OpenWords** 是一个用于背单词和单词管理的 Obsidian 插件, 安装后插件入口是左侧工具栏上的一个按钮再加上两个绑定命令, 主要功能有生成索引, 背单词, 默写单词, 添加双链等, 其中背单词的核心逻辑是 SuperMemo 2 间隔重复算法, 而单词文件使用 OpenText 中的单词库. 插件完全依赖单词文件及其属性, 没有表格, Json 等外部存储, 启动时会读取所有单词缓存, 更改时会即时写入相应的单词文件并更新缓存. 插件没有设计过多的搜索功能, 提倡使用 Obsidian 内置的搜索功能 + +![p7](README/p7.png) + +## 安装 + +目前插件已经提交社区审核, 还不能通过社区插件市场安装, 可能需要一段时间并且经过数次修改才能确定第一个稳定版本. 在此之前可以手动安装, 首先从本仓库 `Releases` 发布页面下载最新版本, 将 `main.js`, `manifest.json`, `styles.css` 三个文件放到新建的插件文件夹中 `{vault}/.obsidian/plugins/openwords`, 重启软件并在设置的第三方插件中启用插件. 如果您愿意协作开发, 也可以将此存储库克隆到本地开发文件夹, 安装依赖项`npm install`, 开始编译`npm run dev`, 修改 `main.ts` 即可生成 `main.js`, 然后手动安装即可测试 + +## 单词 + +单词的格式属性及组织形式以 OpenText 中的单词库为参考基准. 单词库是仓库中的一个文件夹, 其中按首字母分类储存所有单词文件, 并且仅存储单词文件, 单词即为文件名, 元数据使用文件 YAML 属性, 其中复选框和标签用于确定插件运行的作用域, 数字和日期是 SM 2 的计算参数. 所有单词指单词库路径中的所有文件, 作用域单词指目前主要集中精力学习的单词也是一些插件功能的作用范围. 单词索引是为了更快访问的一系列单词双链文件, 详见生成索引. 目前没有设计批量增加单词的功能, 需要手动仿照格式创建文件确定属性 +- 复选框: `掌握` , 确定插件作用域, 单词被掌握意味着不会被插件处理 +- 标签: `级别/小学`, `级别/中考`, `级别/高考四级`, `级别/考研`, `级别/六级`, `级别/雅思`, `级别/托福`, `级别/GRE`, 确定插件作用域, 标签意味着当前主要精力范围, 设置中没有勾选意味着不会被插件处理 +- 数字: `重复次数`, 连续正确回答的次数, 初始值为 0 +- 数字: `间隔`, 当前到下一次复习的间隔时间, 以天为单位, 初始值为 0 +- 数字: `易记因子`, 反映记忆的难易程度, 初始值为 2.5, 插件存储为整数 250 +- 日期: `到期日`, 下一次复习的时间 + +## 设置 + +设置必须点击应用才能保存, 同时也会立即缓存路径中所有单词属性. 单词文件夹路径就是单词库的路径, 默认是仓库的根目录 "/" , 但并不会被运行, OpenText 中是 `笔记/人文社科/英语/英语单词/words`; 索引文件夹路径就是生成索引的路径, 默认是仓库根目录下的文件夹 "索引", 如果不存在则会被创建, OpenText 中是 `笔记/人文社科/英语/英语单词/索引`; 而标签设置单词的作用域 + +![p6](README/p6.png) + +## 功能 + +### 生成索引 + +生成索引按级别生成单词库中所有单词的首字母索引文件, 在索引文件夹路径中会创建 9 个级别文件夹和 1 个总索引名文件, 其中级别文件夹又含有 26 个首字母索引文件和 1 个总索引文件, 所以一共 9×27+1=244 个文件. 无论单词有多少个, 总是固定生成这些文件. 索引中复选框和单词 `掌握` 属性同步. 通常单词库中增加, 删除, 重命名单词后需要重新生成索引 + +![p3](README/p3.gif) + +### 掌握列表 + +掌握列表能够即时快速修改单词的 `掌握` 属性, 首先将自己无比熟悉的单词设置为掌握, 例如 hello, that, my 等, 可以防止它们出现在后续功能中 + +![p2](README/p2.gif) + +### 监听同步 + +单词库是被监听的, 单词文件的属性修改会和插件缓存保持同步, 手动修改和插件修改都会立即同步. 左下角状态栏实时统计当前单词属性的变化 `新词数 + 旧词数 = 作用域词数`, 特别的索引中的复选框也会和单词文件的 `掌握` 属性同步 + +![p1](README/p1.gif) + +### 背单词 + +背单词目标是尽可能的提高每个单词的重复次数和易记因子, 详细计算过程可查阅 SM-2 文档. 新词指重复次数为 0 的单词, 它可能是从未被学习过的, 也可能是前面学后面忘了的. 新词调度中 70% 纯随机, 30% 从易记因子和重复次数最低的 20% 中随机; 旧词指重复次数大于 0 的单词, 它是之前回答正确的. 旧词调度从已过期的单词中 70% 纯随机, 30% 从易记因子和重复次数最低的 20% 中随机. 回答的 0-5 分已与数字键绑定方便键盘控制 + +![p4](README/p4.gif) + +### 默写单词 + +默写单词是从作用域中随机抽取单词进行拼写, 目前只是一个练习功能, 不会更改任何单词属性, 按下 `Tab` 键显示答案 + +![p8](README/p8.gif) + +### 添加双链 + +为当前活动页面笔记中的单词添加双链, 单词范围是作用域中易记因子小于等于 2.5 的, 所以默认情况所有单词都会添加. 词形还原准确率在 90 %. 需要文章尽可能规范, 减少不必要的标点符号. 目前只能通过 `ctrl z` 回撤, 请谨慎使用 + +![p5](README/p5.gif) + +### 重置单词属性 + +重置作用域单词的重复次数, 间隔, 易记因子, 到期日为默认值, 该功能运行较慢无法回撤, 请谨慎使用