Objournal

pending

by JaceLin

Organize Markdown files by calendar and create a journal-style view. List, calendar, On This Day, journal image layouts — all in one place.

59 starsUpdated 28d agoMITDiscovered via Obsidian Unofficial Plugins
View on GitHub

Objournal

Read in your language: English · 简体中文 · 日本語 · 繁體中文


License Obsidian

List ViewCalendar ViewEditor Gallery
List ViewCalendar ViewEditor Gallery

Organize Markdown files by calendar and create a journal-style view. List, calendar, On This Day, journal image layouts — all in one place.

If Objournal helps you, consider supporting me on Ko-fi ☕️


1 Features

1.1 Home View

  • Calendar View: Browse entries by month with thumbnails in date cells
  • List View: Timeline-style list grouped by date (Today, Yesterday, Previous years)
  • On This Day: Show entries from the same date in past years
  • Journal Cards: Title, date, excerpt, images (1–5+ layout support)
  • Stats Bar: Consecutive days, word count, days with entries (hidden by default)

1.2 Editor

  • Journal-style Image Layout (optional, off by default): In Live Preview, images in notes from the default folder use the same layout as journal cards
  • Auto-split: Over 5 consecutive images are split into multiple galleries
  • Live Update: Add/remove images and layout updates instantly
  • Image Delete: Delete button on each image

1.3 Other

  • Multi-language: English, 简体中文, 日本語, 繁體中文
  • Virtualized List: @tanstack/react-virtual for smooth scrolling
  • File Watchers: Auto-refresh on create, edit, delete, rename
  • Configurable Date Field: "No selection" (creation time) or frontmatter field (date, Date, created, etc.)

2 Installation

Using BRAT (Recommended)

  1. Install the BRAT plugin
  2. In BRAT settings, click "Add Beta plugin"
  3. Enter this plugin’s GitHub repo URL
  4. Install and enable in Obsidian

Tip: BRAT checks for updates and notifies you of new versions.

Manual Install

  1. Download main.js, manifest.json, styles.css from Releases
  2. Put them in {vault}/.obsidian/plugins/objournal/
  3. Enable the plugin in Obsidian

Build from Source

cd .obsidian/plugins/objournal
npm install
npm run build

3 Usage

Open View

  • Command: Ctrl/Cmd + P → type "Open Objournal" → Enter
  • First time: You must select a default folder (or "Scan entire Vault") in Settings before opening. If not set, the settings panel will open automatically.

New Note

  • Click the + button in the top-right to create today’s note with the default template

Switch View Mode

  • Click the calendar/list icon to switch between calendar and list views

4 Settings

SettingDescription
Default FolderRequired before opening. Choose a folder or "Scan entire Vault". Editor image layout applies only to notes in the selected folder.
Date Field"No selection" = use file creation time only; or choose a frontmatter field (date, created, etc.)
TemplateTemplate file for new notes.
Editor Image LayoutEnable journal-style image layout in Live Preview (off by default).
Open Note ModeNew tab / Current tab
IndexedDB StorageView usage and clear cache in Maintenance section. Thumbnail quota: 200 MB, LRU eviction when exceeded.

5 Date & Image Rules

5.1 Date Extraction

  • No selection: Use file creation time only.
  • Field selected: Read from frontmatter; fallback to file creation time if missing.

5.2 Image Layout

ImagesLayout
1Single column 2:1
2Left & right 2:1 each
3Large left + 2 small right
4Large left + 3 small right
5+Large left + 4 small right; overflow into multiple galleries

Editor: Same as home; images beyond 5 split into multiple galleries; delete button on each image.

5.3 Thumbnail Cache

Home cards use WebP thumbnails for faster scrolling.

When are they generated?

Your ActionSystem Behavior
Open ObjournalRead existing cache only; no generation
Scroll to an imageShow cache if present; otherwise show original, then generate in background
Return after new noteNew note images generate on demand when shown
Edit an imageTreated as new; regenerated on next view
Long-unused imagesLRU eviction when over quota
Clear cacheRemove all thumbnails; regenerate on next view

Storage Quota & Eviction

  • IndexedDB: ~200 MB cap; LRU eviction when over
  • Memory: Up to 200 thumbnails; LRU eviction
  • View usage and clear in Settings → Maintenance

6 Privacy & Storage

  • Local Only: IndexedDB caches entries and thumbnails locally; nothing is uploaded
  • Quota: Thumbnail cache capped at ~200 MB; oldest entries evicted (see 5.3)
  • Clear: View usage and clear cache in Settings → Maintenance
  • No Network: No requests to external servers

7 Development

npm install
npm run dev    # watch mode
npm run build  # production build

Stack: React 18, @tanstack/react-virtual, TypeScript, esbuild


8 License

MIT License


Questions or feedback? Open an issue on GitHub.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.