Switch URL and Name position in the menu
[elpher.git] / elpher.el
index b2bc1c5..acd89fc 100644 (file)
--- a/elpher.el
+++ b/elpher.el
@@ -1368,17 +1368,20 @@ treatment that a separate function is warranted."
 The gemini map file line describing the header is given
 by HEADER-LINE."
   (when (string-match "^\\(#+\\)[ \t]*" header-line)
-    (let ((level (length (match-string 1 header-line)))
-          (header (substring header-line (match-end 0))))
+    (let* ((level (length (match-string 1 header-line)))
+           (header (substring header-line (match-end 0)))
+          (face (pcase level
+                   (1 'elpher-gemini-heading1)
+                   (2 'elpher-gemini-heading2)
+                   (3 'elpher-gemini-heading3)
+                   (_ 'default)))
+          (fill-column (/ (* fill-column
+                             (font-get (font-spec :name (face-font 'default)) :size))
+                          (font-get (font-spec :name (face-font face)) :size))))
       (unless (display-graphic-p)
         (insert (make-string level ?#) " "))
-      (insert (propertize header 'face
-                          (pcase level
-                            (1 'elpher-gemini-heading1)
-                            (2 'elpher-gemini-heading2)
-                            (3 'elpher-gemini-heading3)
-                            (_ 'default)))
-              "\n"))))
+      (insert (propertize header 'face face))
+      (newline))))
 
 (defun elpher-gemini-insert-text (text-line)
   "Insert a plain non-preformatted TEXT-LINE into a text/gemini document.
@@ -2192,8 +2195,8 @@ that there are no buffers for history items so many of the buffer
 menu commands won't work on them."
     (setq tabulated-list-format
          (vector '("T" 1 t)
-                 '("URL" 40 t)
-                 '("Name" 30 t))
+                 '("Name" 30 t)
+                 '("URL" 40 t))
          tabulated-list-sort-key nil)
     ;; Collect info for each buffer we're interested in.
     (let (entries)
@@ -2217,25 +2220,25 @@ list established by `elpher-menu-refresh'. See
   (list (current-buffer)
        (cond ((eq major-mode 'elpher-mode)
               (vector "G"
-                      (or (elpher-address-to-url
-                           (elpher-page-address elpher-current-page))
-                          "none")
                       (or (elpher-find-title)
                           (elpher-page-display-string elpher-current-page)
-                          (buffer-name))))
+                          (buffer-name))
+                      (or (elpher-address-to-url
+                           (elpher-page-address elpher-current-page))
+                          "none")))
              ((eq major-mode 'gemini-mode)
               (vector "E"
+                      (or (elpher-page-display-string elpher-current-page)
+                          (buffer-name))
                       (or (elpher-address-to-url
                            (elpher-page-address elpher-current-page))
-                          "none")
-                      (or (elpher-page-display-string elpher-current-page)
-                          (buffer-name))))
+                          "none")))
              ((eq major-mode 'eww-mode)
               (vector "W"
-                      (or (eww-current-url)
-                          "none")
                       (or (plist-get eww-data :title)
-                          (buffer-name)))))))
+                          (buffer-name))
+                      (or (eww-current-url)
+                          "none"))))))
 
 (defun elpher-menu-refresh-history ()
   "Return current entries for `elpher-menu-refresh'.
@@ -2262,9 +2265,9 @@ list established by `elpher-menu-refresh'. See
                     (if (cdr pair)
                         (list (car pair)
                               (vector "G"
+                                      (or (elpher-page-display-string (cdr pair)) "?")
                                       (or (elpher-address-to-url
-                                           (elpher-page-address (cdr pair))) "none")
-                                      (or (elpher-page-display-string (cdr pair)) "?")))
+                                           (elpher-page-address (cdr pair))) "none")))
                       separator))
                   (cons (cons (current-buffer) elpher-current-page)
                         (mapcar (lambda (page)
@@ -2275,10 +2278,10 @@ list established by `elpher-menu-refresh'. See
           ;; No history means a list of one item. Add a separator.
           (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))))
+                                  (buffer-name))
+                              (or (elpher-address-to-url
+                                   (elpher-page-address elpher-current-page)))))
                 separator))
           ((eq major-mode 'eww-mode)
           ;; A pair is (BUFFER-OR-DATA . PAGE) where BUFFER-OR-DTA is
@@ -2287,14 +2290,14 @@ list established by `elpher-menu-refresh'. See
           ;; what function to call. Add the separator at the end.
            (nconc (cons (list (current-buffer)
                               (vector "W"
-                                      (or (plist-get eww-data :url) "none")
-                                      (or (plist-get eww-data :title) "none")))
+                                      (or (plist-get eww-data :title) "none")
+                                      (or (plist-get eww-data :url) "none")))
                         (mapcar (lambda (data)
                                   (list
                                    (list (current-buffer) 'eww-restore-history data)
                                    (vector "W"
-                                           (or (plist-get data :url) "none")
-                                           (or (plist-get data :title) "none"))))
+                                           (or (plist-get data :title) "none")
+                                           (or (plist-get data :url) "none"))))
                                 eww-history))
                   (list separator))))))