aboutsummaryrefslogtreecommitdiff
path: root/wiki-engine.el
diff options
context:
space:
mode:
Diffstat (limited to 'wiki-engine.el')
-rw-r--r--wiki-engine.el58
1 files changed, 34 insertions, 24 deletions
diff --git a/wiki-engine.el b/wiki-engine.el
index fb48994..74c27e0 100644
--- a/wiki-engine.el
+++ b/wiki-engine.el
@@ -33,12 +33,12 @@
(defun wiki-engine-mediawiki-fetch (wiki-site title)
"Fetch a mediawiki entry describing TITLE.
-The site name is passed as a symbol WIKI-SITE."
+The site handle is passed as a symbol WIKI-SITE."
(let ((wiki-site-info (alist-get wiki-site wiki-sites)))
(cl-assert (eq (plist-get wiki-site-info :engine) 'mediawiki))
(when (string-empty-p title) (setq title "Main Page"))
(unless (and wiki-fetch-prefer-local
- (wiki-local-find-file
+ (wiki-find-file
title
(wiki-locate-dir wiki-site)))
(wiki-fetch-url
@@ -55,42 +55,51 @@ The site name is passed as a symbol WIKI-SITE."
(defun wiki-engine-oddmuse-fetch (wiki-site title)
(let ((wiki-site-info (alist-get wiki-site wiki-sites)))
(cl-assert (eq (plist-get wiki-site-info :engine) 'oddmuse))
- (wiki-fetch-url
- (format "%s?action=download;id=%s"
- (plist-get wiki-site-info :base-url)
- title)
- (wiki-locate-dir wiki-site)
- (lambda ()
- (wiki-mode)
- (setq-local wiki-site wiki-site)
- )
- title)))
+ (unless (and wiki-fetch-prefer-local
+ (wiki-find-file
+ title
+ (wiki-locate-dir wiki-site)))
+ (wiki-fetch-url
+ (format "%s?action=download;id=%s"
+ (plist-get wiki-site-info :base-url)
+ title)
+ (wiki-locate-dir wiki-site)
+ (lambda ()
+ (wiki-mode)
+ (setq-local wiki-site wiki-site)
+ )
+ title))))
(defun wiki-engine-moinmoin-fetch (wiki-site title)
(let ((wiki-site-info (alist-get wiki-site wiki-sites)))
(cl-assert (eq (plist-get wiki-site-info :engine) 'moinmoin))
- (wiki-fetch-url
- (format "%s%s?action=raw"
- (plist-get wiki-site-info :base-url)
- title)
- (wiki-locate-dir wiki-site)
- (lambda ()
- (wiki-mode)
- (setq-local wiki-site wiki-site)
- )
- title)))
+ (unless (and wiki-fetch-prefer-local
+ (wiki-find-file
+ title
+ (wiki-locate-dir wiki-site)))
+ (wiki-fetch-url
+ (format "%s%s?action=raw"
+ (plist-get wiki-site-info :base-url)
+ title)
+ (wiki-locate-dir wiki-site)
+ (lambda ()
+ (wiki-mode)
+ (setq-local wiki-site wiki-site)
+ )
+ title))))
(defun wiki-locate-dir (wiki-site)
"Locate the directory for a WIKI-SITE."
(expand-file-name (format "%s" wiki-site) wiki-local-dir))
-(defun wiki-local-find-file (title &optional dir create-if-not-exists
- extension)
+(defun wiki-find-file (title &optional dir create-if-not-exists
+ extension)
"Find local TITLE in DIR.
Returns the file-name if success, and nil otherwise. If
CREATE-IF-NOT-EXISTS is non-nil, creates the file is not found.
DIR defaults to `default-directory'."
+ (interactive (list (read-file-name "Find wiki file: ")))
(unless dir (setq dir default-directory))
(let ((file-name (expand-file-name
(if extension
@@ -99,6 +108,7 @@ DIR defaults to `default-directory'."
dir)))
(when (or (file-exists-p file-name) create-if-not-exists)
(find-file file-name)
+ (wiki-mode)
file-name)))
(defun wiki-engine-fetcher (wiki-site-info)