From f363782bd5bc3087c56133efe66432143ec596e7 Mon Sep 17 00:00:00 2001 From: Daneel Date: Tue, 24 Feb 2026 15:15:14 +0100 Subject: [PATCH] fix(snippets): adaptive heading level; subject mirror in heading+table --- snippets/org-mode/adr | 20 ++++++++++---------- snippets/org-mode/meeting | 9 +++++---- snippets/org-mode/todo | 2 +- snippets/org-mode/weekly | 10 +++++----- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/snippets/org-mode/adr b/snippets/org-mode/adr index 16db487..2a23d63 100644 --- a/snippets/org-mode/adr +++ b/snippets/org-mode/adr @@ -2,22 +2,22 @@ # name: ADR - Architectural Decision Record # key: ;adr # -- -* `(let ((max-id 0)) (save-excursion (goto-char (point-min)) (while (re-search-forward "^\\* ADR-\\([0-9]+\\)" nil t) (setq max-id (max max-id (string-to-number (match-string 1)))))) (format "ADR-%04d" (1+ max-id)))` - ${1:Subject} +`(make-string (1+ (or (org-current-level) 0)) ?*)` ${1:`(let ((max-id 0)) (save-excursion (goto-char (point-min)) (while (re-search-forward (concat "^\\*+ ADR-\\([0-9]+\\)") nil t) (setq max-id (max max-id (string-to-number (match-string 1)))))) (format "ADR-%04d" (1+ max-id)))`} - ${2:Subject} -| *ID* | `(let ((max-id 0)) (save-excursion (goto-char (point-min)) (while (re-search-forward "^\\* ADR-\\([0-9]+\\)" nil t) (setq max-id (max max-id (string-to-number (match-string 1)))))) (format "ADR-%04d" (1+ max-id)))` | -| *Subject* | ${1:Subject} | -| *Status* | ${2:Proposed} | +| *ID* | $1 | +| *Subject* | $2 | +| *Status* | ${3:Proposed} | | *Date* | `(format-time-string "%Y-%m-%d")` | -*** Problem statement +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Problem statement -*** Decision +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Decision -*** Alternatives +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Alternatives -*** Justification +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Justification -*** Implications +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Implications -*** Derived requirements +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Derived requirements $0 diff --git a/snippets/org-mode/meeting b/snippets/org-mode/meeting index 25617a2..2528722 100644 --- a/snippets/org-mode/meeting +++ b/snippets/org-mode/meeting @@ -2,14 +2,15 @@ # name: Meeting notes # key: ;meeting # -- -* Meeting: ${1:Topic} — `(format-time-string "%Y-%m-%d")` +`(make-string (1+ (or (org-current-level) 0)) ?*)` Meeting: ${1:Topic} — `(format-time-string "%Y-%m-%d")` | *Date* | `(format-time-string "%Y-%m-%d")` | +| *Topic* | $1 | | *Attendees* | ${2:names} | -*** Notes +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Notes -*** Actions +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Actions -*** Next steps +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Next steps $0 diff --git a/snippets/org-mode/todo b/snippets/org-mode/todo index 9bcd387..18d95ba 100644 --- a/snippets/org-mode/todo +++ b/snippets/org-mode/todo @@ -2,7 +2,7 @@ # name: TODO task # key: ;todo # -- -* TODO ${1:Task title} +`(make-string (1+ (or (org-current-level) 0)) ?*)` TODO ${1:Task title} SCHEDULED: <`(format-time-string "%Y-%m-%d")`> ${2:Notes} $0 diff --git a/snippets/org-mode/weekly b/snippets/org-mode/weekly index d491874..a662924 100644 --- a/snippets/org-mode/weekly +++ b/snippets/org-mode/weekly @@ -2,13 +2,13 @@ # name: Weekly review # key: ;weekly # -- -* Weekly Review — `(format-time-string "W%V %Y")` +`(make-string (1+ (or (org-current-level) 0)) ?*)` Weekly Review — `(format-time-string "W%V %Y")` -** Done this week +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Done this week -** In progress +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` In progress -** Blocked +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Blocked -** Next week focus +`(make-string (+ 2 (or (org-current-level) 0)) ?*)` Next week focus $0