SeraphinaGlacia125 downloadsRead and edit long notes one section at a time, without splitting files.
简体中文 · Installation · Get started
Read and edit long notes one section at a time, without splitting files.
Section Reader adds section focus to Obsidian's native Markdown view: content separated by root-level --- lines is shown one section at a time, while the complete note remains in its original file. After enabling native mode switching in settings, you can switch between Reading view and Editing view, including Live Preview and Source mode, while keeping focus. Native links, embeds, task interactions, and reading progress remain available.
Requires Obsidian 1.8.7 or later, for desktop and mobile.

Press Ctrl + Alt + U → switch to reading one section at a time → use → / ← to move forward and back. The key labels show the keys actually pressed during the recording. This recording shows the reading workflow in 0.2.x; 0.3.0 also supports focused editing.
[!NOTE] Ctrl + Alt + U is a custom shortcut configured only for this demo. Section Reader does not assign a toggle hotkey by default; you can set one under “Settings → Hotkeys”.
Original note: Multiple sections appear continuously in the normal Reading view.

Section Reader: One section is shown at a time, with the Outline still available on the right.

First, choose one way to obtain the installation files:
main.js, manifest.json, and styles.css from the same Section Reader version.pnpm install --frozen-lockfile and pnpm run build to generate those three files.Once you have the files, complete these steps:
<vault>/.obsidian/plugins/section-reader/, creating the folder if it does not exist. If your vault uses a custom configuration folder, use the corresponding directory.Open any Markdown note in your vault to try Section Reader.
When several concepts are written in the same Markdown note, the content stacks up from top to bottom. As the note gets longer, it becomes easier to lose focus while reading and reviewing.
If you want to read one concept at a time without manually splitting the note into multiple files, simply place --- on its own line between concepts, with a blank line before and after it. In Section Reader, each section is displayed as a separate card, while the original note stays in a single file. For example, the two concepts below will appear as two cards:
### The Accounting Equation
**Assets = Liabilities + Equity**
A company has USD 50,000 in assets and USD 20,000 in liabilities.
Its equity is USD 30,000: the owners' remaining interest in the assets
after deducting liabilities.
---
### Double-Entry Bookkeeping
Every transaction records equal total debits and total credits.
Buying equipment for USD 5,000 in cash:
- Debit Equipment: USD 5,000
- Credit Cash: USD 5,000
Total assets stay the same: equipment increases while cash decreases.
Esc also exits focus; in Editing view, Esc keeps its native behavior.← / →. In Editing view, these keys always belong to the editor; assign your own shortcuts to “Previous section” and “Next section” for navigation. On mobile, double-tap the left / right window edge in either mode.| Command | ID |
|---|---|
| Toggle section focus | toggle-card-view |
| Next section | next-card |
| Previous section | previous-card |
Use Node.js 24 LTS and pnpm 11.7.0, as declared in .node-version and package.json. Source builds also support Node.js 22.13+ in the 22.x line and Node.js 24 or newer. The packageManager field fixes the pnpm version; when launched from another pnpm version, it downloads and uses the pinned version. Dependency overrides and reviewed installation scripts are configured in pnpm-workspace.yaml.
pnpm install --frozen-lockfile
pnpm run dev
Full validation:
pnpm run check
pnpm run check runs TypeScript checks against the current API and the minimum supported Obsidian 1.8.7 API, followed by ESLint (including Obsidian plugin rules), Vitest, release-check tests, a production build, and packaging checks. CI runs the same command for pull requests; release builds also check the version tag. See release checks for coverage and limitations.
When the plugin loads, it reads Obsidian's current interface language: Chinese language codes (zh, zh-CN, zh-TW, and so on) display Chinese; English and all other languages display English. After changing Obsidian's interface language, reload the plugin or restart Obsidian so that all command names are refreshed.
Only a line that meets both of the following conditions splits cards:
---, with no spaces or other characters.Therefore, matching text in YAML frontmatter, code blocks, blockquotes, lists, HTML blocks, and Setext headings, as well as *** / ___, does not split cards. Empty cards produced by consecutive, leading, or trailing separators are ignored.
MIT © 2026 Xinlei Zhou