diff options
| author | Yuchen Pei <id@ypei.org> | 2023-07-09 10:40:47 +1000 | 
|---|---|---|
| committer | Yuchen Pei <id@ypei.org> | 2023-07-09 10:40:47 +1000 | 
| commit | ca1ed29bc4b638ed77fd25c11505829d2473d401 (patch) | |
| tree | a0aa67f85345867367ab83fe01ae21e6319d78ac | |
| parent | 117b50a45dd2e1d66e2c6c1e7aeae7ab4c221504 (diff) | |
moving wiki.el to a submodule
| -rw-r--r-- | .gitmodules | 3 | ||||
| -rw-r--r-- | emacs/.emacs.d/lisp/my/wiki-faces.el | 108 | ||||
| -rw-r--r-- | emacs/.emacs.d/lisp/my/wiki.el | 122 | ||||
| m--------- | emacs/.emacs.d/lisp/wiki.el | 0 | 
4 files changed, 3 insertions, 230 deletions
diff --git a/.gitmodules b/.gitmodules index 099b2e8..1a2e0fb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -85,3 +85,6 @@  [submodule "emacs/.emacs.d/lisp/dired-hist"]  	path = emacs/.emacs.d/lisp/dired-hist  	url = https://github.com/karthink/dired-hist +[submodule "emacs/.emacs.d/lisp/wiki.el"] +	path = emacs/.emacs.d/lisp/wiki.el +	url = https://g.ypei.me/wiki.el.git diff --git a/emacs/.emacs.d/lisp/my/wiki-faces.el b/emacs/.emacs.d/lisp/my/wiki-faces.el deleted file mode 100644 index 00a346a..0000000 --- a/emacs/.emacs.d/lisp/my/wiki-faces.el +++ /dev/null @@ -1,108 +0,0 @@ -;;; wiki-faces.el -- faces for wiki-mode -*- lexical-binding: t -*- - -;; Copyright (C) 2023 Free Software Foundation. - -;; Author: Yuchen Pei <id@ypei.org> -;; Package-Requires: ((emacs "28.2")) - -;; This file is part of dotted. - -;; dotted is free software: you can redistribute it and/or modify it under -;; the terms of the GNU Affero General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; dotted is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General -;; Public License for more details. - -;; You should have received a copy of the GNU Affero General Public -;; License along with dotted.  If not, see <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; faces for wiki-mode. - -;;; Code: - -(defgroup wiki-faces nil -  "Faces in wiki mode." -  :tag "Wiki Faces" -  :group 'wiki-appearance) - -(defface wiki-level-1 '((t :inherit outline-1)) -  "Face used for level 1 headlines." -  :group 'wiki-faces) - -(defvar wiki-level-1 'wiki-level-1 -  "Face used for level 1 headlines.") - -(defface wiki-level-2 '((t :inherit outline-2)) -  "Face used for level 2 headlines." -  :group 'wiki-faces) - -(defvar wiki-level-2 'wiki-level-2 -  "Face used for level 2 headlines.") - -(defface wiki-level-3 '((t :inherit outline-3)) -  "Face used for level 3 headlines." -  :group 'wiki-faces) - -(defvar wiki-level-3 'wiki-level-3 -  "Face used for level 3 headlines.") - -(defface wiki-level-4 '((t :inherit outline-4)) -  "Face used for level 4 headlines." -  :group 'wiki-faces) - -(defvar wiki-level-4 'wiki-level-4 -  "Face used for level 4 headlines.") - -(defface wiki-level-5 '((t :inherit outline-5)) -  "Face used for level 5 headlines." -  :group 'wiki-faces) - -(defvar wiki-level-5 'wiki-level-5 -  "Face used for level 5 headlines.") - -(defface wiki-level-6 '((t :inherit outline-6)) -  "Face used for level 6 headlines." -  :group 'wiki-faces) - -(defvar wiki-level-6 'wiki-level-6 -  "Face used for level 6 headlines.") - -(defface wiki-hr-face '((t :inherit font-lock-builtin-face)) -  "Wiki hrule face") - -(defvar wiki-hr-face 'wiki-hr-face -  "Wiki hrule face") - -(defface wiki-bold-italic '((t :inherit bold-italic)) -  "Wiki bold-italic face") - -(defvar wiki-bold-italic 'wiki-bold-italic -  "Wiki bold-italic face") - -(defface wiki-bold '((t :inherit bold)) -  "Wiki bold face") - -(defvar wiki-bold 'wiki-bold -  "Wiki bold face") - -(defface wiki-italic '((t :inherit italic)) -  "Wiki italic face") - -(defvar wiki-italic 'wiki-italic "Wiki italic face") - -(defface wiki-pre-face '((t :inherit org-code)) "Wiki pre face") - -(defvar wiki-pre-face 'wiki-pre-face "Wiki pre face") - -(defface wiki-link '((t :inherit org-link)) "Wiki link face") - -(defvar wiki-link 'wiki-link "Wiki link face") - -(provide 'wiki-faces) -;;; wiki-faces.el ends here diff --git a/emacs/.emacs.d/lisp/my/wiki.el b/emacs/.emacs.d/lisp/my/wiki.el deleted file mode 100644 index dce5194..0000000 --- a/emacs/.emacs.d/lisp/my/wiki.el +++ /dev/null @@ -1,122 +0,0 @@ -;;; wiki.el -- A wikitext mode -*- lexical-binding: t -*- - -;; Copyright (C) 2023 Free Software Foundation. - -;; Author: Yuchen Pei <id@ypei.org> -;; Package-Requires: ((emacs "28.2")) - -;; This file is part of dotted. - -;; dotted is free software: you can redistribute it and/or modify it under -;; the terms of the GNU Affero General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; dotted is distributed in the hope that it will be useful, but WITHOUT -;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General -;; Public License for more details. - -;; You should have received a copy of the GNU Affero General Public -;; License along with dotted.  If not, see <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; A wikitext mode. - -;;; Code: -(require 'wiki-faces) - -(defvar wiki-url-regexp "https?://[^ ]+") - -(defvar wiki-external-link-re -  (rx (seq "[[" -           (group (seq "http" -                       (opt "s") -                       "://" -                       (+ (not " ")))) -           (opt (seq " " (group (+? anything)))) -           "]]"))) - -(defvar wiki-internal-link-re -  (rx (seq "[[" -	         ;; Target -	         (group -	          (one-or-more -             (not (any "[|]")))) -		       ;; Label (optional) -		       (opt (seq "|" (group (+? anything)))) -		       "]]")) -  ;; "\\(\\[\\[\\)\\([^][|]+\\)\\(|\\)\\([^][|]+\\)\\(\\]\\]\\)" -  ) - -(defvar wiki-font-lock-keywords -  (list -   (cons "^======.*======\\ *$" 'wiki-level-6) -   (cons "^=====.*=====\\ *$" 'wiki-level-5) -   (cons "^====.*====\\ *$" 'wiki-level-4) -   (cons "^===.*===\\ *$" 'wiki-level-3) -   (cons "^==.*==\\ *$" 'wiki-level-2) -   (cons "^=.*=\\ *$" 'wiki-level-1) -   (cons "^----+\\ *$" 'wiki-hr-face) -   (cons "'''''[^ \t\n].*?[^ \t\n]'''''" 'wiki-bold-italic) -   (cons "'''[^ \t\n'].*?[^ \t\n']'''" 'wiki-bold) -   (cons "''[^ \t\n'].*?[^ \t\n']''" 'wiki-italic) -   (cons "^ .*$" 'wiki-pre-face) -   '(wiki-activate-external-links) -   '(wiki-activate-internal-links) -   )) - -(defvar wiki-outline-regexp "=+.*=+\ *$") - -(defun wiki-outline-level () -  (when (looking-at "\\(=+\\).*\\(=+\\)\ *$") -    (min (length (match-string 1)) -         (length (match-string 2)) -         6))) - -;; Like `org-activate-links' -(defun wiki-activate-links (link-re limit) -  (save-excursion -    (goto-char (point-min)) -    (while (re-search-forward link-re limit t) -      (let ((start (match-beginning 0)) -            (end (match-end 0)) -            (visible-start (or (match-beginning 2) (match-beginning 1))) -            (visible-end (or (match-end 2) (match-end 1))) -            ) -        (put-text-property start visible-start 'invisible t) -        (put-text-property start end 'font-lock-face 'wiki-link) -        (put-text-property visible-end end 'invisible t) -        (add-text-properties (1- visible-start) visible-start -                             '(rear-nonsticky (invisible))) -        (add-text-properties (1- visible-end) visible-end -                             '(rear-nonsticky (invisible))) -        )))) - -(defun wiki-activate-internal-links (limit) -  (wiki-activate-links wiki-internal-link-re limit)) - -(defun wiki-activate-external-links (limit) -  (wiki-activate-links wiki-external-link-re limit)) - -(define-derived-mode wiki-mode outline-mode "Wiki" -  "A wikitext mode." - -  (setq-local comment-start "<!--") -  (setq-local comment-end "-->") - -  ;; FIXME: this should not be necessary in outline mode -  (setq-local font-lock-defaults -              '(wiki-font-lock-keywords -                t -                nil -                nil -                (font-lock-extra-managed-props invisible font-lock-face))) -  (setq-local outline-regexp wiki-outline-regexp) -  (setq-local outline-level 'wiki-outline-level) -  ) - -(provide 'wiki) -;;; wiki.el ends here - diff --git a/emacs/.emacs.d/lisp/wiki.el b/emacs/.emacs.d/lisp/wiki.el new file mode 160000 +Subproject d2549f5ea26f55d98c9106448002adfc023793d  | 
