diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-24 17:34:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-24 17:34:58 -0500 |
| commit | 0683e6aeb0d4a3855dd841611ccfbb6221cfb506 (patch) | |
| tree | 5023bd5b53b6ce1e35fb6c06260964bcccecf0bd | |
| parent | cc599d3e9d37c200d49f723ff8e8ce694acd33f8 (diff) | |
| download | pearl-0683e6aeb0d4a3855dd841611ccfbb6221cfb506.tar.gz pearl-0683e6aeb0d4a3855dd841611ccfbb6221cfb506.zip | |
feat: title-case the view name in the file title
The #+title line now renders the source name in title case, gated on pearl-title-case-headings like the issue headings, so "my open bugs" shows as "Linear — My Open Bugs". pearl--source-name itself stays raw since it also feeds the echo-area refresh messages.
| -rw-r--r-- | pearl.el | 3 | ||||
| -rw-r--r-- | tests/test-pearl-output.el | 11 |
2 files changed, 13 insertions, 1 deletions
@@ -2897,7 +2897,8 @@ page cap was hit. Pure function, no side effects." (name (pearl--source-name src)) (filter (plist-get src :filter))) (with-temp-buffer - (insert (format "#+title: Linear — %s\n" name)) + (insert (format "#+title: Linear — %s\n" + (if pearl-title-case-headings (pearl--title-case name) name))) (insert "#+STARTUP: show3levels\n") (insert (format "#+TODO: %s\n" (if (bound-and-true-p org-todo-keywords) diff --git a/tests/test-pearl-output.el b/tests/test-pearl-output.el index f9f66eb..6eafbb4 100644 --- a/tests/test-pearl-output.el +++ b/tests/test-pearl-output.el @@ -68,6 +68,17 @@ (should (string-match-p "^#\\+title:" out)) (should-not (string-match-p "^\\*\\*\\* " out)))) +(ert-deftest test-pearl-build-org-content-title-cases-view-name () + "The view name in the file title is title-cased when title-casing is on, raw when off." + (let ((case-fold-search nil) ; strict so casing actually matters + (source '(:type filter :name "my open bugs" :filter nil))) + (let ((pearl-title-case-headings t)) + (should (string-match-p "^#\\+title: Linear — My Open Bugs$" + (pearl--build-org-content '() source)))) + (let ((pearl-title-case-headings nil)) + (should (string-match-p "^#\\+title: Linear — my open bugs$" + (pearl--build-org-content '() source)))))) + ;;; --read-active-source (ert-deftest test-pearl-read-active-source-absent () |
