;;; Code:
+(eval-when-compile (require 'cl))
(require 'browse-url)
(defgroup shr nil
(let ((first t)
column)
(when (and (string-match "\\`[ \t\n]" text)
- (not (bolp)))
+ (not (bolp))
+ (not (eq (char-after (1- (point))) ? )))
(insert " "))
(dolist (elem (split-string text))
(when (and (bolp)
(defun shr-tag-ul (cont)
(shr-ensure-paragraph)
(let ((shr-list-mode 'ul))
- (shr-generic cont)))
+ (shr-generic cont))
+ (shr-ensure-paragraph))
(defun shr-tag-ol (cont)
+ (shr-ensure-paragraph)
(let ((shr-list-mode 1))
- (shr-generic cont)))
+ (shr-generic cont))
+ (shr-ensure-paragraph))
(defun shr-tag-li (cont)
(shr-ensure-newline)
(defun shr-tag-h6 (cont)
(shr-heading cont))
+(defun shr-tag-hr (cont)
+ (shr-ensure-newline)
+ (insert (make-string shr-width ?-) "\n"))
+
;;; Table rendering algorithm.
;; Table rendering is the only complicated thing here. We do this by
(aset natural-widths i (max (aref natural-widths i)
(cadr column)))
(setq i (1+ i)))))
- (let ((extra (- (reduce '+ suggested-widths)
- (reduce '+ widths)))
+ (let ((extra (- (apply '+ (append suggested-widths nil))
+ (apply '+ (append widths nil))))
(expanded-columns 0))
(when (> extra 0)
(dotimes (i length)