From a138dc5b5b2c89932b7f5f142b92f2e875d05e90 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Sun, 12 May 2019 12:48:53 -0700 Subject: [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. --- emacs.d/custom/fcuny-defuns.el | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'emacs.d/custom') 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 "\\([^<]*\\)" 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 " " " " + ;;(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) -- cgit 1.4.1