From 4d5ee2ead874c7a436faa8754eb99215927ea94d Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 27 Jun 2021 16:59:44 -0400 Subject: dir rename ./sundry (from ./misc) --- sundry/misc/editor-syntax-etc/README | 90 + sundry/misc/editor-syntax-etc/emacs/README | 4 + .../emacs/sisu-spine-mode-autoloads.el | 10 + .../editor-syntax-etc/emacs/sisu-spine-mode.el | 493 + sundry/misc/editor-syntax-etc/gedit/sisu.lang | 128 + sundry/misc/editor-syntax-etc/kate/sisu.xml | 178 + sundry/misc/editor-syntax-etc/nano/nanorc | 221 + .../misc/editor-syntax-etc/nedit/sisu_nedit.pats | 79 + sundry/misc/editor-syntax-etc/vim/colors/8.vim | 65 + .../misc/editor-syntax-etc/vim/colors/def-ruby.vim | 223 + .../misc/editor-syntax-etc/vim/colors/def-sisu.vim | 223 + sundry/misc/editor-syntax-etc/vim/colors/def.vim | 223 + .../editor-syntax-etc/vim/colors/def256-ruby.vim | 195 + .../editor-syntax-etc/vim/colors/def256-sisu.vim | 195 + .../misc/editor-syntax-etc/vim/colors/def256.vim | 195 + .../vim/colors/frugal-cterm-ruby.vim | 66 + .../vim/colors/frugal-cterm-sisu.vim | 66 + .../editor-syntax-etc/vim/colors/frugal-cterm.vim | 69 + .../misc/editor-syntax-etc/vim/colors/frugal.vim | 66 + sundry/misc/editor-syntax-etc/vim/colors/slate.vim | 75 + .../vim/colors/sparse-cterm-ruby.vim | 66 + .../vim/colors/sparse-cterm-sisu.vim | 66 + sundry/misc/editor-syntax-etc/vim/filetype.vim | 8 + .../misc/editor-syntax-etc/vim/ftplugin/sisu.vim | 224 + .../misc/editor-syntax-etc/vim/ftplugin/sisurb.vim | 7 + .../misc/editor-syntax-etc/vim/rc/vimrc_statusline | 110 + sundry/misc/editor-syntax-etc/vim/syntax/sisu.vim | 277 + .../misc/editor-syntax-etc/vim/templates/ssi.tpl | 30 + .../misc/editor-syntax-etc/vim/templates/ssm.tpl | 30 + .../misc/editor-syntax-etc/vim/templates/sst.tpl | 30 + sundry/misc/editor-syntax-etc/vim/vim-sisu.yaml | 7 + sundry/misc/ext_lib/src/arsd/README | 2 + sundry/misc/ext_lib/src/arsd/cgi.d | 10315 +++++++++++++++++++ sundry/misc/util/d/cgi/search/README | 11 + sundry/misc/util/d/cgi/search/dub.sdl | 16 + .../d/cgi/search/src/spine_cgi_sqlite_search.d | 963 ++ sundry/misc/util/d/tools/markup_conversion/README | 1 + .../endnotes_inline_from_binary.d | 123 + .../d/tools/markup_conversion/markup_changes.d | 136 + .../markup_changes_header_and_content.d | 244 + ...arkup_conversion_from_sisu_ruby_to_sisu_spine.d | 367 + sundry/misc/util/d/tools/spine_scaffold.d | 134 + sundry/misc/util/rb/cgi/spine.search.cgi | 952 ++ sundry/misc/util/rb/tex/dr_tex.rb | 120 + 44 files changed, 17103 insertions(+) create mode 100644 sundry/misc/editor-syntax-etc/README create mode 100644 sundry/misc/editor-syntax-etc/emacs/README create mode 100644 sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el create mode 100644 sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode.el create mode 100644 sundry/misc/editor-syntax-etc/gedit/sisu.lang create mode 100644 sundry/misc/editor-syntax-etc/kate/sisu.xml create mode 100644 sundry/misc/editor-syntax-etc/nano/nanorc create mode 100644 sundry/misc/editor-syntax-etc/nedit/sisu_nedit.pats create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/8.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/def-ruby.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/def-sisu.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/def.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/def256-ruby.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/def256-sisu.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/def256.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/frugal-cterm-ruby.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/frugal-cterm-sisu.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/frugal-cterm.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/frugal.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/slate.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/sparse-cterm-ruby.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/colors/sparse-cterm-sisu.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/filetype.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/ftplugin/sisu.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/ftplugin/sisurb.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/rc/vimrc_statusline create mode 100644 sundry/misc/editor-syntax-etc/vim/syntax/sisu.vim create mode 100644 sundry/misc/editor-syntax-etc/vim/templates/ssi.tpl create mode 100644 sundry/misc/editor-syntax-etc/vim/templates/ssm.tpl create mode 100644 sundry/misc/editor-syntax-etc/vim/templates/sst.tpl create mode 100644 sundry/misc/editor-syntax-etc/vim/vim-sisu.yaml create mode 100644 sundry/misc/ext_lib/src/arsd/README create mode 100644 sundry/misc/ext_lib/src/arsd/cgi.d create mode 100644 sundry/misc/util/d/cgi/search/README create mode 100644 sundry/misc/util/d/cgi/search/dub.sdl create mode 100644 sundry/misc/util/d/cgi/search/src/spine_cgi_sqlite_search.d create mode 100644 sundry/misc/util/d/tools/markup_conversion/README create mode 100755 sundry/misc/util/d/tools/markup_conversion/endnotes_inline_from_binary.d create mode 100644 sundry/misc/util/d/tools/markup_conversion/markup_changes.d create mode 100755 sundry/misc/util/d/tools/markup_conversion/markup_changes_header_and_content.d create mode 100755 sundry/misc/util/d/tools/markup_conversion/markup_conversion_from_sisu_ruby_to_sisu_spine.d create mode 100755 sundry/misc/util/d/tools/spine_scaffold.d create mode 100755 sundry/misc/util/rb/cgi/spine.search.cgi create mode 100755 sundry/misc/util/rb/tex/dr_tex.rb (limited to 'sundry/misc') diff --git a/sundry/misc/editor-syntax-etc/README b/sundry/misc/editor-syntax-etc/README new file mode 100644 index 0000000..c03f356 --- /dev/null +++ b/sundry/misc/editor-syntax-etc/README @@ -0,0 +1,90 @@ +This directory + ./data/sisu/conf/editor-syntax-etc/ + /usr/share/sisu/conf/editor-syntax-etc/ +contains rudimentary sisu syntax highlighting files for: + +* (g)vim + * package: sisu-vim + * status: largely done + there is a vim syntax highlighting and folds component + +* gedit +* gobby + file: sisu.lang + place in: + /usr/share/gtksourceview-1.0/language-specs + or + ~/.gnome2/gtksourceview-1.0/language-specs + * status: very basic syntax highlighting + * comments: this editor features display line wrap and is used by Goby! + +* nano + file: nanorc + save as: + ~/.nanorc + includes: + * status: basic syntax highlighting + * comments: assumes dark background + no display line-wrap + does line breaks + +* diakonos (an editor written in ruby) + file: diakonos.conf + save as: + ~/.diakonos/diakonos.conf + includes: + * status: basic syntax highlighting + * comments: assumes dark background + no display line-wrap + +* kate & kwrite http://kate.kde.org + file: sisu.xml + place in: + /usr/share/apps/katepart/syntax + or + ~/.kde/share/apps/katepart/syntax + [settings::configure kate::{highlighting,filetypes}] + [tools::highlighting::{markup,scripts}::SiSU] + +* nedit + file: sisu_nedit.pats + nedit -import sisu_nedit.pats + * status: a very clumsy first attempt + [not really done] + * comments: this editor features display line wrap + +* emacs + files: sisu-mode.el + to file ~/.emacs add the following 2 lines: + (add-to-list 'load-path "/usr/share/sisu-examples/config/syntax_hi") + (require 'sisu-mode.el) + [not done / not yet included] + +* vim & gvim + files: sisu-vim + package is the most comprehensive sisu syntax highlighting and editor + environment provided to date (is for vim/ gvim, and is separate from the + contents of this directory) + on debian: + aptitude install sisu-vim + * status: this includes: + syntax highlighting + vim folds + some error checking + * comments: this editor features display line wrap + +NOTE: + +[SiSU parses files with long lines or line breaks, +but, display linewrap (without line-breaks) is a +convenient editor feature to have for sisu markup] + +kde-config --prefix +KDEDIR/share/apps/katepart/syntax/ +KDEHOME/share/apps/katepart/syntax +[In the configure dialog in kate, go to the "Editor->highlighting" page and +>select a highlight to change the mimetype/pattern associations for it.] +/etc/mime.types +/usr/share/mime/text +# +# * aeditor (an editor written in ruby) diff --git a/sundry/misc/editor-syntax-etc/emacs/README b/sundry/misc/editor-syntax-etc/emacs/README new file mode 100644 index 0000000..6dabf72 --- /dev/null +++ b/sundry/misc/editor-syntax-etc/emacs/README @@ -0,0 +1,4 @@ +; put this into your .emacs file, then use the mode file: + +(load-file "~/emacs/el/sisu-spine-mode.el") +(add-to-list 'auto-mode-alist '("\\.sst$" . sisu-spine-mode)) diff --git a/sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el b/sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el new file mode 100644 index 0000000..4cc6332 --- /dev/null +++ b/sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode-autoloads.el @@ -0,0 +1,10 @@ +(add-to-list 'load-path (or (file-name-directory #$) (car load-path))) +(autoload 'sisu-spine-mode "sisu-spine-mode" "\ +Major mode for editing SiSU (spine) markup files. +SiSU (https://www.sisudoc.org/) document structuring, publishing +and search. + +\(fn)" t nil) +(add-to-list 'auto-mode-alist '("\\.sst\\'" . sisu-spine-mode)) +(add-to-list 'auto-mode-alist '("\\.ssm\\'" . sisu-spine-mode)) +(add-to-list 'auto-mode-alist '("\\.ssi\\'" . sisu-spine-mode)) diff --git a/sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode.el b/sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode.el new file mode 100644 index 0000000..773fa5c --- /dev/null +++ b/sundry/misc/editor-syntax-etc/emacs/sisu-spine-mode.el @@ -0,0 +1,493 @@ +;;; sisu-spine-mode.el --- Major mode for SiSU (spine parser) markup text + +;; Copyright (C) 2011, 2021 Free Software Foundation, Inc. + +;; Author: Ralph Amissah & Ambrose Kofi Laing +;; Maintainer: Ralph Amissah +;; Keywords: text, syntax, processes, tools +;; Version: 8.0.0 +;; URL: https://www.sisudoc.org/ +;; originally looked at (based on) doc-mode, with kind permission of the author +;; Author: SUN, Tong , (c)2001-6, all right reserved +;; Version: $Date: 2006/01/19 03:13:41 $ $Revision: 1.14 $ +;; Home URL: https://xpt.sourceforge.net/ +;; with contributions from Kevin Ryde and Stefan Monnier + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. +;; +;; This program 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 General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;; Viva Software Libre! +;; Support the free software movement! +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;;; Commentary: + +;; SiSU (https://www.sisudoc.org/) is a document structuring and +;; publishing framework. This package provides an Emacs major mode +;; for SiSU markup, as used by the spine parser (in D) which has a different +;; header (based on yaml) from the original sisu parser (in Ruby) which has +;; bespoke headers. + +;; When this package is installed, files ending in ".sst" are automatically +;; associated with sisu-spine-mode. If a file doesn't have a +;; .sst extension, add a first line: +;; # -*- sisuSpine -*- + +;; The documentation for the "Structure Of The Hierarchy Text" can be +;; found in the sisustring for the sisu-spine-mode function. + +;;; Code: + +;; Variables: + +(defgroup sisu-faces nil + "AsciiSisu highlighting" + :group 'sisus) + +;; == Colors +; color n is more prominent than color n+1 + +(defface sisu-title-1-face + `((((class color) + (background dark)) + (:foreground "brown3" :bold t :height 1.2 :inherit variable-pitch)) + (((class color) + (background light)) + (:foreground "brown3" :bold t :height 1.2 :inherit variable-pitch)) + (t (:weight bold :inherit variable-pitch))) + "Face for AsciiSisu titles at level 1." + :group 'sisu-faces) + +(defface sisu-title-2-face + `((((class color) + (background dark)) + (:foreground "yellow4" :bold t :height 1.1 :inherit variable-pitch)) + (((class color) + (background light)) + (:foreground "yellow4" :bold t :height 1.1 :inherit variable-pitch)) + (t (:weight bold :inherit variable-pitch))) + "Face for AsciiSisu titles at level 2." + :group 'sisu-faces) + +(defface sisu-title-3-face + `((((class color) + (background dark)) + (:foreground "sienna3" :bold t)) + (((class color) + (background light)) + (:foreground "sienna3" :bold t)) + (t (:weight bold))) + "Face for AsciiSisu titles at level 3." + :group 'sisu-faces) + +(defface sisu-title-4-face + `((((class color) + (background dark)) + (:foreground "burlywood3")) + (((class color) + (background light)) + (:foreground "burlywood3")) + (t ())) + "Face for AsciiSisu titles at level 4." + :group 'sisu-faces) + +(defface info-node + '((((class color) (background light)) (:foreground "brown" :bold t :italic t)) + (((class color) (background dark)) (:foreground "white" :bold t :italic t)) + (t (:bold t :italic t))) + "Face for Info node names." + :group 'sisu-faces) + +(defvar sisu-title-1 'sisu-title-1-face) +(defvar sisu-title-2 'sisu-title-2-face) +(defvar sisu-title-3 'sisu-title-3-face) +(defvar sisu-title-4 'sisu-title-4-face) + +(defvar sisu-general-font-lock-red1 font-lock-warning-face) +(defvar sisu-general-font-lock-red2 font-lock-comment-face) +(defvar sisu-general-font-lock-red3 font-lock-string-face) + +(defvar sisu-general-font-lock-green1 font-lock-type-face) +(defvar sisu-general-font-lock-green2 font-lock-constant-face) + +(defvar sisu-general-font-lock-blue1 font-lock-keyword-face) +(defvar sisu-general-font-lock-blue2 font-lock-function-name-face) +(defvar sisu-general-font-lock-blue3 font-lock-builtin-face) + +(defvar sisu-general-font-lock-yellow1 font-lock-variable-name-face) +(defvar sisu-general-font-lock-yellow2 font-lock-comment-face) + +;; == sisu-spine-mode settings + +(defvar sisu-spine-mode-hook nil + "Normal hook run when entering Sisu Text mode.") + +(defvar sisu-spine-mode-abbrev-table nil + "Abbrev table in use in Sisu-spine-mode buffers.") +(define-abbrev-table 'sisu-spine-mode-abbrev-table ()) + +(defconst sisu-font-lock-keywords + (eval-when-compile + (list + ;;grouped text --------- + ;(cons "^```[ ]code\\(.\\|\n\\)+?\n```\n" 'sisu-general-font-lock-red2) + (cons "^```[ ]+code.*?$\\|^```$" 'sisu-general-font-lock-red2) + (cons "^```[ ]+table.*?$\\|^```$" 'sisu-general-font-lock-red2) + (cons "^```[ ]+group$\\|^```$" 'sisu-general-font-lock-red2) + (cons "^```[ ]+block$\\|^```$" 'sisu-general-font-lock-red2) + (cons "^```[ ]+poem$\\|^```$" 'sisu-general-font-lock-red2) + (cons "^```[ ]+alt$\\|^```$" 'sisu-general-font-lock-red2) + ;;grouped text --------- + (cons "^group{\\|^}group" 'sisu-general-font-lock-red2) + (cons "^block{\\|^}block" 'sisu-general-font-lock-red2) + (cons "^code{\\|^}code" 'sisu-general-font-lock-red2) + (cons "^poem{\\|^}poem" 'sisu-general-font-lock-red2) + (cons "^alt{\\|^}alt" 'sisu-general-font-lock-red2) + (cons "^table{.+\\|^}table" 'sisu-general-font-lock-red2) + (cons "^{table[^}]+}" 'sisu-general-font-lock-red2) + + (list + (concat + "^\`\\{3\\}[ ]+code.*?$" + "\\(.\\|\n\\)+?" + "\`\\{3\\}$" + ) + '(1 sisu-general-font-lock-red2 t) + '(2 nil t) + '(3 sisu-general-font-lock-red2 t) + ) + (list + (concat + "^\`\\{3\\}[ ]+table.*?$" + "\\(.\\|\n\\)+?" + "\`\\{3\\}$" + ) + '(1 sisu-general-font-lock-red2 t) + '(2 nil t) + '(3 sisu-general-font-lock-red2 t) + ) + (list + (concat + "^\`\\{3\\}[ ]+\\(group\\|block\\|alt\\|poem\\)$" + "\\(.\\|\n\\)+?" + "^\`\\{3\\}$" + ) + '(1 sisu-general-font-lock-red2 t) + '(2 nil t) + '(3 sisu-general-font-lock-red2 t) + ) + + ;; footnote/endnote ---- + ;(cons "\~{.+?}\~" 'sisu-general-font-lock-green1) + (cons "\~{\\*\\*\\|\~{\\*\\|\~{\\|}\~" 'sisu-general-font-lock-red2) + (cons "\~\\[\\+\\|\~\\[\\*\\|\~\\[\\|\\]\~" 'sisu-general-font-lock-red2) + (cons "\~\\^ \\|^\\^\~ " 'sisu-general-font-lock-red2) + (list + (concat + "\\(\*\~\\)" + "\\([^ \r\t\n]+\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-blue2 t) + ) + + ;; emphasis (can be program configured to be bold italics or underscore) + (list + (concat + "\\([*]{\\)" + "\\([^}]+\\)" + "\\(}[*]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; bold ---------------- + (list + (concat + "\\([!]{\\)" + "\\([^}]+\\)" + "\\(}[!]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + (cons "\\*[^ ]+\\*" 'sisu-general-font-lock-red1) + (cons "^!_ .+" 'sisu-general-font-lock-red1) + + ;; italics ------------- + (list + (concat + "\\([/]{\\)" + "\\([^}]+\\)" + "\\(}[/]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-blue1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; underscore ---------- + (list + (concat + "\\([_]{\\)" + "\\([^}]+\\)" + "\\(\}[_]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; monospace ----------- + (list + (concat + "\\([#]{\\)" + "\\([^}]+\\)" + "\\(}[#]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; citation ------------ + (list + (concat + "\\([\"]{\\)" + "\\([^}]+\\)" + "\\(}[\"]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; inserted text ------- + (list + (concat + "\\([\+]{\\)" + "\\([^}]+\\)" + "\\(}[\+]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; strike through ------ + (list + (concat + "\\(\\-{\\)" + "\\([^}]+\\)" + "\\(}\\-\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; superscript --------- + (list + (concat + "\\(\\^{\\)" + "\\([^}]+\\)" + "\\(}\\^\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; subscript ----------- + (list + (concat + "\\([,]{\\)" + "\\([^}]+\\)" + "\\(}[,]\\)" + ) + '(1 sisu-general-font-lock-red1 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-red1 t) + ) + + ;; numbered list + (cons "^# \\|^_# " 'sisu-general-font-lock-red1) + + ;; bullet text + (cons "^_\\*[1-9] \\|^_\\* " 'sisu-general-font-lock-red1) + + ;; indented text + (cons "^_[1-9] " 'sisu-general-font-lock-red1) + (cons "^_[1-9]! " 'sisu-general-font-lock-red1) + + ;; hanging indented text [proposed enable when implemented] + (cons "^__[1-9] " 'sisu-general-font-lock-red1) + (cons "^_[0-9]_[0-9] " 'sisu-general-font-lock-red1) + (cons "^__[1-9]! " 'sisu-general-font-lock-red1) + (cons "^_[0-9]_[0-9]! " 'sisu-general-font-lock-red1) + + ;; url + (cons "\\(^\\|[ ]\\)https?:[/][/][^ \t\n\r<]+" 'sisu-general-font-lock-blue2) + + ;; Comment Lines + (cons "^% .*" 'sisu-general-font-lock-blue1) + + ;; page break + (cons "^\\(-\\\\\\\\-\\|=\\\\\\\\=\\|-\\.\\.-\\)" 'sisu-general-font-lock-red2) + + ;; line break + (cons " \\\\\\\\ " 'sisu-general-font-lock-red1) + + ;; line break (depreciated) + (cons "
" 'sisu-general-font-lock-red1) + + ;; Section titles + (list "^\\(\\([1-4]\\|:?[A-D]\\)\\~\\)\\(.*\\)" + '(1 sisu-title-1 t) + '(3 sisu-title-2 t) + ) + + ;; hyper-links + (list + (concat + "\\({~^\\|{\\)" + "\\([^}{]+\\)" + "\\(}https?:[/][/][^ \r\n\t<]+\\)" + ) + '(1 sisu-general-font-lock-blue2 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-blue2 t) + ) + + ;; book index + (list + (concat + "^\\(\={\\)" + "\\([^}{]+\\)" + "\\(}\\)$" + ) + '(1 sisu-general-font-lock-green1 t) + '(2 nil t) + '(3 sisu-general-font-lock-green1 t) + ) + + ;(cons "^\={.+}" 'sisu-general-font-lock-green1) + + ;; numbers + (cons "\\<[.0-9]+\\>" 'sisu-general-font-lock-green2) + + ;; bullets sisu_normal (nearly copied regexp) + (cons "^_\\([1-9*]\\|[1-9]\\*\\) " 'sisu-general-font-lock-blue2) + + ;; image links + (list + (concat + "\\({\\)" + "\\([^}{]+\\)" + "\\(}image\\)" + ) + '(1 sisu-general-font-lock-blue2 t) + '(2 sisu-general-font-lock-red1 t) + '(3 sisu-general-font-lock-blue2 t) + ) + + ;; insert file links + (list + (concat + "\\(<< \\)" + "\\([^ \r\t\n]+\\.ss\\)" + "\\(i\\|t\\)" + ) + '(1 sisu-general-font-lock-blue2 t) + '(2 sisu-general-font-lock-blue2 t) + '(3 sisu-general-font-lock-blue2 t) + ) + + ;; raw keywords + (list + (concat + "^\\(\\(" + "creator\\|" + "title\\|" + "date\\|" + "rights\\|" + "publisher\\|" + "classify\\|" + "identifier\\|" + "original\\|" + "notes\\|" + "links\\|" + "make\\|" + "\\):\\)\\(.*\\)" + ) + '(1 sisu-title-2 keep) + '(3 sisu-title-3 keep) + ) + ) + ) + "Default expressions to highlight in AsciiSisu mode." +) + +;; outline mode evil "folding" if available +;; (define-key evil-normal-state-map ",0" 'show-all) +;; (define-key evil-normal-state-map ",-" 'hide-body) +;; (define-key evil-normal-state-map ",+" 'show-subtree) +;; (define-key evil-normal-state-map ",=" 'show-subtree) + +;; + +;; Sisu & Autoload: + +;;;###autoload +(define-derived-mode sisu-spine-mode text-mode "SiSU" + "Major mode for editing SiSU files. +SiSU document structuring, publishing in multiple formats and search. +URL `https://www.sisudoc.org/'" + (modify-syntax-entry ?\' ".") + ;;(flyspell-mode nil) + + (make-local-variable 'paragraph-start) + (setq paragraph-start (concat "$\\|>" page-delimiter)) + (make-local-variable 'paragraph-separate) + (setq paragraph-separate paragraph-start) + (make-local-variable 'paragraph-ignore-fill-prefix) + (setq paragraph-ignore-fill-prefix t) + + (set (make-local-variable 'outline-regexp) + "^\\(\\([1-4]\\|:?[A-D]\\)\\~\\|\\@[a-z]+:\\( \\|$\\)\\)") + + (make-local-variable 'require-final-newline) + (setq require-final-newline t) + + (make-local-variable 'font-lock-defaults) + (setq font-lock-defaults + '(sisu-font-lock-keywords + nil ; KEYWORDS-ONLY: no + nil ; CASE-FOLD: no + ((?_ . "w")) ; SYNTAX-ALIST + )) + ;; Enable outlining. + ;; TODO with outlining make sure linum (line numbering) is off, + ;; else performance penalty, sucks bigtime + (outline-minor-mode 1)) + +;;;###autoload (add-to-list 'auto-mode-alist '("\\.ss[imt]\\'" . sisu-spine-mode)) + +(provide 'sisu-spine-mode) + +;; + +;;; sisu-spine-mode.el ends here diff --git a/sundry/misc/editor-syntax-etc/gedit/sisu.lang b/sundry/misc/editor-syntax-etc/gedit/sisu.lang new file mode 100644 index 0000000..b82d5f8 --- /dev/null +++ b/sundry/misc/editor-syntax-etc/gedit/sisu.lang @@ -0,0 +1,128 @@ + + + + + + + ^0~\S|^\@\S+:\s + \n\n + + + + ^(:[A-C]|[1-6])~[a-zA-Z0-9.?_-]*\s+.+ + + + + ^(!_|_[1-9]|_[1-9]?\*)\s + + + + ~\{ + \}~ + + + + [*]\{ + \}[*] + + + + !\{ + \}! + + + + /\{ + \}/ + + + + _\{ + \}_ + + + + \^{ + \}\^ + + + + ,{ + \}, + + + + [+]\{ + \}[+] + + + + [-]\{ + \}[-] + + + + [*]\S+[*] + + + + \{[^}]+\}(https?:\/\/\S+|image)\s + + + + \s\*~\S+ + + + + http[s]*:\/\/\S+ + + + + ^<<\s+\S+\.ss[ti] + + + + ^%+\s. + + + + ^code\{\s*$ + ^\}code\s*$ + + + + ^poem\{\s*$ + ^\}poem\s*$ + + + + ^group\{\s*$ + ^\}group\s*$ + + + + ^alt\{\s*$ + ^\}alt\s*$ + + + + <:(pb|np)> + + + + <:?br> + + + + ~\^(\s|$) + + + + ^\^~\s.+ + + + diff --git a/sundry/misc/editor-syntax-etc/kate/sisu.xml b/sundry/misc/editor-syntax-etc/kate/sisu.xml new file mode 100644 index 0000000..a8054f2 --- /dev/null +++ b/sundry/misc/editor-syntax-etc/kate/sisu.xml @@ -0,0 +1,178 @@ + + + + + + class + const + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sundry/misc/editor-syntax-etc/nano/nanorc b/sundry/misc/editor-syntax-etc/nano/nanorc new file mode 100644 index 0000000..30ba439 --- /dev/null +++ b/sundry/misc/editor-syntax-etc/nano/nanorc @@ -0,0 +1,221 @@ +## Sample initialization file for GNU nano +## Please note that you must have configured nano with --enable-nanorc +## for this file to be read! Also note that characters specially +## interpreted by the shell should not be escaped here. +## +## To make sure a value is not enabled, use "unset