mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-02-06 20:49:33 +00:00
Fix <p> and <div> newlines with or without <li> in shr
* lisp/net/shr.el (shr-ensure-newline): Respect that we're in a <li>, if we are, and don't insert newlines there. (shr-ensure-paragraph): When mixing newlines and paragraph ensurements, don't insert too many blank lines. (shr-tag-div): A <div> shouldn't introduce a paragraph, but a new line. (cherry picked from commit 292921facaff2f02ac4e8602c1f7ecbdcfe7ef45) Backport:
This commit is contained in:
parent
b8ea08b037
commit
52ba24bdd9
@ -783,8 +783,13 @@ size, and full-buffer size."
|
||||
(url-expand-file-name url (concat (car base) (cadr base))))))
|
||||
|
||||
(defun shr-ensure-newline ()
|
||||
(unless (zerop (current-column))
|
||||
(insert "\n")))
|
||||
(unless (bobp)
|
||||
(let ((prefix (get-text-property (line-beginning-position)
|
||||
'shr-prefix-length)))
|
||||
(unless (or (zerop (current-column))
|
||||
(and prefix
|
||||
(= prefix (- (point) (line-beginning-position)))))
|
||||
(insert "\n")))))
|
||||
|
||||
(defun shr-ensure-paragraph ()
|
||||
(unless (bobp)
|
||||
@ -812,6 +817,10 @@ size, and full-buffer size."
|
||||
(line-end-position))
|
||||
(line-end-position)))))
|
||||
(delete-region (match-beginning 0) (match-end 0)))
|
||||
;; We have a single blank line.
|
||||
((and (eolp) (bolp))
|
||||
(insert "\n"))
|
||||
;; Insert new paragraph.
|
||||
(t
|
||||
(insert "\n\n"))))))
|
||||
|
||||
@ -1206,7 +1215,7 @@ ones, in case fg and bg are nil."
|
||||
(shr-ensure-paragraph))
|
||||
|
||||
(defun shr-tag-div (dom)
|
||||
(shr-ensure-paragraph)
|
||||
(shr-ensure-newline)
|
||||
(shr-generic dom)
|
||||
(shr-ensure-newline))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user