M-AbdullahTariq110 downloadsCornell note-taking plugin for Obsidian. Live Render. No Switching Between Modes.
Turn any Obsidian note into a Cornell-style study sheet using plain Obsidian callouts — no special syntax to learn. Cues line up in a left margin, your notes sit beside them, and a summary runs across the bottom. It works in both Reading view and Live Preview (editing), and you can stack several Cornell "pages" in one file.
| Reading view | Live Preview | Review mode |
|---|---|---|
![]() |
![]() |
![]() |
Ctrl/Cmd-P) → Create new
note, or click the columns icon in the left ribbon. You get a ready-to-use
Cornell note.To turn an existing note into a Cornell sheet, add this to the very top:
---
cssclasses:
- cornell-note
---
A Cornell note is just three kinds of callout:
> [!title] Photosynthesis
> [!cue] What is it?
Plants convert light into chemical energy stored as sugars.
> [!cue] Where does it happen?
In the chloroplasts, mainly in the leaves.
> [!summary]
> Photosynthesis turns light, water, and CO2 into glucose and oxygen.
> [!cue]) → sits in the left margin, next to the notes it labels.> [!summary]) → a full-width band across the bottom.> [!title]) → a centered page heading. No title? The file name
is used automatically.[!tip] Leave a blank line between a cue and a paragraph beneath it. Otherwise Markdown glues the paragraph into the cue, so the notes show in the narrow margin column instead of the notes column. The plugin flags this with a red border to remind you. Lists and headings don't need the blank line.
Use a normal --- rule to divide sections within a page.
Each > [!title] starts a new page — its own title, cues, notes, and summary —
running until the next > [!title]. Pages are separated by a gap so they read
as separate sheets. Anything before the first title sits under the file-name
title.
Set a shortcut word for cue / summary / title in settings. Type that word on its own line inside a Cornell note and it expands into the matching callout, with the cursor placed right after. The three words must be different.
Run the Toggle review mode command. Cues (and the page title) stay visible as prompts, while the notes and summary are blurred. Read a cue, recall the answer, then click the cue to reveal its notes (click again to hide). Click the summary to reveal it on its own.
PDF export is off by default. Turn it on in Settings → Cornell Notes Pro → Optional → Enable PDF export.
Then right-click a note (or a folder of notes) in the file explorer → Export PDF. A modal lets you choose which notes to include, preview them as paper-like sheets, and export either one PDF per note or a single combined PDF. Sheets are A4 on a clean white background, and review-mode blur never carries into the export.
Open Settings → Community plugins → Cornell Notes Pro. Settings are grouped into two tabs so the everyday options aren't crowded by the extras.
Layout
| Setting | Default | What it does |
|---|---|---|
| Cue column width | 120 px |
Width of the left margin column. |
| Divider line color | lightgrey |
Color of the cue/notes divider (any CSS color). |
| Divider line thickness | 1 px |
Set to 0 to hide the divider. |
Optional
| Setting | Default | What it does |
|---|---|---|
| Enable PDF export | off | Show the right-click "Export PDF" option. |
| Highlight cue on hover (review mode) | off | Draw a box around a cue when you hover it in review mode. |
| Cue / Summary / Title shortcut | empty | A word that auto-expands into the matching callout. The three must differ. |
Changes apply instantly — no reload needed.
| Command | What it does |
|---|---|
| Create new note | Makes a pre-filled Cornell note in the current folder. |
| Toggle review mode | Turns active-recall study mode on/off (Reading view). |
| Reset review reveals (re-blur all) | Re-hides every revealed region. |
The plugin marks every Cornell block with stable data- attributes, so themes
and CSS snippets can target them without depending on the plugin's internals.
The same vocabulary is used in Reading view, Live Preview, and the PDF export:
| Attribute | Where | Meaning |
|---|---|---|
data-cornell-slot |
block wrappers (all views) | The block's role: cue, body, summary, title, heading, or full. |
data-cornell-in-region |
heading wrappers | The heading sits inside a cue's notes region (carries the divider). |
data-cornell-notes-end |
body/heading wrappers | Last divider-carrying block of its region. |
data-cornell-page-break |
title wrappers | Every page title except the document's first. |
data-cornell-cue-group |
block wrappers (Reading view) | Review-mode reveal key shared by a cue and its region. |
data-cornell-review-blur |
block wrappers (Reading view) | Blurs in review mode until revealed. |
data-cornell-revealed |
block wrappers (Reading view) | Currently revealed in review mode. |
data-cornell-line |
editor lines (Live Preview) | The line's role: cue, body, summary, title, heading, or gap. |
data-cornell-summary-start |
editor lines (Live Preview) | A summary's first source line. |
data-cornell-over-limit |
editor lines (Live Preview) | An over-length title line. |
data-cornell-invalid |
embed blocks (Live Preview) | The widget contains an invalid cue. |
These names are a public surface — they won't change without a major version bump.
npm install
npm run build
This produces main.js.
The PDF export's render-and-capture approach — rendering the note into an
isolated Electron <webview> and writing the page with printToPDF — was
adapted from obsidian-better-export-pdf
by l1xnan, used under the MIT License:
MIT License
Copyright (c) 2023 l1xnan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Licensed under the GNU General Public License v3.0.