From 0683e6aeb0d4a3855dd841611ccfbb6221cfb506 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 24 May 2026 17:34:58 -0500 Subject: feat: title-case the view name in the file title MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- tests/test-pearl-output.el | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests') 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 () -- cgit v1.2.3