Skip to content

feat: #tag support for notes #203

@oobagi

Description

@oobagi

Problem

There's no way to categorize or discover notes by topic. Users have to remember which notebook a note is in or search by title.

Goal

Add Obsidian-style #tag support — inline tags in note content that are parsed, rendered as clickable pills, and searchable.

Syntax

Some text with #project-alpha and #urgent tags inline.

Behavior

  • Edit mode: Tags are typed as plain text (#tag-name). Rendered with subtle highlighting so they're visually distinct while editing.
  • View mode: Tags render as styled clickable pills. Clicking a tag opens a filtered list of all notes containing that tag.
  • Search: Tags are discoverable via the existing search feature — searching #tag-name filters to notes containing that tag.

Tasks

  • Parse #tag-name as an inline element (alphanumeric + hyphens, no spaces)
  • Serialize tags back to #tag-name syntax
  • Round-trip tests
  • Edit mode: subtle syntax highlighting for tags
  • View mode: render tags as styled pills
  • View mode: clicking a tag filters the note list to notes containing that tag
  • Search integration: #tag query matches tag content
  • Add TagStyle to theme system (pill color, hover state)

Design considerations

  • Tags live in content, not metadata — no separate tag database needed (like Obsidian)
  • Tag names: lowercase, alphanumeric + hyphens, case-insensitive matching
  • Tag filtering view: reuse existing note list with a filter applied, not a separate screen
  • No autocomplete for v1 — can add later

Scope

Type: enhancement
Size: medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions