aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2025-07-04 09:53:01 +1000
committerYuchen Pei <id@ypei.org>2025-07-04 09:53:01 +1000
commitf5d7181e0ce7fd8af713930a960d1d7af99cb7bc (patch)
treefd8399c1ac5187592843739e4588c34b6a9b1ca5
parentf75406125d0d6f1e0e92aeedf85290e587e0ed24 (diff)
[emacs] Render ol in nov without numbering
-rw-r--r--emacs/.emacs.d/init/ycp-markup.el1
-rw-r--r--emacs/.emacs.d/lisp/my/my-nov.el14
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.