aboutsummaryrefslogtreecommitdiff
path: root/emacs/.emacs.d/lisp
diff options
context:
space:
mode:
authorYuchen Pei <id@ypei.org>2023-07-09 10:40:47 +1000
committerYuchen Pei <id@ypei.org>2023-07-09 10:40:47 +1000
commitca1ed29bc4b638ed77fd25c11505829d2473d401 (patch)
treea0aa67f85345867367ab83fe01ae21e6319d78ac /emacs/.emacs.d/lisp
parent117b50a45dd2e1d66e2c6c1e7aeae7ab4c221504 (diff)
moving wiki.el to a submodule
Diffstat (limited to 'emacs/.emacs.d/lisp')
-rw-r--r--emacs/.emacs.d/lisp/my/wiki-faces.el108
-rw-r--r--emacs/.emacs.d/lisp/my/wiki.el122
m---------emacs/.emacs.d/lisp/wiki.el0
3 files changed, 0 insertions, 230 deletions
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