diff options
author | Franck Cuny <fcuny@twitter.com> | 2019-05-12 12:48:53 -0700 |
---|---|---|
committer | Franck Cuny <fcuny@twitter.com> | 2019-05-12 12:48:53 -0700 |
commit | a138dc5b5b2c89932b7f5f142b92f2e875d05e90 (patch) | |
tree | bee05f3717450e8d804a670754f999c47646dd23 /emacs.d/custom | |
parent | [tmux] drop (diff) | |
download | emacs.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.
Diffstat (limited to 'emacs.d/custom')
-rw-r--r-- | emacs.d/custom/fcuny-defuns.el | 25 |
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 " " " " + ;;(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) |