MDX Vocab Lookup

by Adrian
5
4
3
2
1
Score: 50/100

Description

Obsidian 点查生词插件

Reviews

No reviews yet.

Stats

1
stars
18
downloads
0
forks
3
days
2
days
2
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
13
commits

Latest Version

README file from

Github

English | 中文

Reading this in English? See README.en.md for the full English documentation.

MDX 点查生词本

在 Obsidian 里读书时,点一下生词就能查本地 MDX 词典的释义,自动记下例句、书名、作者和时间;读完一本书,直接导出一份排版精美的 HTML / PDF 生词本,或者按天挑出当天查的词单独导出复习。全程离线运行,不发送任何网络请求。

如果你习惯在 Kindle 上"点词即查、读完导出生词本"这套流程,这个插件把同样的体验搬进了 Obsidian:你的书或文章本来就是 Markdown 笔记,查词、记录语境、复习导出都不用离开 Obsidian。


主要特性

  • 三种触发方式:双击查词(默认,不影响正常编辑点光标)、单击查词(最接近 Kindle 的体验)、划词查词(拖动选中一段文字自动查询),设置里随时切换。
  • 多词典同时查:可以添加多本 .mdx 词典,查一个词会同时显示所有已启用词典的释义,还能调整词典的显示顺序。
  • 忠实还原词典排版:自动加载词条引用的 CSS(不管是打包在同名 .mdd 文件里,还是就以普通文件形式和 .mdx 放在一起),弹窗里看到的排版和 MDict 里一致——加粗、颜色、音标、词性一个不少。释义可以正常选中、复制,不会意外跳转到别的地方。
  • 智能词形还原:查不到时自动尝试还原原形,例如 observed → observe、explosives → explosive;实在查不到会给出编辑距离最近的候选词条,也可以手动输入词典里的正确词条。
  • 自动记录语境:单词所在的完整句子(不管笔记是硬换行还是整段一行都能正确提取)、书名与作者(读 frontmatter,也可以自定义字段名)、查词时间,一次点击全部自动记好。
  • 记录可以二次修正:查到的词形不对(比如查到了 opposed,其实想学的是 oppose)?双击生词本表格里的单词原地编辑,改完自动用新词重新查一遍、替换释义。
  • 导出前可以挑着选:内置的生词本表格支持勾选——"全选""选中今天""清空选择",只导出勾中的几条;一条都不选就导出全部,正好对应"每天查了 20 个词只导出当天这批"的复习习惯。
  • 导出 HTML / PDF:两种格式都是逐词排版(标题 + 例句 + 书名作者时间 + 完整释义),释义保留词典原生格式。PDF 由 Obsidian 内置的 Electron 直接生成,不用再手动打印另存。
  • 可选同步到 Note:开启后按书名一本书一个 Note,自动追加单词、例句、时间(不含释义,避免又长又乱的排版塞进 Markdown),方便在 vault 里直接翻看某本书查过哪些词。
  • 完全离线:不联网,不上传笔记内容,也不上传词典数据。

导出效果预览

导出的 HTML 是逐词排版,释义保留词典原生格式(颜色、加粗、音标一个不少)。下面是同一个词条(oppose)在四种配色下的样子,设置里「导出配色」可以切换:

暖色经典(默认) 钢蓝技术风
暖色经典 钢蓝技术风
国际双语风 简约咨询风
国际双语风 简约咨询风

安装方法

从 Obsidian 社区插件安装

  1. 打开 设置 → 第三方插件 → 浏览,搜索「MDX Vocab Lookup」。
  2. 点击安装,然后启用。

用 BRAT 提前体验 / 手动安装

  1. 安装 BRAT 插件,添加本仓库地址即可跟随最新 Release 更新。
  2. 或者手动安装:从 Releases 下载最新版本的 main.js、manifest.json、styles.css,放进 vault 的 .obsidian/plugins/mdx-vocab-lookup/ 文件夹,重启 Obsidian 并在「第三方插件」里启用。

本插件是仅支持桌面端的插件(需要读写本地 .mdx 文件),不能在手机/平板上使用。


使用说明

一、添加词典

  1. 打开插件设置,「词典」区域点击「+ 添加词典…」。
  2. 在弹出的系统文件选择框里选中一本或多本 .mdx 文件(支持多选)。
  3. 词典默认按文件名命名,可以点铅笔图标重命名,用上下箭头调整多本词典的查询/显示顺序。

如果词典的样式、发音资源打包在同名的 .mdd 文件里,或者就以普通 .css/.js 文件形式和 .mdx 放在同一目录,插件都会自动找到并加载对应的 CSS,还原词典原生排版。

二、查词

  1. 在设置里选好触发方式:双击 / 单击 / 划词。
  2. 正常阅读笔记,按选好的方式触发查词,弹窗会显示所有已启用词典的释义。
  3. 查到的词会自动记进生词本;如果没查到,弹窗会给出编辑距离最近的候选词条,也可以手动输入词典里的词条查询。
  4. 查错了想撤销?弹窗底部有「撤销」链接,撤掉的是最近这一条记录。

