Skip to content

feat: #tag support for notes #203

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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