summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranck Cuny <fcuny@twitter.com>2019-05-12 12:48:53 -0700
committerFranck Cuny <fcuny@twitter.com>2019-05-12 12:48:53 -0700
commita138dc5b5b2c89932b7f5f142b92f2e875d05e90 (patch)
treebee05f3717450e8d804a670754f999c47646dd23
parent[tmux] drop (diff)
downloademacs.d-a138dc5b5b2c89932b7f5f142b92f2e875d05e90.tar.gz
[emacs] Add functions to fetch title of a page/
Given an URL, fetch the title of the page, and create an org-mode link
from it.
-rw-r--r--emacs.d/custom/fcuny-defuns.el25
1 files changed, 25 insertions, 0 deletions
diff --git a/emacs.d/custom/fcuny-defuns.el b/emacs.d/custom/fcuny-defuns.el
index 47d0a00..40bd4ce 100644
--- a/emacs.d/custom/fcuny-defuns.el
+++ b/emacs.d/custom/fcuny-defuns.el
@@ -49,4 +49,29 @@
           (message "Built check.pex successfully")
         (message (buffer-file-name output))))))
 
+;; from https://karl-voit.at/2014/08/10/bookmarks-with-orgmode/
+(defun fcuny/string-replace (this withthat in)
+  "replace THIS with WITHTHAT' in the string IN"
+  (with-temp-buffer
+    (insert in)
+    (goto-char (point-min))
+    (replace-string this withthat)
+    (buffer-substring (point-min) (point-max))))
+
+(defun fcuny/get-page-title (url)
+  "Make URL into an org-mode link."
+  (let ((title))
+    (with-current-buffer (url-retrieve-synchronously url)
+      (goto-char (point-min))
+      (re-search-forward "<title>\\([^<]*\\)</title>" nil t 1)
+      (setq title (match-string 1))
+      (goto-char (point-min))
+      (re-search-forward "charset=\\([-0-9a-zA-Z]*\\)" nil t 1)
+      (fcuny/string-replace "&nbsp;" " "
+                        ;;(decode-coding-string title (intern (match-string 1)))
+                        ;; following line fixes charset issues from
+                        ;; previous line:
+                            (decode-coding-string title 'utf-8))
+      (concat "[[" url "][" title "]]"))))
+
 (provide 'fcuny-defuns)