三、管理与导出生词本

  1. 插件设置最下面「生词本」区域是一个记录表格:序号、单词、例句、书名、时间。
  2. 修正词形:双击"单词"格子进入编辑状态,改完按回车或点别处,会自动用新词重新查一遍并替换释义。
  3. 勾选导出:表格最左边是勾选框,配合表格上方工具栏的「全选」「选中今天」「清空选择」——勾中的记录点击「导出」时只会导出这几条;不勾则导出全部。「导出」「清空生词本」两个按钮在同一行工具栏的最右边。
  4. 「导出格式」可以选 HTML 或 PDF,点「导出」会弹出保存对话框,默认定位到设置里配置的文件夹,也可以现场改存到别处。

四、同步到 Note(可选)

在设置里开启「查到的词记录到 Note 里」,选好存放文件夹(点「浏览…」可以直接从 vault 内选择),之后每次查到的词会按书名追加写入对应的 Note,方便在 vault 里直接浏览某本书查过的所有生词。


兼容性说明

项目 说明
Obsidian 版本 建议 1.4.0 及以上
平台 仅桌面端(Windows / macOS / Linux),不支持移动端
网络 不需要,全程离线
词典格式 未加密的 .mdx(MDict 格式),配套 .mdd 可选

更新日志

0.1.8

  • 导出格式改为 HTML / PDF 两种,PDF 由 Obsidian 内置的 Electron(printToPDF)直接生成,不用再手动"打印另存";彻底移除了 Word 导出和 docx 依赖,main.js 体积从约 434KB 降到约 76KB。
  • 新增第四套导出配色"简约咨询风"(纯白底,墨绿青色点缀),现在一共四套配色,HTML 和 PDF 导出都能选。
  • README 导出效果预览截图全部重新高清截图,改成两张一排、两排四张的排版。
  • 生词本表格的「导出」「清空生词本」按钮移到和「全选」「选中今天」「清空选择」同一行工具栏,靠右对齐。
  • 修复表格往上滚动时,左侧勾选框从表头下方透出来的重叠问题(表格改用 border-collapse: separate)。
  • 去掉了"修复旧记录的释义排版"这个设置项(已没有用处)。

0.1.7

  • HTML 导出新增两套配色可选(设置里「HTML 导出配色」):钢蓝技术风、国际双语风,灵感来自作者另一个开源项目 md2pdf 的配色方案。原来的默认样式改名叫"暖色经典"。
  • README 加了导出效果的实际截图对比。

0.1.6

  • 导出(Word / HTML)时,每条记录的释义现在会按当前词典设置过滤和排序:已停用的词典不再导出它那段释义,词典顺序调整后导出也会跟着换顺序。记录本身存的历史快照不受影响,只影响这一次导出的结果;如果想连记录本身也刷新成当前词典的释义,还是用双击单词原地编辑重新查一遍。

0.1.5

  • 终于找到"动态创建 script 元素"这条报错的真正来源:根本不是这个插件自己的代码,而是依赖库 docx 编译产物里自带的一段死代码(一个很老的 IE 时代兼容技巧,用 createElement("script") 来调度任务)。这段代码在 Electron 里永远走不到(MutationObserver/MessageChannel 检测总是优先命中),所以用 patch-package 在安装依赖时自动打补丁,把它从 docx 的打包文件里去掉。

0.1.4

  • 0.1.3 那次用字符串拼接规避扫描的做法,大概率反而更像是在故意躲避检测,所以还是被标记了。这次换成老老实实用 DOM 解析——用 querySelectorAll("script") 按元素删除,不用任何匹配标签名的字符串规则。

0.1.3

  • 改写了清除词典 HTML 里脚本标签的那条正则表达式的写法,避免完整的标签名字面量出现在源码或打包产物里——审核的"代码混淆"扫描不看上下文,只要出现这个子串就会报,而这里实际是在清除这类标签,不是在生成。

0.1.2

  • 弹窗查词里动态创建 <style> 元素的地方,改用 CSSStyleSheet/adoptedStyleSheets(还是要动态应用每本词典自己的 CSS,但不再创建 style 元素)。
  • 回退了一处用了比声明的 minAppVersion 更新的按钮 API。

0.1.1

  • 修复了社区插件审核指出的若干问题(不安全的 DOM API、动态创建的样式/脚本元素、过时的 API 用法),不影响使用行为。

0.1.0

  • 首次发布。
  • 三种查词触发方式:双击 / 单击 / 划词。
  • 多词典同时查询,支持排序与逐本启用/停用。
  • 自动加载并还原词典原生 CSS 排版。
  • 词形还原 + 编辑距离候选兜底。
  • 自动记录例句(智能提取完整句子)、书名/作者、查词时间。
  • 生词本记录支持勾选导出、双击原地编辑并重新查词。
  • 导出 Word / HTML(逐词排版,完整释义),支持导出目的地选择。
  • 可选同步查词记录到 Note。

许可证与致谢

本插件以 MIT 协议发布。

MDX 词典解析基于 js-mdict(锁定在 v6.0.8——该项目 v7 起改为 AGPL-3.0,v6.0.8 是转许可前最后一个 MIT 版本)。感谢该项目作者。

支持作者

如果这个插件帮到了你,欢迎请作者喝杯咖啡:

问题反馈

使用中遇到问题,欢迎到 GitHub 仓库 提交 issue。反馈时请附上:

  • Obsidian 版本(设置 → 关于)
  • 使用的词典名称
  • 完整的错误信息(如果有弹窗报错,请复制全文)