diff options
author | Yuchen Pei <id@ypei.org> | 2025-07-04 09:53:01 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2025-07-04 09:53:01 +1000 |
commit | f5d7181e0ce7fd8af713930a960d1d7af99cb7bc (patch) | |
tree | fd8399c1ac5187592843739e4588c34b6a9b1ca5 /emacs | |
parent | f75406125d0d6f1e0e92aeedf85290e587e0ed24 (diff) |
[emacs] Render ol in nov without numbering
Diffstat (limited to 'emacs')
-rw-r--r-- | emacs/.emacs.d/init/ycp-markup.el | 1 | ||||
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-nov.el | 14 |
2 files changed, 15 insertions, 0 deletions
diff --git a/emacs/.emacs.d/init/ycp-markup.el b/emacs/.emacs.d/init/ycp-markup.el index c511d55..c331f49 100644 --- a/emacs/.emacs.d/init/ycp-markup.el +++ b/emacs/.emacs.d/init/ycp-markup.el @@ -120,6 +120,7 @@ "F" #'my-nov-skim-forward "B" #'my-nov-skim-backward) (add-to-list 'nov-shr-rendering-functions '(span . my-nov-render-span)) + (add-to-list 'nov-shr-rendering-functions '(ol . my-nov-render-ol)) (add-hook 'nov-mode-hook (lambda () (add-hook 'post-command-hook #'my-nov-update-mode-line nil t))) diff --git a/emacs/.emacs.d/lisp/my/my-nov.el b/emacs/.emacs.d/lisp/my/my-nov.el index 7cdb2a7..21df675 100644 --- a/emacs/.emacs.d/lisp/my/my-nov.el +++ b/emacs/.emacs.d/lisp/my/my-nov.el @@ -59,6 +59,20 @@ chapter title." (unless (equal (dom-attr dom 'epub:type) "pagebreak") (shr-generic dom))) +;;; TODO: perhaps no indentation? +(defun my-nov-render-ol (dom) + (shr-ensure-paragraph) + (let* ((attrs (dom-attributes dom)) + (start-attr (alist-get 'start attrs)) + ;; Start at 1 if there is no start attribute + ;; or if start can't be parsed as an integer. + (start-index (condition-case _ + (cl-parse-integer start-attr) + (t nil))) + (shr-list-mode (or start-index 'ul)) + (shr-internal-bullet `(" " . ,(shr-string-pixel-width " ")))) + (shr-generic dom)) + (shr-ensure-paragraph)) (defun my-nov-find-file-with-ipath (file-name ipath) "Find epub file and goto IPATH. |