SkillAgentSearch skills...

ObJournal

Obsidian plugin: Organize Markdown notes by calendar. Journal-style list, month view, On This Day & image galleries.

Install / Use

/learn @Lam-L/ObJournal
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Objournal

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


License Obsidian

| List View | Calendar View | Editor Gallery | |:---------:|:-------------:|:--------------:| | List View | Calendar View | Editor 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

| Setting | Description | |---------|-------------| | Default Folder | Required 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.) | | Template | Template file for new notes. | | Editor Image Layout | Enable journal-style image layout in Live Preview (off by default). | | Open Note Mode | New tab / Current tab | | IndexedDB Storage | View 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

| Images | Layout | |--------|--------| | 1 | Single column 2:1 | | 2 | Left & right 2:1 each | | 3 | Large left + 2 small right | | 4 | Large 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 Action | System Behavior | |-------------|-----------------| | Open Objournal | Read existing cache only; no generation | | Scroll to an image | Show cache if present; otherwise show original, then generate in background | | Return after new note | New note images generate on demand when shown | | Edit an image | Treated as new; regenerated on next view | | Long-unused images | LRU eviction when over quota | | Clear cache | Remove 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.

Related Skills

View on GitHub
GitHub Stars62
CategoryDevelopment
Updated1h ago
Forks2

Languages

JavaScript

Security Score

95/100

Audited on Apr 11, 2026

No findings