|
|
||
|---|---|---|
| cmd | ||
| internal/denote | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| go.mod | ||
| go.sum | ||
| mkfile | ||
README.md
acme-denote
Denote note management for the acme editor. Implements the denote file naming convention with search, filtering, and journaling capabilities.
File Naming Convention
Notes follow the denote naming pattern:
IDENTIFIER--TITLE__KEYWORDS.EXT
IDENTIFIER==SIGNATURE--TITLE__KEYWORDS.EXT (with optional signature)
Where:
IDENTIFIER: Timestamp in formatYYYYMMDDTHHmmssSIGNATURE: Optional signature fieldTITLE: Hyphen-separated title (spaces become hyphens)KEYWORDS: Underscore-separated tagsEXT: File extension (.org,.md,.txt)
Example: 20251103T183000--meeting-notes__work_project.md
Commands
Denote
Search and manage denote notes.
Usage in acme:
Denote # List all notes (sorted by ID, newest first)
Denote tag:meeting # Notes tagged 'meeting'
Denote date:/2025.*/ # Notes from 2025
Denote date:/202510.*/ !tag:journal # October 2025, not journal
Denote new 'My Note' tag1 tag2 # Create new note
Denote sort:title # List all notes sorted alphabetically
Denote tag:journal sort:title # Journal entries sorted by title
Filter syntax:
date:/regex/- Match date/identifiertitle:/regex/- Match title (from filename or file content)tag:/regex/- Match tags/keywords/regex/- Match any field!filter- Negate filterplain-text- Exact match (no regex)
Sort options:
sort:id- Sort by identifier/date (default, newest first)sort:date- Sort by date (same as ID)sort:title- Sort alphabetically by title
Creating notes:
Denote new 'Meeting Notes' work project
Denote new -f org 'Todo List' tasks
Denote new -f txt 'Journal Entry' journal
Supported file types: org, md-yaml, md-toml, txt
Journal
Daily journaling with automatic date-based titles.
Usage in acme:
Journal # Find or create today's entry
Journal add # Create additional entry for today
Journal add 20251025 # Create entry for specific date (YYYYMMDD)
Journal entries are automatically:
- Titled with format: "Monday 3 November 2025 16:56"
- Tagged with
journal - Stored in
$JOURNAL_DIRsubdirectory (default:journal/)
Acme Integration
Both commands output to a +Denote window with clickable file paths. Results show:
20251103T183000--meeting-notes__work_project.md : Meeting Notes (work, project) [/home/user/doc/20251103T183000--meeting-notes__work_project.md]
20251103T090000--monday-3-november-2025-09-00__journal.md : Daily Standup (journal) [/home/user/doc/journal/20251103T090000--monday-3-november-2025-09-00__journal.md]
Workflows:
Simple execution:
- Middle-click
Denote tag:workin tag bar or scratch window - Results appear in
+Denotewindow - Right-click file paths to open notes
Mouse chording (argument passing):
- Type or select filter arguments:
tag:mytag date:20251010 - Middle+left chord on
Denotecommand - Selected text becomes arguments to Denote
Creating notes:
- Middle-click
Denote new 'Title' tagsin scratch window - Or chord: select
'My Title' work urgent, middle+left onDenote new - Or chord: select
new 'My Title' work urgent, middle+left onDenote
Quick journal access:
- Middle-click
Journalanywhere - Opens today's entry or creates it if missing
Configuration
Environment variables:
DENOTE_DIR- Base directory for notes (default:~/doc)JOURNAL_DIR- Subdirectory for journal entries (default:journal)
Example:
export DENOTE_DIR="$HOME/notes"
export JOURNAL_DIR="daily"
Installation
mk install
Installs Denote and Journal to ~/bin/.
Front Matter
Notes include front matter based on file type:
Markdown (YAML):
---
title: "Meeting Notes"
date: 2025-11-03 Mon 18:30
tags: [work, project]
identifier: "20251103T183000"
---
Org-mode:
#+title: Meeting Notes
#+date: [2025-11-03 Mon 18:30]
#+filetags: :work:project:
#+identifier: 20251103T183000
Text:
title: Meeting Notes
date: 2025-11-03 Mon 18:30
tags: work project
identifier: 20251103T183000
Title Extraction
The title: field in search results is extracted from:
- Front matter (
#+title:for org,title:for markdown) - First heading (
* Headingfor org,# Headingfor markdown) - Filename title component (fallback)
This allows searching by actual document titles, not just filenames.