From 05de4899cd848bfe1d80b025c8735cea9e58c642 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 14 May 2026 23:40:28 -0500 Subject: feat(markdown-config): register markdown as an org src-block language `#+begin_src markdown ... #+end_src' blocks rendered and exported fine but `org-lint' warned on every one of them ("Unknown source block language: 'markdown'"), and `C-c '' inside the block fell back to `fundamental-mode' instead of opening it in `markdown-mode' for editing. Add a `with-eval-after-load 'org' form that pushes `("markdown" . markdown)' onto `org-src-lang-modes'. New ERT test in `tests/test-markdown-config.el' asserts the entry resolves to `markdown' after `(require 'markdown-config)'. Surfaced while clearing `org-lint' on `todo.org' from 55 issues down to 1 -- the last one was this warning on a Linear ticket-body draft that was genuinely markdown. Registering the language is the right fix; relabeling the block as `text' or `example' would lose accuracy. --- modules/markdown-config.el | 7 +++++++ tests/test-markdown-config.el | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tests/test-markdown-config.el diff --git a/modules/markdown-config.el b/modules/markdown-config.el index 438aea7e..2536904a 100644 --- a/modules/markdown-config.el +++ b/modules/markdown-config.el @@ -15,6 +15,13 @@ ("" . markdown-preview)) ;; use same key as compile for consistency :init (setq markdown-command "multimarkdown")) +;; Register markdown as a known org-src-block language so `org-lint' +;; stops warning on `#+begin_src markdown ... #+end_src' and `C-c '' +;; inside such a block opens it in `markdown-mode' instead of falling +;; back to fundamental-mode. +(with-eval-after-load 'org + (add-to-list 'org-src-lang-modes '("markdown" . markdown))) + ;;;; ------------------------- Impatient-Mode ------------------------ ;; allows for live previews of your html diff --git a/tests/test-markdown-config.el b/tests/test-markdown-config.el new file mode 100644 index 00000000..62d199a8 --- /dev/null +++ b/tests/test-markdown-config.el @@ -0,0 +1,27 @@ +;;; test-markdown-config.el --- Tests for markdown-config -*- lexical-binding: t; -*- + +;;; Commentary: +;; Covers the org-side wiring in markdown-config.el. The use-package +;; block for markdown-mode itself is upstream config; the assertion +;; here is on the local glue that points org at markdown-mode for +;; `#+begin_src markdown' blocks. + +;;; Code: + +(require 'ert) + +(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) + +;; Require org BEFORE markdown-config so the `with-eval-after-load +;; 'org' body fires synchronously instead of being deferred. +(require 'org) +(require 'markdown-config) + +(ert-deftest test-markdown-config-registers-markdown-org-src-lang () + "Normal: `markdown' shows up in `org-src-lang-modes' mapped to +`markdown' so org-lint stops warning on `#+begin_src markdown' and +`C-c '' opens those blocks in `markdown-mode'." + (should (equal (cdr (assoc "markdown" org-src-lang-modes)) 'markdown))) + +(provide 'test-markdown-config) +;;; test-markdown-config.el ends here -- cgit v1.2.3