- (if (eq major-mode 'elpher-mode)
- ;; every section starts with the current page and ends with
- ;; the separator
- (mapcar (lambda (page)
- (if page
- (list (current-buffer)
- (vector
- "E"
- (or (elpher-address-to-url
- (elpher-page-address page)) "none")
- (or (elpher-page-display-string page) "?")))
- separator))
- (cons elpher-current-page elpher-history))
- (nconc (mapcar (lambda (data)
- (list (current-buffer)
- (vector
- "W"
- (plist-get data :url)
- (plist-get data :title))))
- (cons eww-data eww-history))
- (list separator)))))
+ (cond ((eq major-mode 'elpher-mode)
+ ;; every section starts with the current page and ends with
+ ;; the separator
+ (mapcar (lambda (page)
+ (if page
+ (list (current-buffer)
+ (vector "G"
+ (or (elpher-address-to-url
+ (elpher-page-address page)) "none")
+ (or (elpher-page-display-string page) "?")))
+ separator))
+ (cons elpher-current-page elpher-history)))
+ ((eq major-mode 'gemini-mode)
+ ;; no history means a list of one item
+ (list (list (current-buffer)
+ (vector "E"
+ (or (elpher-address-to-url
+ (elpher-page-address elpher-current-page)))
+ (or (elpher-page-display-string elpher-current-page)
+ (buffer-name))))))
+ ((eq major-mode 'eww-mode)
+ (nconc (mapcar (lambda (data)
+ (list (current-buffer)
+ (vector "W"
+ (or (plist-get data :url) "none")
+ (or (plist-get data :title) "none"))))
+ (cons eww-data eww-history))
+ (list separator))))))