diff options
author | Yuchen Pei <id@ypei.org> | 2023-07-09 23:12:55 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2023-07-09 23:12:55 +1000 |
commit | 383b7a22e584dd9c5990dcd1b0cdf48f24ffe962 (patch) | |
tree | 4f2445cf463205feaf3fe07033b7ca29bd358567 /wiki-utils.el | |
parent | fe1374efae651f914636fd0575f877837136f0d5 (diff) |
Adding more wiki site examples
and simple moinmoin / oddmuse fetching support.
Diffstat (limited to 'wiki-utils.el')
-rw-r--r-- | wiki-utils.el | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/wiki-utils.el b/wiki-utils.el index 26e25b7..810e7ec 100644 --- a/wiki-utils.el +++ b/wiki-utils.el @@ -29,13 +29,14 @@ (defvar wiki-download-dir "~/Downloads") -(defun wiki-fetch-url (url &optional callback) +(defun wiki-fetch-url (url &optional callback title) "Fetch URL asynchronously. Then calls CALLBACK which is a closure taking no argument." (interactive "sURL: ") - (let ((file-name (expand-file-name (wiki-make-file-name-from-url url) - wiki-download-dir)) + (let ((file-name (expand-file-name + (or title (wiki-make-file-name-from-url url)) + wiki-download-dir)) (cb (lambda (status file-name) (wiki-fetch-url-save-and-switch status file-name) (when callback (funcall callback))))) @@ -64,20 +65,46 @@ Then calls CALLBACK which is a closure taking no argument." (car (url-path-and-query (url-generic-parse-url (url-unhex-string url))))))) +;; TODO: add wikihow; generalise fandom (defvar wiki-sites '((local) + (archwiki-en :base-url "https://wiki.archlinux.org/title/" + :engine mediawiki + :display-name "Archwiki EN") + (debianwiki :base-url "https://wiki.debian.org/" + :engine moinmoin + :display-name "Debian Wiki") + (emacswiki :base-url "https://www.emacswiki.org/emacs/" + :engine oddmuse + :display-name "EmacsWiki") + (esp :base-url "https://wiki.endsoftwarepatents.org/wiki/" + :engine mediawiki + :display-name "ESP Wiki") + (fandom-recipes :base-url "https://recipes.fandom.com/wiki/" + :engine mediawiki + :display-name "Fandom Recipes Wiki") + (fsd :base-url "https://directory.fsf.org/wiki/" + :engine mediawiki + :display-name "Free Software Directory") + (haskell-wiki :base-url "https://wiki.haskell.org/" + :engine mediawiki + :display-name "Haskell Wiki") + (libreplanet :base-url "https://libreplanet.org/wiki/" + :engine mediawiki + :display-name "Libreplanet Wiki") (wikipedia-en :base-url "https://en.wikipedia.org/wiki/" :engine mediawiki :display-name "Wikipedia EN") + (wikivoyage-en :base-url "https://en.wikivoyage.org/wiki/" + :engine mediawiki + :display-name "Wikivoyage EN") (wiktionary-en :base-url "https://en.wiktionary.org/wiki/" :engine mediawiki :display-name "Wiktionary EN") - (emacswiki :base-url "https://www.emacswiki.org/emacs/" - :engine oddmuse - :display-name "EmacsWiki") (debianwiki :base-url "https://wiki.debian.org/" :engine moinmoin - :display-name "Debian Wiki")) + :display-name "Debian Wiki") + ) "Alist of wiki sites. Each item is in the form of (identifier . properties), where |