aboutsummaryrefslogtreecommitdiff
path: root/wiki-utils.el
diff options
context:
space:
mode:
Diffstat (limited to 'wiki-utils.el')
-rw-r--r--wiki-utils.el41
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