diff options
author | Yuchen Pei <id@ypei.org> | 2023-07-10 13:48:16 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2023-07-10 13:48:16 +1000 |
commit | fe9c1a19d71ab757b9a20e0f601b80b2ac7761c6 (patch) | |
tree | eafd38a336645d0131c1b4634402401839bf4f29 /wiki-markup.el | |
parent | 161752ee1943dbb25060a1488086da1a00aeaadb (diff) |
Enhance local navigation.
Add `wiki-find-file' to open a local file in wiki-mode.
Guess the wikisite id based on the default directory.
Diffstat (limited to 'wiki-markup.el')
-rw-r--r-- | wiki-markup.el | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/wiki-markup.el b/wiki-markup.el index 341610a..d146c18 100644 --- a/wiki-markup.el +++ b/wiki-markup.el @@ -68,12 +68,25 @@ (defvar wiki-outline-regexp "=+.*=+\ *$") +(defvar wiki-mode-hook '(wiki-guess-site)) + (defvar-local wiki-site nil "The identifier of the wiki site") (defun wiki-follow-wikilink-action (data) "Button action to follow a wikilink" (funcall (wiki-site-fetcher wiki-site) (alist-get 'title data))) +(defun wiki-guess-site () + "Guess the wiki-site from the default directory." + (setq-local wiki-site + (let ((guessed + (intern (file-name-base + (directory-file-name default-directory))))) + (if (alist-get guessed wiki-sites) + guessed + 'local))) + ) + (defun wiki-outline-level () (when (looking-at "\\(=+\\).*[^=]\\(=+\\)\\ *$") (min (length (match-string 1)) |