Releases: linyp/obsidian-interlinear
0.2.4
Interlinear 0.2.4
Maintenance release addressing the Obsidian community-plugin review. No user-facing changes.
Internal
authorUrlnow points to the author profile- Build: use Node's built-in
node:moduleinstead of thebuiltin-modulespackage - Rate limiter:
window.setTimeout+ a typed results array (lint) - Dashed translation style uses
text-decorationlonghand for broader Obsidian/Electron support - Release assets now ship with GitHub build-provenance attestations (verify with
gh attestation verify main.js --repo linyp/obsidian-interlinear)
Install
Manual: download main.js, manifest.json, and styles.css below into <vault>/.obsidian/plugins/interlinear/, then enable in Community plugins. Or via BRAT: add linyp/obsidian-interlinear.
0.2.3
Interlinear 0.2.3
Added
- Auto-recover after fixing the translation config. If a wrong key/endpoint made blocks fail (e.g. a config synced in from another device), changing the provider config — in settings or via Obsidian Sync — now clears the stale per-note failures and lets the active note re-attempt them, instead of staying stuck. Opening or switching a note still never translates on its own.
Changed
- Clearer floating buttons. The primary translate button now uses an accent fill so it stands out from the smaller, neutral display-mode toggle (they previously looked like twin circles on mobile).
Install
Manual: download main.js, manifest.json, and styles.css below into <vault>/.obsidian/plugins/interlinear/, then enable in Community plugins. Or via BRAT: add linyp/obsidian-interlinear.
0.2.2
Interlinear 0.2.2
Added
- Service presets now also tune rate/batch settings, not just the endpoint. Picking DeepSeek / OpenAI / SiliconFlow / Ollama fills the Advanced concurrency, request spacing, retries, and batch sizes with values matched to how that service rate-limits (connection-capped vs RPM/TPM vs local compute). Custom leaves Advanced untouched.
Fixed
- Re-triggering now retries failed batches. After a partial failure, triggering translation again retries the blocks that failed last time (it previously only toggled translation ↔ original), matching the in-app guidance.
- No more flicker when peeking at the original. In translation-only mode, hovering a translation to reveal its source no longer causes a flicker/jitter loop on desktop.
Install
Manual: download main.js, manifest.json, and styles.css below into <vault>/.obsidian/plugins/interlinear/, then enable in Community plugins. Or via BRAT: add linyp/obsidian-interlinear.
0.2.1
Changed
- Floating button now defaults to "Mobile only". Desktop keeps the status-bar buttons as the primary entry point; set Floating button to Always in settings if you want the in-view button on desktop too. (On mobile the floating button remains the main entry point — there is no status bar there.)
🤖 Generated with Claude Code
0.2.0
New
- Floating button (FAB) in the reading view — translation entry point on mobile (which has no status bar); configurable: always / mobile only / never.
- Persistent translation cache: translations survive restarts (
cache.jsonin the plugin folder, LRU-capped). Only content hashes + translations are stored — never your source text. Size readout + one-click clear in settings. - Live batch progress ("Translating 3/12…") in the status bar and FAB.
- Five translation styles: border / quote / muted / dashed underline / learning mask (blur until hover).
- Peek at the original in translation-only mode: hover a translation (desktop) or tap it (mobile).
- Service presets (DeepSeek / OpenAI / SiliconFlow / Ollama / custom) and a Test connection button.
Changed
- No default hotkey anymore (community guideline) — bind your own under Settings → Hotkeys.
- Settings tab regrouped into Translation service / Display / Advanced.
- README now includes a network / account / privacy disclosure.
🤖 Generated with Claude Code
0.1.2
Two reliability/quality settings.
- Max segments per request (default 12): caps how many blocks pack into one request, on top of the char budget. A doc of many short blocks (lists, dialogue) no longer crams dozens of segments into one call, which kept the
<<<SEG k>>>alignment reliable and avoided the slow per-segment fallback. - Custom instructions (optional): free-text appended to the translation system prompt — a glossary, tone, or domain hint. It's appended after the segment contract, so it can't break alignment.
Install: download main.js, manifest.json, and styles.css below into <your-vault>/.obsidian/plugins/interlinear/, then enable (or update via BRAT).
0.1.1
English UI.
All user-facing strings (settings, status-bar buttons, runtime notices) are now in English instead of the previous English-title / Chinese-body mix, so the plugin reads consistently regardless of your Obsidian language. No behavior change.
Manual install: download main.js, manifest.json, and styles.css below into <your-vault>/.obsidian/plugins/interlinear/, then enable the plugin (or update via BRAT).
0.1.0
First public release.
Reading-mode interlinear translation for Obsidian: open a foreign-language note in reading view, click one button, and Interlinear renders the translation alongside the original — bilingual or translation-only. Never modifies your notes; never auto-translates. BYOK (DeepSeek).
Manual install: download main.js, manifest.json, and styles.css below into <your-vault>/.obsidian/plugins/interlinear/, then enable the plugin.