TODO
Pinned Notes Spec
Goal
Keep
Recent Notesas-is and additionally show manually pinned notes on/notes/.Make pinned notes easy to maintain from each note's front matter.
UX / Layout
Add a new section
Pinned NotesaboveRecent Notesinnotes.md.Show up to 3 pinned notes.
If no pinned note exists, hide the
Pinned Notessection.Recent Notesshould remain visible even when pinned notes exist.Avoid duplication in the top area:
Recent Notesexcludes already-shown pinned notes.
Data / Front Matter
Add
pinned = trueto note front matter to pin a note.Optional:
pin_rank = Intfor manual ordering inside pinned notes (smaller value first).Backward compatibility: if
featured = trueexists, treat it as pinned.
Sorting Rules
Pinned Notes: sort bypin_rank(ascending), thendate(descending), thentitle(ascending).Recent Notes: sort bydate(descending), thentitle(ascending), after excluding pinned notes.
Rendering Rules
Pinned Notescard rendering should reuse the current note item renderer.Pinned Noteskeeps date visible and can hide tags (same style as recent list).Current
TagsandArchivesections remain unchanged.
Implementation Scope
notes.mdAdd{{notes_pinned}}panel above{{notes_recent}}.utils.jlAdd pin metadata extraction andhfun_notes_pinned(). Updatehfun_notes_recent()to exclude pinned notes._css/adjust.cssReuse existing list styles or add minimal class styling for pinned list if needed.
Acceptance Criteria
A note with
pinned = trueappears inPinned Notes.A note with
featured = truealso appears inPinned Notes.Maximum 3 pinned notes are shown.
Pinned Notessection is hidden when there is no pinned note.Recent Notesstill shows up to 3 entries and does not duplicate pinned entries.
Future Option
Replace manual pinning with analytics-based ranking in a separate build/data step.
Do not fetch remote analytics data in normal local note rendering.
Google Scholar
Twitter
DockerHub