Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

LexiNote

alucproalucpro54 downloads

Highlight difficult English words and learn vocabulary while writing.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates9

中文 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.

LexiNote Demo

Why LexiNote

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:

  • English learners who use Obsidian as a reading or writing workspace.
  • Writers who want vocabulary help without leaving the current note.
  • Learners who want CET4 / CET6 style difficulty hints and custom dictionaries.
  • Multilingual review workflows, such as English -> Chinese or English -> Japanese.

Features

  • Real-time highlighting for difficult English words in Markdown notes.
  • Background or underline highlighting, including straight and wavy underline styles.
  • Hover cards with local meanings and dictionary metadata.
  • A current-document word list that summarizes the difficult words in the active note.
  • One-click saving to a personal Vocabulary Library.
  • Vocabulary Library search, sorting, known-word markers, deletion, and export.
  • Built-in CET4 / CET6 dictionaries derived from ECDICT.
  • Multiple custom dictionary imports from JSON, CSV, and TXT files.
  • A dictionary table for enabling, disabling, reordering, editing, and deleting imported dictionaries.
  • Configurable user difficulty from 1 to 30, highlight color, and known-word hiding.
  • Vocabulary export as LexiNote JSON or Anki-compatible TSV.
  • English and Chinese UI text that follows the Obsidian app language.
  • Markdown-aware analysis that skips inline code, fenced code blocks, URLs, and wikilinks.

Requirements

  • Obsidian 1.8.7 or newer.

Install From Obsidian Community Plugins

  1. Open Obsidian.
  2. Go to Settings -> Community plugins.
  3. Turn off Restricted mode if Obsidian asks you to do so.
  4. Click Browse to open the Community plugins marketplace.
  5. Search for LexiNote.
  6. Click Install.
  7. After installation, click 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 document
  • LexiNote: Open current document word list
  • LexiNote: Open vocabulary library

Quick Start

  1. Open an English note in Obsidian.
  2. Write or paste a few English paragraphs.
  3. LexiNote highlights words that are above your configured difficulty.
  4. Hover a highlighted word to see its meaning.
  5. Click the LexiNote ribbon icon to review all difficult words found in the current note.
  6. Save useful words to My vocabulary, then mark familiar words as known when you no longer need them highlighted.

You can adjust LexiNote in Settings -> Community plugins -> LexiNote.

Custom Dictionary Import

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.

JSON

Use an array of objects with word and optional meaning fields:

[
  {
    "word": "meticulous",
    "meaning": "非常细致的;一丝不苟的"
  },
  {
    "word": "resilient",
    "meaning": "回復力のある;しなやかな"
  }
]

CSV

Use a header row with word,meaning:

word,meaning
nuance,细微差别
cohesive,まとまりのある;結束した
elaborate,详细说明;精心制作的

TXT

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.

Vocabulary Export

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.

Development

Requirements

  • Node.js 18 or newer
  • npm
  • Obsidian Desktop 1.8.7 or newer
  • A local Obsidian vault for testing

Commands

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

Install Into A Local Vault

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

Enable In Obsidian

  1. Open the test vault in Obsidian.
  2. Go to Settings -> Community plugins.
  3. Turn off Restricted mode if needed.
  4. Refresh the installed plugins list.
  5. Enable LexiNote.

After enabling, the left ribbon should show the LexiNote book icon.

Local Acceptance Path

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.
  • Inline code, fenced code, URLs, and wikilinks are excluded.
  • Hovering a highlighted word shows its meaning.
  • The LexiNote ribbon icon opens the current document word list.
  • The current document word list has a My vocabulary button for opening Vocabulary Library.

Test Fixtures

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:

AlucPro/obsidian-lexinote

TXT imports do not include local meanings, so they are useful for validating the no-local-meaning display.

Release

Example: release version 0.1.5 to GitHub.

gh release create 0.1.5 main.js manifest.json styles.css -t "0.1.5"

License

MIT

86%
HealthExcellent
ReviewSatisfactory
About
Highlight difficult English words in real time based on your level while you write, excluding inline/fenced code, URLs, and wikilinks. Hover highlighted words to see meanings, add entries to a personal vocabulary library, and browse the document word list; includes CET4/CET6 and supports custom dictionaries.
LanguagesAnnotationWriting
Details
Current version
0.2.1
Last updated
6 days ago
Created
Last month
Updates
9 releases
Downloads
54
Compatible with
Obsidian 1.8.7+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
alucproalucpro
github.com/AlucPro
GitHubalucpro
  1. Community
  2. Plugins
  3. Languages
  4. LexiNote

Related plugins

LanguageTool

Unofficial integration of the LanguageTool spell and grammar checker.

Japanese Novel Ruby

Treat ruby(Furigana) ​​marks commonly used in Japanese novels

Chinese Novel Assistant

A set of small features designed to make writing Chinese novels more convenient.

WordNet Dictionary

A large lexical database of English developed by Princeton University.

Longform

Helps you write and edit novels, screenplays, and other long projects.

Image Converter

Convert, compress, resize, annotate, markup, draw, crop, rotate, flip, align, drag-resize, rename with variables, and batch process images: WEBP, JPG, PNG, HEIC, TIF

Text Generator

Generate text content using GPT-3 (OpenAI).

Simplified Chinese Word Splitting

Adds Simplified Chinese word splitting support for the editor and Vim mode.

Smart Composer

AI chat with note context, smart writing assistance, and one-click edits for your vault.

LanguageTool Integration

advanced spell/grammar checks with the help of language-tool.