Bryn229 downloadsHighlight words/phrases in notes & PDFs, with learning tracker.
简体中文 | English
📦 Plugin ID:
simple-wordbook💡 Inspiration: obsidian-language-learner and HiWords
Simple Wordbook is a word/phrase highlighting and learning management plugin designed for Obsidian.
It automatically highlights words from your custom wordbooks in notes and provides a complete learning toolkit including sidebar, lookup panel, mastery tracking, AI-assisted queries, and more.
.json format wordbook files, with free addition, removal, and enable/disable functionality.Automatically highlight words from wordbooks in Reading Mode, Editing Mode, and PDFs.
Alias matching support to automatically highlight different forms of the same word.
Highly customizable highlight styles:
Path range filtering to only highlight specified folders or files (include/exclude mode).
.md file..md file includes:---){word} placeholder).{{word}}, {{type}}, {{accent}} placeholders).The plugin registers the following commands (customizable in Obsidian Settings → Keyboard Shortcuts):
表格
| Command Name | Description |
|---|---|
Open Sidebar |
Activate sidebar view |
Open Lookup Panel |
Open lookup panel and focus input box |
Add Word |
Open add word modal |
Refresh Wordbooks |
Reload all wordbook files and refresh highlights |
Open Settings |
Navigate to plugin settings page |
Dynamically Generated Commands:
In AI Configuration → Custom Prompts, each added custom prompt automatically generates an independent command:
表格
| Command Format | Description |
|---|---|
Lookup Prompt: {Prompt Name} |
Execute this command after selecting a word to perform AI query with the corresponding custom prompt |
These commands are automatically registered and users can bind independent hotkeys (e.g., Ctrl+Shift+1, Ctrl+Shift+2) in Obsidian Settings → Keyboard Shortcuts for one-click lookup with specific prompts.
Editor Right-Click Menu:
Override default plugin styles with CSS snippets. The following example makes highlighted word backgrounds in sidebar cards follow card color with 10% opacity (built-in to the plugin, see styles.css):
css
.word-card .simple-wordbook-highlight,
.word-card-content .simple-wordbook-highlight,
.lookup-result .word-card .simple-wordbook-highlight {
background-color: color-mix(in srgb, var(--card-color) 10%, transparent);
text-decoration: none;
border-radius: 6px;
padding: 0 2px;
}
Refer to the namespace in the plugin's styles.css for more customization options.

Simple Wordbook in the search bar.main.js, manifest.json, styles.css..obsidian/plugins/simple-wordbook/ directory.https://github.com/Bin-T/obsidian-simple-wordbook..json file in your vault, or import a .json wordbook file with the following format (JSON array where each word object requires a word field, with optional aliases, definition, phonetic, color, etc.):json
[
{
"word": "abandon",
"aliases": ["abandoned", "abandoning"],
"phonetic": "UK /əˈbændən/ US /əˈbændən/",
"definition": "**Definition**\n to leave a place, thing, or person forever; to give up doing something\n\n **Example**\nHe abandoned his car in the snow.",
"color": "red"
}
]
.json file.In Settings → General Settings → Lookup Panel → Enter Mode, choose:
In Settings → General Settings → Lookup Panel → Local Query Mode, choose:
Modify the setting in Settings → General Settings → Lookup Panel → Maximum Results to set the maximum number of results (1-100) returned by local queries.
.md file.Adjust settings in Settings → General Settings → Highlighting & Preview:
表格
| Configuration | Description |
|---|---|
| Wordbook Files | List of added wordbooks, with enable/disable/delete/drag-sort options |
| Read-only Mode | Prevents editing or deleting words in the wordbook when enabled |
| Mastery/Ignore Mode | Global Unified or Per Wordbook Independent management |
表格
| Configuration | Description |
|---|---|
| Highlighting & Preview | Highlight color, style, hover preview, blurred definitions |
| Highlight Range | Only include/exclude files in specified paths |
| Pronunciation Settings | TTS URL template, pronunciation preference (American/British) |
| Lookup Panel Enter Mode | Local Only / AI Only / Local Priority |
| Lookup Panel Local Mode | Smart / Exact / Prefix / Contains / Fuzzy |
| Lookup Panel Maximum Results | Maximum number of cards returned by local queries (1-100) |
表格
| Configuration | Description |
|---|---|
| Service Provider | OpenAI, DeepSeek, Zhipu GLM, Tongyi Qianwen, Ollama, Custom |
| API Endpoint/Key/Model | Auto-filled based on provider, can be manually modified |
| API Key Storage Mode | Official Keychain / Local Encrypted (vault-derived key) |
| Default Prompt | Use {word} as placeholder |
| Custom Prompts | Add multiple prompt sets, switchable in lookup panel |
| Test Connection | Verify if current configuration is valid |
表格
| File | Path | Description |
|---|---|---|
| Wordbook Files | User-specified | .json format, can be placed anywhere in the vault |
| Mastery Status File | .obsidian/plugins/simple-wordbook/_wordbook_mastery.json |
Stores mastered words, customizable path (default in plugin folder) |
| Ignore Status File | .obsidian/plugins/simple-wordbook/_wordbook_ignored.json |
Stores ignored words, customizable path (default in plugin folder) |
| Settings File | .obsidian/plugins/simple-wordbook/data.json |
Plugin configuration, fixed in plugin folder by default |
Q: Highlights not working?
A: Check if "Enable Automatic Highlighting" is enabled in settings; verify wordbook files are enabled; confirm the current file is within the "Highlight Range".
Q: Empty sidebar?
A: Ensure the current document contains words from enabled wordbooks that are not marked as "Ignored". If "Sidebar Range Filtering" is enabled, confirm the current file is in scope.
Q: AI query failed?
A: Check if API endpoint, key, and model name are correct, and network is stable. Use the "Test Connection" function in settings to verify.
Q: How to highlight in PDFs?
A: PDF highlighting is supported by default. Ensure automatic highlighting is enabled and wait for PDF rendering completion.
Q: Lost mastery status?
A: Check if the "Mastery Status File" path is correct and writable. The plugin automatically migrates data when switching mastery modes (Global/Per Wordbook).
Q: How are tabs in hover previews/word cards split and named?
A:
--- (three consecutive hyphens) as a separator to split definition text into multiple sections, each becoming an independent tab.**bold text**) of each section and extracts it as the tab display name.Example: Writing the following in the definition box of the "Edit Word/Phrase" modal generates 3 tabs:
text
**Definition**
to leave a place, thing, or person forever; to give up doing something
---
**Common Examples**
He abandoned his car in the snow.
He abandoned his car in the snow.
---
**Related Phrases**
abandon hope give up hope
If a section does not start with **Title**, the plugin automatically assigns default names:
DefinitionContent 2 , Content 3 , etc.Q: How to quickly bind shortcuts for custom prompts?
A: In the AI Configuration → Custom Prompts section, click the "Set Shortcut" button to automatically navigate to Obsidian's shortcut settings page, filtered to show only this plugin's commands. Bind independent hotkeys to each "Lookup Prompt: xxx" command for one-click lookup.
This plugin is written with AI assistance, and all core functions have been carefully tested and verified by the developer to ensure code quality, security, and stability.
If you encounter any issues during use, please submit an Issue in the GitHub repository.
This project is open source under the MIT License. You can find the LICENSE file in the root directory of the repository.