|
@@ -1051,9 +1051,8 @@ buffer)."
|
|
|
|
|
|
(defun bm--insert-domnode-recursive (node &optional iproperties notitle)
|
|
|
"Recursively parses a domnode from `libxml-parse-html-region's usage on text
|
|
|
-produced by `bm--exec-diatheke'. Outputs text to active buffer
|
|
|
-with properties.
|
|
|
-In processing subnodes, each case will prepend a space if it needs it."
|
|
|
+produced by `bm--exec-diatheke'. INSERTS text into active buffer with properties.
|
|
|
+XXX In processing subnodes, each case will prepend a space if it needs it."
|
|
|
|
|
|
(when (and bm-red-letter-enabled (equal (dom-attr node 'who) "Jesus"))
|
|
|
;; For red-letter display.
|
|
@@ -1073,8 +1072,21 @@ In processing subnodes, each case will prepend a space if it needs it."
|
|
|
(when (plist-get iproperties 'jesus)
|
|
|
(add-face-text-property 0 (length subnode) '(:foreground "red") nil subnode))
|
|
|
(insert subnode))
|
|
|
+;;;; Maybe process these at some point? Include footnotes etc.
|
|
|
;;; ((eq (dom-tag subnode) 'node) nil)
|
|
|
;;; ((eq (dom-tag subnode) 'lb) nil)
|
|
|
+ ;; These tags appear in ESV modules (and maybe others?)
|
|
|
+ ((eq (dom-tag subnode) 'l)
|
|
|
+ (let ((attributes (dom-attributes subnode)))
|
|
|
+ (cond ((equal (cdr (assoc 'type attributes)) "x-br")
|
|
|
+ (bm-new-line))
|
|
|
+ ((equal (cdr (assoc 'type attributes)) "x-indent")
|
|
|
+ (insert "\t"))
|
|
|
+ ((assoc 'level attributes)
|
|
|
+ (let ((indent (- (string-to-number (cdr (assoc 'level attributes))) 1)))
|
|
|
+ (when (> indent 0)
|
|
|
+ (bm-new-line)
|
|
|
+ (dotimes (i indent) (insert "\t"))))))))
|
|
|
((eq (dom-tag subnode) 'title)
|
|
|
(when (not notitle) (setq bm-chapter-title subnode) (bm-new-line)))
|
|
|
((eq (dom-tag subnode) 'body) (bm--insert-domnode-recursive subnode iproperties notitle))
|
|
@@ -1087,10 +1099,7 @@ In processing subnodes, each case will prepend a space if it needs it."
|
|
|
((eq (dom-tag subnode) 'w)
|
|
|
(insert " ")
|
|
|
(bm--process-word subnode iproperties))
|
|
|
- ((and (eq (dom-tag subnode) 'l) (equal (cdr (assoc 'type (dom-attributes subnode))) "x-br"))
|
|
|
- (bm-new-line))
|
|
|
- ((and (eq (dom-tag subnode) 'l) (equal (cdr (assoc 'type (dom-attributes subnode))) "x-indent"))
|
|
|
- (insert " "))
|
|
|
+ ;; Some modules use this for line breaks and such.
|
|
|
((and (eq (dom-tag subnode) 'milestone) (equal (cdr (assoc 'type (dom-attributes subnode))) "line"))
|
|
|
(bm-new-line))
|
|
|
((or (eq (dom-tag subnode) 'transchange)
|