[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/kiwix c20df13 108/192: Put kiwix into a global-minor-mo
From: |
Stefan Monnier |
Subject: |
[elpa] externals/kiwix c20df13 108/192: Put kiwix into a global-minor-mode |
Date: |
Sat, 19 Dec 2020 00:41:43 -0500 (EST) |
branch: externals/kiwix
commit c20df1352e55a9b387fd1f9ab171b9bfa5b9fcc5
Author: stardiviner <numbchild@gmail.com>
Commit: stardiviner <numbchild@gmail.com>
Put kiwix into a global-minor-mode
---
kiwix.el | 86 +++++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 53 insertions(+), 33 deletions(-)
diff --git a/kiwix.el b/kiwix.el
index 6335208..1b54fe6 100644
--- a/kiwix.el
+++ b/kiwix.el
@@ -19,10 +19,14 @@
;;; Config:
;;
-;; (define-key my-prog-help-document-map (kbd "w") 'kiwix-at-point)
-;; (define-key my-prog-help-document-map (kbd "W") 'kiwix-at-point-interactive)
-;; (define-key my-prog-help-document-map (kbd "C-w") 'kiwix-launch-server)
-
+;; (use-package kiwix
+;; :ensure t
+;; :after org
+;; :bind (:map document-prefix
+;; ("w" . kiwix-at-point)
+;; ("W" . kiwix-at-point-interactive)
+;; ("M-w" . kiwix-launch-server))
+;; :init (setq kiwix-your-language-library "zh"))
;;; Usage:
;;
@@ -39,14 +43,14 @@
;;;###autoload
(declare-function 'org-link-set-parameters "org")
-(defgroup kiwix nil
+(defgroup kiwix-mode nil
"Kiwix customization options."
- :group 'kiwix)
+ :group 'kiwix-mode)
(defcustom kiwix-server-url "http://127.0.0.1:8000/"
"Specify Kiwix server URL."
:type 'string
- :group 'kiwix)
+ :group 'kiwix-mode)
(defcustom kiwix-server-command
(cond
@@ -58,7 +62,7 @@
(warn "You need to specify Windows Kiwix path. And send a PR to my
repo.")))
"Specify kiwix server command."
:type 'string
- :group 'kiwix)
+ :group 'kiwix-mode)
;;;###autoload
(defun kiwix-dir-detect ()
@@ -77,7 +81,7 @@
)))
"Specify the default Kiwix data profile path."
:type 'string
- :group 'kiwix)
+ :group 'kiwix-mode)
(defcustom kiwix-default-data-path
(when (kiwix-dir-detect)
@@ -85,18 +89,18 @@
(getenv "HOME") "/.www.kiwix.org/kiwix/" kiwix-default-data-profile-name))
"Specify the default Kiwix data path."
:type 'string
- :group 'kiwix)
+ :group 'kiwix-mode)
(defcustom kiwix-server-port "8000"
"Specify the default Kiwix server port."
:type 'string
- :group 'kiwix)
+ :group 'kiwix-mode)
;;;###autoload
(defcustom kiwix-support-org-mode-link t
"Add support for Org-mode Kiwix link."
:type 'boolean
- :group 'kiwix)
+ :group 'kiwix-mode)
(defvar kiwix-libraries
(when (kiwix-dir-detect)
@@ -140,7 +144,7 @@
(defcustom kiwix-default-library "wikipedia_en_all"
"The default kiwix library when library fragment in link not specified."
:type 'string
- :group 'kiwix)
+ :group 'kiwix-mode)
;; add default key-value pair to libraries alist.
(dolist
@@ -155,7 +159,7 @@
(defcustom kiwix-your-language-library "zh"
"Specify the library for your navtive language."
:type 'string
- :group 'kiwix)
+ :group 'kiwix-mode)
;; test
;; (kiwix-get-library-fullname "wikipedia_en")
@@ -166,7 +170,12 @@
(defcustom kiwix-search-interactively t
"`kiwix-at-point' search interactively."
:type 'boolean
- :group 'kiwix)
+ :group 'kiwix-mode)
+
+(defcustom kiwix-mode-prefix nil
+ "Specify kiwix-mode keybinding prefix before loading."
+ :type 'kbd
+ :group 'kiwix-mode)
;; launch Kiwix server
;;;###autoload
@@ -329,26 +338,37 @@ for query string and library interactively."
:description query)
link)))
+(defvar kiwix-mode-map
+ (let ((map (make-sparse-keymap)))
+ map)
+ "kiwix-mode map.")
+
+(defun kiwix-mode-enable ()
+ "Enable kiwix-mode."
+ (when kiwix-support-org-mode-link
+ (org-link-set-parameters "wikipedia" ; NOTE: use `wikipedia' for future
backend changing.
+ :follow #'org-wikipedia-link-open
+ :store #'org-wikipedia-store-link
+ :export #'org-wikipedia-link-export)
+ (add-hook 'org-store-link-functions 'org-wikipedia-store-link t)))
+
+(defun kiwix-mode-disable ()
+ "Disable kiwix-mode."
+ )
+
;;;###autoload
-(with-eval-after-load "org"
- (if kiwix-support-org-mode-link
- (progn
- (org-link-set-parameters "wikipedia"
- :follow #'org-wikipedia-link-open
- :store #'org-wikipedia-store-link
- :export #'org-wikipedia-link-export)
- (add-hook 'org-store-link-functions 'org-wikipedia-store-link t)
-
- ;; [[Wikipedia_Local:]]
- ;; (if (and
- ;; (member '("Wikipedia_Local" .
"http://127.0.0.1:8000/wikipedia_zh_all_2015-11/A/%s.html")
org-link-abbrev-alist)
- ;; (assoc "Wikipedia_Local" org-link-abbrev-alist))
- ;;
- ;; (setq org-link-abbrev-alist
- ;; (cons '("Wikipedia_Local" .
"http://127.0.0.1:8000/wikipedia_zh_all_2015-11/A/%s.html")
org-link-abbrev-alist))
- ;; )
- )))
+(define-minor-mode kiwix-mode
+ "Kiwix global minor mode for searching Kiwix serve."
+ :require 'kiwix-mode
+ :init-value nil
+ :lighter " Kiwix"
+ :group 'kiwix-mode
+ :keymap kiwix-mode-map
+ (if kiwix-mode (kiwix-mode-enable) (kiwix-mode-disable)))
+;;;###autoload
+(define-global-minor-mode global-kiwix-mode kiwix-mode
+ kiwix-mode)
(provide 'kiwix)
- [elpa] externals/kiwix a3ec3a9 090/192: fix void function `org-link-set-parameters` when Emacs loads., (continued)
- [elpa] externals/kiwix a3ec3a9 090/192: fix void function `org-link-set-parameters` when Emacs loads., Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix d43238f 092/192: Merge tag '0.6.1' into develop, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix ce7189a 094/192: Merge branch 'hotfix/void-function-org-link-set-parameters', Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 1d2b634 095/192: Merge tag 'void-function-org-link-set-parameters' into develop, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix a613eed 096/192: fix void function org-link-set-parameters 2., Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 57150a7 099/192: change org link protocol name from wiki: to wikipedia:, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix edea223 100/192: Merge branch 'release/0.7.0', Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix ab3e12b 101/192: Merge tag '0.7.0' into develop, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 86c6b1a 103/192: fix free variable link in function., Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix a62f9e7 104/192: improve store link result., Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix c20df13 108/192: Put kiwix into a global-minor-mode,
Stefan Monnier <=
- [elpa] externals/kiwix 6d09e10 109/192: remove dangling parenthesis, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 170483a 111/192: fix kiwix-dir directory accessible unless logic, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 04bbaeb 115/192: add option to whether using kiwix-serve Docker container, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix d7549a3 118/192: update kiwix.el config example in comments, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 9c02ff5 120/192: rename kiwix-get-library-fullname -> kiwix-get-library-filename, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix dc72a3a 121/192: add wikipedia: Org Mode link by default now, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 954b9e4 122/192: use library name directly instead of complex library abbrev etc., Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix ad95e67 123/192: improve README, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 15a5c3c 124/192: make kiwix-serve server port customize option, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 7786e70 126/192: improve README: add Kiwix installation, kiwix-serve Docker setup., Stefan Monnier, 2020/12/19