alucpro54 downloadsHighlight difficult English words and learn vocabulary while writing.
中文 README | 用户使用手册 | User Guide
Learn English vocabulary in the notes you already write.
LexiNote is an Obsidian plugin that highlights difficult English words while you read or write, shows quick meanings on hover, and lets you save useful words into a lightweight vocabulary library. It is designed to stay close to your writing flow: no separate study app, no context switch, just small vocabulary moments inside your vault.

If you write journals, reading notes, essays, or blog drafts in English, unfamiliar words often appear right where your ideas are forming. LexiNote helps you notice those words, understand them quickly, and keep the useful ones for later review.
It works especially well for:
JSON, CSV, and TXT files.1 to 30, highlight color, and known-word hiding.1.8.7 or newer.Settings -> Community plugins.Restricted mode if Obsidian asks you to do so.Browse to open the Community plugins marketplace.LexiNote.Install.Enable.After enabling LexiNote, a book icon appears in the left ribbon. Click it to open the current document word list. You can also run these commands from the command palette:
LexiNote: Reanalyze active documentLexiNote: Open current document word listLexiNote: Open vocabulary libraryMy vocabulary, then mark familiar words as known when you no longer need them highlighted.You can adjust LexiNote in Settings -> Community plugins -> LexiNote.
LexiNote can import multiple custom dictionaries from JSON, CSV, and TXT files. Imported entries are stored locally in your Obsidian plugin data. The import UI asks for a dictionary name and difficulty, and every imported word inherits those values.
Custom dictionaries are language-flexible. LexiNote only needs the source word to be English, while meaning can be Chinese, Japanese, Korean, French, or any other target language you want to review. For example, the same English word can be imported as English -> Chinese or English -> Japanese by changing only the meaning text.
Imported dictionaries appear in the dictionary table together with the built-in CET4 / CET6 dictionaries. Built-in dictionaries are read-only. Imported dictionaries can be enabled or disabled, reordered, renamed, assigned a new difficulty, or deleted.
Dictionary names must be unique. If the same word appears in multiple enabled dictionaries, LexiNote keeps all matching entries and shows them in dictionary order. A word is highlighted when any matching entry has a difficulty higher than your user difficulty.
Use an array of objects with word and optional meaning fields:
[
{
"word": "meticulous",
"meaning": "非常细致的;一丝不苟的"
},
{
"word": "resilient",
"meaning": "回復力のある;しなやかな"
}
]
Use a header row with word,meaning:
word,meaning
nuance,细微差别
cohesive,まとまりのある;結束した
elaborate,详细说明;精心制作的
Use one English word per line:
meticulous
resilient
scrutiny
TXT imports do not include local meanings, so hover cards and lists show No local meaning. in English UI or 暂无本地释义 in Chinese UI.
Open My vocabulary and use:
Export JSON to export a LexiNote JSON dictionary. This file can be imported again through the custom dictionary importer.Export Anki TSV to export a simple UTF-8 tab-separated file with two columns: word and meaning.The Anki TSV export is intentionally minimal. It does not generate .apkg files, card templates, pronunciation, tags, or AnkiConnect sync.
Install dependencies:
npm install
Run unit tests:
npm test
Run type checking:
npm run typecheck
Build the plugin:
npm run build
Development build:
npm run dev
Replace /path/to/TestVault with your local Obsidian vault path:
mkdir -p "/path/to/TestVault/.obsidian/plugins/lexinote"
cp manifest.json main.js styles.css "/path/to/TestVault/.obsidian/plugins/lexinote/"
The plugin directory should contain:
/path/to/TestVault/.obsidian/plugins/lexinote/
manifest.json
main.js
styles.css
Settings -> Community plugins.Restricted mode if needed.LexiNote.After enabling, the left ribbon should show the LexiNote book icon.
Use this quick note to verify the happy route:
Today I encountered a peculiar problem.
This robust tool provides a comprehensive workflow.
`peculiar should not be highlighted inside inline code`
```text
robust should not be highlighted inside fenced code
```
Visit https://example.com/peculiar and check [[robust link target]].
Expected behavior:
peculiar, robust, and comprehensive are highlighted in normal prose.My vocabulary button for opening Vocabulary Library.Sample files for local custom dictionary import testing are available in:
tests/fixtures/imports/custom-academic.json
tests/fixtures/imports/custom-writing.csv
tests/fixtures/imports/custom-txt-words.txt
tests/test-dictionary/v2-test-novel.md
tests/test-dictionary/v2-academic.json
tests/test-dictionary/v2-sensory.csv
tests/test-dictionary/v2-plain.txt
You can also view and use the test dictionary files directly on GitHub:
TXT imports do not include local meanings, so they are useful for validating the no-local-meaning display.
Example: release version 0.1.5 to GitHub.
gh release create 0.1.5 main.js manifest.json styles.css -t "0.1.5"
MIT