[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/kiwix 954b9e4 122/192: use library name directly instea
From: |
Stefan Monnier |
Subject: |
[elpa] externals/kiwix 954b9e4 122/192: use library name directly instead of complex library abbrev etc. |
Date: |
Sat, 19 Dec 2020 00:41:45 -0500 (EST) |
branch: externals/kiwix
commit 954b9e476174e67d6a4f5e27c12a49107954339d
Author: stardiviner <numbchild@gmail.com>
Commit: stardiviner <numbchild@gmail.com>
use library name directly instead of complex library abbrev etc.
---
kiwix.el | 66 +++++++++++++++++-----------------------------------------------
1 file changed, 17 insertions(+), 49 deletions(-)
diff --git a/kiwix.el b/kiwix.el
index f5c65d9..a6599ef 100644
--- a/kiwix.el
+++ b/kiwix.el
@@ -103,12 +103,15 @@
(defvar kiwix-libraries
(when (kiwix-dir-detect)
- (mapcar #'(lambda (var)
- (replace-regexp-in-string "\.zim" "" var))
+ (mapcar #'kiwix--get-library-name
(directory-files
(concat kiwix-default-data-path "/data/library/") nil ".*\.zim")))
"A list of Kiwix libraries.")
+(defun kiwix--get-library-name (file)
+ "Extract library name from library file."
+ (replace-regexp-in-string "\.zim" "" file))
+
;; - examples:
;; - "wikipedia_en_all" - "wikipedia_en_all_2016-02"
;; - "wikipedia_zh_all" - "wikipedia_zh_all_2015-17"
@@ -116,60 +119,26 @@
;; - "wiktionary_zh_all" - "wiktionary_zh_all_2015-17"
;; - "wikipedia_en_medicine" - "wikipedia_en_medicine_2015-17"
-(defun kiwix-construct-libraries-abbrev-alist (alist)
- "Construct libraries abbrev alist from `ALIST'."
- (let* ((libraries-name
- (mapcar #'(lambda (library)
- (string-match "\\(.*\\)_[0-9]\\{4\\}-[0-9]\\{2\\}"
library)
- (let* ((library-name (match-string 1 library)))
- library-name))
- alist))
- (libraries-full-name alist))
- (cl-pairlis libraries-name libraries-full-name)))
-
-(defvar kiwix-libraries-abbrev-alist
- (kiwix-construct-libraries-abbrev-alist kiwix-libraries)
- "Alist of Kiwix libraries with name and full name.")
-
-(defun kiwix-select-library-name ()
- "Select Wikipedia library name abbrev."
- (completing-read "Wikipedia library abbrev: " (map-keys
kiwix-libraries-abbrev-alist)))
-
-(defun kiwix-get-library-filename (abbr)
- "Get Kiwix library full name which is associated with `ABBR'."
- (cdr (assoc abbr kiwix-libraries-abbrev-alist)))
-
-(defcustom kiwix-default-library "wikipedia_en_all"
+(defun kiwix-select-library ()
+ "Select Kiwix library name."
+ (completing-read "Kiwix library: " kiwix-libraries))
+
+(defcustom kiwix-default-library "wikipedia_en_all.zim"
"The default kiwix library when library fragment in link not specified."
:type 'string
+ :safe #'stringp
:group 'kiwix-mode)
-;; add default key-value pair to libraries alist.
-;; (dolist (cons (list (cons "default" (kiwix-get-library-filename
kiwix-default-library))
-;; (cons "en" (kiwix-get-library-filename "wikipedia_en"))
-;; (cons "zh" (kiwix-get-library-filename
"wikipedia_zh_all"))))
-;; (add-to-list 'kiwix-libraries-abbrev-alist cons))
-
(defcustom kiwix-your-language-library "zh"
"Specify the library for your navtive language."
:type 'string
- :group 'kiwix-mode)
-
-(defcustom kiwix-default-library "wikipedia.zim"
- "Specify default using kiwix library."
- :type 'string
:safe #'stringp
:group 'kiwix-mode)
-;; test
-;; (kiwix-get-library-filename "wikipedia_en")
-;; (kiwix-get-library-filename "default")
-;; (kiwix-get-library-filename "en")
-;; (kiwix-get-library-filename "zh")
-
(defcustom kiwix-search-interactively t
"`kiwix-at-point' search interactively."
:type 'boolean
+ :safe #'booleanp
:group 'kiwix-mode)
(defcustom kiwix-mode-prefix nil
@@ -192,7 +161,7 @@
"--name kiwix-serve "
"-v " (file-name-directory library-path) ":" "/data "
"kiwix/kiwix-serve"
- (kiwix-get-library-filename (kiwix-select-library-name))
".zim"))
+ (kiwix-select-library)))
(async-shell-command
(concat kiwix-server-command
library-option port daemon (shell-quote-argument
library-path))))))
@@ -203,7 +172,7 @@
(defun kiwix-query (query &optional library)
"Search `QUERY' in `LIBRARY' with Kiwix."
- (let* ((kiwix-library (if library library (kiwix-get-library-filename
"default")))
+ (let* ((kiwix-library (if library library (kiwix--get-library-name
kiwix-default-library)))
(url (concat
kiwix-server-url kiwix-library "/A/"
;; query need to be convert to URL encoding: "禅宗"
https://zh.wikipedia.org/wiki/%E7%A6%85%E5%AE%97
@@ -225,8 +194,8 @@ Or When prefix argument `INTERACTIVELY' specified, then
prompt
for query string and library interactively."
(interactive "P")
(let* ((library (if (or kiwix-search-interactively interactively)
- (kiwix-get-library-filename (kiwix-select-library-name))
- (kiwix-get-library-filename "default")))
+ (kiwix-select-library)
+ (kiwix--get-library-name kiwix-default-library)))
(query (if interactively
(read-string "Kiwix Search: "
(if mark-active
@@ -243,7 +212,6 @@ for query string and library interactively."
(error "Your query is invalid")
(kiwix-query query library))))
-
;;;###autoload
(defun kiwix-at-point-interactive ()
"Interactively input to query with kiwix."
@@ -324,7 +292,7 @@ for query string and library interactively."
;; remove those interactive functions. use normal function instead.
(when (eq major-mode 'wiki-mode)
(let* ((query (read-string "Wikipedia Query with Kiwix: "))
- (library (kiwix-select-library-name))
+ (library (kiwix-select-library))
(link (concat "wikipedia:" "(" library "):" query)))
(org-store-link-props :type "wikipedia"
:link link
- [elpa] externals/kiwix ab3e12b 101/192: Merge tag '0.7.0' into develop, (continued)
- [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, 2020/12/19
- [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 <=
- [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
- [elpa] externals/kiwix e8bfe4e 127/192: update package description, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 2cec30b 132/192: add kiwix/kiwix-serve Docker image into installation section of README, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix c5b8f69 133/192: add a gender ping of kiwix-serve before query, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix d2ae338 130/192: fix org-link-set-parameters void function when package.el initialize., Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 04347e6 137/192: turn a request part into a separate function, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix f587833 135/192: make available testing before every query, Stefan Monnier, 2020/12/19
- [elpa] externals/kiwix 6c4d80a 136/192: fix `request' :error sentinel., Stefan Monnier, 2020/12/19