ptwm77 downloadsAdds persistent color-coded reading markers inside Markdown notes.
Reading Markers adds persistent, color-coded reading positions to Markdown notes and PDF pages. Save several places in one document, scan them near the top of the document, and jump back without searching through the document.

Reading Markers is currently desktop-only and requires Obsidian 1.13.7 or later.
The marker appears below the note title. Click it to return to the saved position.
Right-click a marker in the marker bar. Select another color, or select Delete reading marker to remove it.
The marker bar appears above the PDF pages and shows entries such as Page 8. Click an entry to return to that page. PDF markers are saved in the plugin data, so the original PDF is not changed.
In Markdown editing view, Markdown Reading view, and PDF view, the right-side vertical control contains three buttons. In editing view, the editor cursor is used as the current position; in Reading view, the position is estimated from the reading scroll; in PDF view, the current page is used. The up arrow jumps to the nearest marker above the current position, and the down arrow jumps to the nearest marker below it. Before either jump, the plugin asks whether to save the current position for return. Saving creates a temporary session-only return point and replaces the previous temporary point; choosing not to save keeps the previous temporary point. The middle button returns to the temporary point first, then falls back to the session center marker. When neither exists, it asks you to add a permanent reading marker. Permanent markers remain independently manageable and are not deleted by this temporary behavior.
The panel automatically collapses after four seconds without pointer or keyboard activity. Use the small grip to drag it vertically or horizontally. Moving it near the left or right edge snaps it to that side and collapses it; click the edge handle to expand it again. Its position is retained locally in the current Obsidian installation.
The PDF phase uses page-level positions. The same PDF page cannot have two separate markers, and text selection, text excerpts, and PDF annotation are not part of this phase. Scanned image PDFs can still use page markers; when no text layer is detected, the plugin explains that text-level locations are unavailable.
Interface text automatically follows Obsidian in English or Chinese. Other languages use English.
Saved settings are validated when the plugin starts. Missing or malformed values fall back to safe defaults.
For Markdown notes, the plugin appends an Obsidian block ID to the marked Markdown block:
This paragraph has a blue reading marker. ^study-marker-blue-a1b2c3d4
The block ID keeps the marker attached to the content instead of a line number. Removing a marker removes only the plugin-owned block ID and preserves the original text.
Reading Markers intentionally rejects YAML properties, fenced code blocks, tables, blockquotes, Callouts, HTML blocks, blank lines, and blocks that already have another block ID. It displays a notice instead of guessing where to write.
Block IDs are an Obsidian Markdown extension and may appear as plain text in other Markdown applications.
For PDFs, the plugin stores a record containing the Vault-relative file path, page number, color, and plugin-owned marker ID in its local plugin data. It does not write annotations into the PDF.
Reading Markers works locally and only reads or updates Markdown notes and plugin data inside the active Vault. PDF markers do not modify PDF files. It does not use network services, telemetry, ads, accounts, payments, or files outside the Vault.
After the plugin is available in the Community directory, install it from Settings -> Community plugins.
For a manual installation, download main.js, manifest.json, and styles.css from the same GitHub Release. Place them in:
<your-vault>/.obsidian/plugins/reading-markers/
Restart Obsidian, then enable Reading Markers under Community plugins.
npm ci
npm run check
npm run release:check
npm run release:prepare
npm run release:prepare creates a local release directory containing the three files Obsidian installs.
Report reproducible problems in GitHub Issues. See CONTRIBUTING.md for the expected diagnostic details and local verification Gate.
Reading Markers is available under the 0BSD license.