Diary View
approvedby likemuuxi
This plugin has not been manually reviewed by Obsidian staff. A notebook-style diary view built from your daily notes.
English | 中文
Diary View
Diary View is an Obsidian community plugin that turns your daily notes into a notebook-style diary view. It focuses on a calm reading and writing experience: recent daily notes are shown as pages, the current note can be previewed or edited in place, and small details such as a daily quote and weather icon can be stored directly in each note's frontmatter.
Features
- Open a dedicated diary view from the ribbon icon or the
Open diary viewcommand. - Browse the latest seven daily notes with a page-like layout and flip animation.
- Preview rendered Markdown or switch to editing without leaving the diary view.
- Edit the prompt text at the top of the right page. The text is saved to frontmatter as
daily-quoteby default. - Optionally fetch a daily quote from a user-configured API. The plugin requests it only when a note does not already have the configured quote property, then caches it in frontmatter.
- Customize the weather icon for a note from frontmatter with
daily-weatherby default. - Replace the default artwork with a note-specific image from frontmatter with
daily-image. - Preserve daily note frontmatter while editing the body content.
- Full English and Chinese localization — auto-detects your Obsidian locale, or pick a language in settings.
- Configurable calendar week — choose whether the week starts on Monday or Sunday.
- Custom weekend days — select which days are highlighted as weekend in the calendar.
Frontmatter
Diary View reads and writes a few optional frontmatter fields in your daily notes.
---
daily-quote: "Write one sentence that belongs to today."
daily-weather: cloud-sun
daily-image: "https://example.com/photo.jpg"
daily-mood: smile
---
daily-quote is shown in the prompt card at the top of the right page and can be edited directly from the diary view. Clearing the prompt keeps an empty daily-quote value, so an API quote will not overwrite your manual choice on the next render. The quote property name can be changed in settings.
daily-weather stores the weather for the day. Click the weather icon in the page header to open the built-in picker and select an icon. You can also set it manually in frontmatter — the value can be a Lucide icon name (e.g. sun, cloud-rain), or common weather words which are automatically mapped to icons. The weather property name can be changed in settings.
daily-image replaces the default illustration on the left page. The value can be a URL (https://…), a vault-relative path (photos/sunset.jpg), or a wikilink (![[sunset.jpg]]). If this field is empty or missing, Diary View shows the built-in artwork — or, when Use first image as artwork is enabled, the first image found in the note body. The image property name can be changed in settings.
daily-mood stores the selected mood icon for the day. Click the mood area on the left page to open the built-in picker. You can also set it manually in frontmatter using a Lucide icon name or the mood's display description. Custom mood icons can be added in settings. The mood property name can be changed in settings.
Settings
Open Settings → Community plugins → Diary View to configure:
- Language — Display language for the diary view UI. Auto-detects your Obsidian locale on first use.
- Start of week — Choose whether the calendar week starts on Monday (default) or Sunday.
- Weekend days — Select which days are highlighted as weekend in the calendar. Defaults to Saturday and Sunday.
- Daily note heading — Optional Markdown headings to read and write. Enter multiple headings on separate lines, or separate them with commas or semicolons. The first matching heading is used; if none exist, the first configured heading is created.
- Quote frontmatter key — Frontmatter property used to read and save the daily quote. Defaults to
daily-quote. - Daily quote API — Optional URL for a daily quote endpoint. The response can be plain text or JSON using common fields such as
hitokoto,quote,content,text,sentence,message, ordata. - Weather frontmatter key — Frontmatter property used to read the daily weather icon. Defaults to
daily-weather. - Image frontmatter key — Frontmatter property used to read the diary image URL or path. Defaults to
daily-image. - Use first image as artwork — When enabled and no image frontmatter is set, the first image in the daily note is used as the diary artwork. When disabled, the default illustration is shown.
- Mood frontmatter key — Frontmatter property used to read and save the daily mood icon. Defaults to
daily-mood. - Custom mood icons — Add custom Lucide icon names and descriptions. Icons appear alongside the built-in mood icons in the diary view.
The plugin works offline by default. It only makes network requests when you add a Daily quote API URL.
Daily Notes
Diary View uses Obsidian's daily notes configuration when available:
folderdecides where notes are stored.formatdecides the note filename pattern.
If no daily notes configuration is found, Diary View falls back to notes named YYYY-MM-DD.md at the vault root.
Installation
For local development or manual testing, copy these files into:
<Vault>/.obsidian/plugins/diary-view/
Required files:
main.jsmanifest.jsonstyles.css
Then reload Obsidian and enable the plugin in Settings → Community plugins.
Development
Install dependencies:
npm install
Start the development build:
npm run dev
Create a production build:
npm run build
Inspiration
This plugin's notebook mood, diary-first interaction model, and page-turning presentation were inspired by Dear Diary:
- Dear Diary repository: https://github.com/thebuggeddev/dear-diary
- Dear Diary demo: https://dear-diary-three.vercel.app/
Diary View is an Obsidian plugin built around local daily notes and vault frontmatter. It does not depend on Dear Diary at runtime.
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.