(defun shr-tag-p (cont)
(shr-ensure-paragraph)
(shr-generic cont)
- (unless (bobp)
- (insert "\n")))
+ (shr-ensure-paragraph))
(defun shr-ensure-paragraph ()
(unless (bobp)
(if (bolp)
- (unless (eql (char-after (1- (point))) ?\n)
+ (unless (eql (char-after (- (point) 2)) ?\n)
(insert "\n"))
- (insert "\n\n"))))
+ (if (save-excursion
+ (beginning-of-line)
+ (looking-at " *$"))
+ (insert "\n")
+ (insert "\n\n")))))
(defun shr-tag-b (cont)
(shr-fontize-cont cont 'bold))
(defun shr-tag-u (cont)
(shr-fontize-cont cont 'underline))
-(defun shr-s (cont)
- (shr-fontize-cont cont 'strikethru))
+(defun shr-tag-s (cont)
+ (shr-fontize-cont cont 'strike-through))
(defun shr-fontize-cont (cont &rest types)
(let (shr-start)
(browse-url (widget-get widget :url)))
(defun shr-tag-img (cont)
- (when (and (plusp (current-column))
+ (when (and (> (current-column) 0)
(not (eq shr-state 'image)))
(insert "\n"))
(let ((start (point-marker)))
((eq shr-folding-mode 'none)
(insert t))
(t
- (let (column)
+ (let ((first t)
+ column)
+ (when (and (string-match "\\`[ \t\n]" text)
+ (not (bolp)))
+ (insert " "))
(dolist (elem (split-string text))
(setq column (current-column))
- (when (plusp column)
- (if (> (+ column (length elem) 1) shr-width)
- (insert "\n")
- (insert " ")))
+ (when (> column 0)
+ (cond
+ ((> (+ column (length elem) 1) shr-width)
+ (insert "\n"))
+ ((not first)
+ (insert " "))))
+ (setq first nil)
(when (and (bolp)
- (plusp shr-indentation))
+ (> shr-indentation 0))
(insert (make-string shr-indentation ? )))
;; The shr-start is a special variable that is used to pass
;; upwards the first point in the buffer where the text really
;; starts.
(unless shr-start
(setq shr-start (point)))
- (insert elem))))))
+ (insert elem))
+ (when (and (string-match "[ \t\n]\\'" text)
+ (not (bolp)))
+ (insert " "))))))
(defun shr-get-image-data (url)
"Get image data for URL.
(defvar shr-list-mode nil)
(defun shr-tag-ul (cont)
+ (shr-ensure-paragraph)
(let ((shr-list-mode 'ul))
(shr-generic cont)))
(defun shr-tag-h5 (cont)
(shr-heading cont))
+(defun shr-tag-h6 (cont)
+ (shr-heading cont))
+
(defun shr-heading (cont &rest types)
(shr-ensure-paragraph)
(apply #'shr-fontize-cont cont types)