heptazero2k downloadsTurn note titles in a folder into your word bank: in-text highlighting, hover definitions, FSRS spaced-repetition review, auto-collected occurrences, and a review heatmap.
Lexis is a local-first personal lexicon for Obsidian. Your notes are the database: no account, hosted service, or proprietary store is required.
lexis-inline: true, then write Name / Alias:: annotation. Spaces around / are optional, the delimiter is configurable, and \/ writes a literal slash. This is useful for recurring characters, places, objects, and factions in a novel without creating hundreds of tiny files.---
lexis-inline: true
---
## Characters
Yalda / Yal {captain}:: A painter who appears under several names.
Otto:: Keeps the notebook everyone else forgets.
Entry colors make people or concepts easier to recognize without tying meaning to a raw color. Under Inline entries → Entry colors, one row may contain aliases such as captain / commander / ENTJ; spaces around / are optional and every name resolves to the same color. Use the preferred name at the end of an inline entry, such as {captain}. Typing { or placing the cursor inside {} opens fuzzy suggestions from existing entry colors; names used in notes but missing from the rules are listed at the top of the Entry colors settings. A one-file entry uses lexis-color: captain in frontmatter. You may also write a hex color directly, such as {#8b5cf6} or lexis-color: "#8b5cf6". Entry colors override category, tag, dictionary, and global colors.
Inline entries can be grouped by file or heading. Heading groups may follow the nearest heading or a fixed level from H1 to H6. With H2 selected, nested headings such as H3 and H4 inherit their nearest H2 group, which is useful for global categories such as characters and settings. In an inline note, typing the configured heading marker and a space opens fuzzy suggestions collected from headings at that level across all inline notes.
Lexis highlights known entries and shows their notes on hover in:
Selected text can be added to a dictionary, saved as an occurrence, or attached as an alias. Obsidian remains the source of truth; the browser and Zotero companions communicate with it over an authenticated loopback-only bridge.
Each Obsidian dictionary has its own highlight switch. Lexis Web keeps a separate visibility profile for each website: open the extension popup to show or hide dictionaries on the current site. Browser choices do not overwrite Obsidian settings, and the current page updates immediately.
Install Lexis from Settings → Community plugins → Browse. For manual installation, download main.js, manifest.json, and styles.css from the latest Obsidian release into <vault>/.obsidian/plugins/lexis/.
chrome://extensions, enable Developer mode, and choose Load unpacked.Chrome does not auto-update unpacked extensions. Replace the extracted folder with a newer browser release when needed.
lexis-zotero-0.2.2.xpi).After the first manual installation, Zotero can update the add-on from its update feed.
The interface language can be switched between Chinese and English in Lexis settings. Translations are kept together by message key in src/i18n.ts, so adding another language does not require searching through the UI code.
Dictionary notes and FSRS fields stay in vault Markdown files. Lexis settings and review history stay in Obsidian's fixed .obsidian/plugins/lexis/data.json. Encounter history defaults to .obsidian/plugins/lexis/encounters/; Settings → Lexis → Data storage → Encounter data folder accepts a dedicated vault-relative folder path. Editing does nothing until the check button is pressed; the undo button discards the draft. The switch copies only the active encounter baseline and per-device, per-day .jsonl files, leaving old copies for manual cleanup. It does not move data.json or dictionary notes. Browser settings and its temporary dictionary cache live in the browser's extension storage.
Use a lexis code block to render memory, relationship, and occurrence data inside an entry note:
curve — retention curverel [type] — typed bidirectional relationsocc — unsaved occurrencesderived — root-derived entriesRelation types come from heading text rather than a fixed list. Any Markdown heading level (# through ######) works. For example:
### Antonyms
```rel Antonyms
```
[[cold]]
This is shorthand for rel Antonyms inside a lexis block. The block adds missing reverse links without repeating links already written in the note.
Use lexis-home for a compact home summary, or lexis-heatmap for the heatmap alone.
Daily goals are configured in Settings → Lexis → Review → Review goals. Today's target is fixed when the dashboard first opens; changes apply tomorrow. Each cloze counts separately, regardless of whether answers are shown individually or together. Only remembered cards count as completed, once per day, across review entry points.
Create saved plans on Lexis Home. A lexis-home block can show one plan by name:
```lexis-home
plan: Mathematics
```
Without plan:, the block shows the combined plans, or the dictionary when no plans are saved. Goals, plans, and daily target snapshots are stored in the existing Lexis settings file; no extra data folder is created.
Lexis starts from one claim: vocabulary is infrastructure, not a study subject. Every field brings its own terms, and the half-known ones are exactly those your eyes learn to skip.
Lexis does not promise faster reading or learning without effort.
S grows, a highlight fades toward a configurable floor: final opacity = base opacity × [1 - S/(S+20) × (1-fade floor)]. A support should recede when the skill is internalized.lexis-* frontmatter fields.See the full Lexis Privacy Policy.
The repository contains all three clients:
src/, bundled to main.jspkg/browser-extension/pkg/zotero-extension/The Obsidian source is TypeScript. Run npm install once, then use npm run typecheck, npm run build, or npm run dev. Releases still contain the mobile-compatible main.js, manifest.json, and styles.css only.
Issues and contributions are welcome in the GitHub repository.