Alexey Alekhin49 downloadsDisplay dates in a readable format without any changes to the content
Keep your daily-note filenames as plain YYYY-MM-DD (sortable, unambiguous, easy to link) while displaying links to them as human-readable dates:
Discussed on 2026-07-07
Becomes:
Discussed on Tuesday, Jul 7, 2026
Strictly cosmetic. The plugin never renames files, never writes frontmatter or aliases, never changes note content. Turn it off and nothing has changed.
[[2026-07-07]]) render as the formatted date while you edit. Moving the cursor into the link reveals the raw text, just like live preview does with brackets. Clicking the formatted date opens the note as usual.Links with an explicit alias ([[2026-07-07|that meeting]]) and links with subpaths ([[2026-07-07#Notes]]) are never touched: you already chose their display text.
YYYY-MM-DD). Parsing is strict: 2026-02-30 or 2026-7-7 won't match.dddd, MMM D, YYYY), with a live preview of today's note in the settings tab.File explorer, tab headers, quick switcher, search results, graph view and the inline title still show the raw filename. Reaching those contexts requires monkey-patching Obsidian's internal views, a private-API hack that breaks across updates and is the main source of risk flags in plugins that do it. This plugin only uses public APIs (a CodeMirror editor extension and a Markdown post-processor), so those contexts are out of scope by design.
Link text is where readability matters most: that's where dates appear mid-sentence in your prose. If Obsidian ships a public display-name API for the other contexts, this plugin will be able to support it as well.
@-date format, with color coding.@today. It is recommended to install this plugin via the Community Plugins browser, but you can also install it manually:
Download main.js and manifest.json from the latest release into <vault>/.obsidian/plugins/readable-date-links/, then enable it in Settings → Community plugins. Or install via BRAT.
npm install
npm test # unit tests for the date logic
npm run test:e2e # end-to-end tests in a real Obsidian instance, desktop and mobile-emulated
npm run build # typecheck + production build
The date/pattern logic lives in src/readable.ts, an Obsidian-free module with unit tests. The two UI integrations are thin wrappers around it.
End-to-end tests (test/specs) run via wdio-obsidian-service against a real, freshly-downloaded Obsidian instance — no mocking. Each spec runs twice: once as normal desktop Obsidian, once with app.emulateMobile(true) on, so mobile-UI regressions are caught without needing a phone or emulator. Both run in CI on every push. This doesn't cover the real mobile app's Capacitor runtime (only public CM6/markdown-postprocessor APIs are used here, so the risk is low), but if that ever matters, wdio-obsidian-service also supports testing the real Obsidian Android app via Appium — see its README.