+ ;;grouped text ---------
+ ;(cons "^```[ ]code\\(.\\|\n\\)+?\n```\n" 'general-font-lock-red2)
+ (cons "^```[ ]+code.*?$\\|^```$" 'general-font-lock-red2)
+ (cons "^```[ ]+table.*?$\\|^```$" 'general-font-lock-red2)
+ (cons "^```[ ]+group$\\|^```$" 'general-font-lock-red2)
+ (cons "^```[ ]+block$\\|^```$" 'general-font-lock-red2)
+ (cons "^```[ ]+poem$\\|^```$" 'general-font-lock-red2)
+ (cons "^```[ ]+alt$\\|^```$" 'general-font-lock-red2)
+ ;;grouped text ---------
+ (cons "^group{\\|^}group" 'general-font-lock-red2)
+ (cons "^block{\\|^}block" 'general-font-lock-red2)
+ (cons "^code{\\|^}code" 'general-font-lock-red2)
+ (cons "^poem{\\|^}poem" 'general-font-lock-red2)
+ (cons "^alt{\\|^}alt" 'general-font-lock-red2)
+ (cons "^table{.+\\|^}table" 'general-font-lock-red2)
+ (cons "^{table[^}]+}" 'general-font-lock-red2)
+
+ (list
+ (concat
+ "^\`\\{3\\}[ ]+code.*?$"
+ "\\(.\\|\n\\)+?"
+ "\`\\{3\\}$"
+ )
+ '(1 general-font-lock-red2 t)
+ '(2 nil t)
+ '(3 general-font-lock-red2 t)
+ )
+ (list
+ (concat
+ "^\`\\{3\\}[ ]+table.*?$"
+ "\\(.\\|\n\\)+?"
+ "\`\\{3\\}$"
+ )
+ '(1 general-font-lock-red2 t)
+ '(2 nil t)
+ '(3 general-font-lock-red2 t)
+ )
+ (list
+ (concat
+ "^\`\\{3\\}[ ]+\\(group\\|block\\|alt\\|poem\\)$"
+ "\\(.\\|\n\\)+?"
+ "^\`\\{3\\}$"
+ )
+ '(1 general-font-lock-red2 t)
+ '(2 nil t)
+ '(3 general-font-lock-red2 t)
+ )
+
+ ;; footnote/endnote ----
+ ;(cons "\~{.+?}\~" 'general-font-lock-green1)
+ (cons "\~{\\*\\*\\|\~{\\*\\|\~{\\|}\~" 'general-font-lock-red2)
+ (cons "\~\\[\\+\\|\~\\[\\*\\|\~\\[\\|\\]\~" 'general-font-lock-red2)
+ (cons "\~\\^ \\|^\\^\~ " 'general-font-lock-red2)
+ (list
+ (concat
+ "\\(\*\~\\)"
+ "\\([^ \r\t\n]+\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-blue2 t)
+ )
+
+ ;; emphasis (can be program configured to be bold italics or underscore)
+ (list
+ (concat
+ "\\([*]{\\)"
+ "\\([^}]+\\)"
+ "\\(}[*]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; bold ----------------
+ (list
+ (concat
+ "\\([!]{\\)"
+ "\\([^}]+\\)"
+ "\\(}[!]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+ (cons "\\*[^ ]+\\*" 'general-font-lock-red1)
+ (cons "^!_ .+" 'general-font-lock-red1)
+
+ ;; italics -------------
+ (list
+ (concat
+ "\\([/]{\\)"
+ "\\([^}]+\\)"
+ "\\(}[/]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-blue1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; underscore ----------
+ (list
+ (concat
+ "\\([_]{\\)"
+ "\\([^}]+\\)"
+ "\\(\}[_]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; monospace -----------
+ (list
+ (concat
+ "\\([#]{\\)"
+ "\\([^}]+\\)"
+ "\\(}[#]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; citation ------------
+ (list
+ (concat
+ "\\([\"]{\\)"
+ "\\([^}]+\\)"
+ "\\(}[\"]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; inserted text -------
+ (list
+ (concat
+ "\\([\+]{\\)"
+ "\\([^}]+\\)"
+ "\\(}[\+]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; strike through ------
+ (list
+ (concat
+ "\\(\\-{\\)"
+ "\\([^}]+\\)"
+ "\\(}\\-\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; superscript ---------
+ (list
+ (concat
+ "\\(\\^{\\)"
+ "\\([^}]+\\)"
+ "\\(}\\^\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; subscript -----------
+ (list
+ (concat
+ "\\([,]{\\)"
+ "\\([^}]+\\)"
+ "\\(}[,]\\)"
+ )
+ '(1 general-font-lock-red1 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-red1 t)
+ )
+
+ ;; numbered list
+ (cons "^# \\|^_# " 'general-font-lock-red1)
+
+ ;; bullet text
+ (cons "^_\\*[1-9] \\|^_\\* " 'general-font-lock-red1)
+
+ ;; indented text
+ (cons "^_[1-9] " 'general-font-lock-red1)
+ (cons "^_[1-9]! " 'general-font-lock-red1)
+
+ ;; hanging indented text [proposed enable when implemented]
+ (cons "^__[1-9] " 'general-font-lock-red1)
+ (cons "^_[0-9]_[0-9] " 'general-font-lock-red1)
+ (cons "^__[1-9]! " 'general-font-lock-red1)
+ (cons "^_[0-9]_[0-9]! " 'general-font-lock-red1)
+
+ ;; url
+ (cons "\\(^\\|[ ]\\)http:[/][/][^ \t\n\r<]+" 'general-font-lock-blue2)
+
+ ;; Comment Lines
+ (cons "^% .*" 'general-font-lock-blue1)
+
+ ;; page break
+ (cons "^\\(-\\\\\\\\-\\|=\\\\\\\\=\\|-\\.\\.-\\)" 'general-font-lock-red2)
+
+ ;; line break
+ (cons " \\\\\\\\ " 'general-font-lock-red1)
+
+ ;; line break (depreciated)
+ (cons "<br>" '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
+ "\\({~^\\|{\\)"
+ "\\([^}{]+\\)"
+ "\\(}http:[/][/][^ \r\n\t<]+\\)"
+ )
+ '(1 general-font-lock-blue2 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-blue2 t)
+ )
+
+ ;; book index
+ (list
+ (concat
+ "^\\(\={\\)"
+ "\\([^}{]+\\)"
+ "\\(}\\)$"
+ )
+ '(1 general-font-lock-green1 t)
+ '(2 nil t)
+ '(3 general-font-lock-green1 t)
+ )
+
+ ;(cons "^\={.+}" 'general-font-lock-green1)
+
+ ;; numbers
+ (cons "\\<[.0-9]+\\>" 'general-font-lock-green2)
+
+ ;; bullets sisu_normal (nearly copied regexp)
+ (cons "^_\\([1-9*]\\|[1-9]\\*\\) " 'general-font-lock-blue2)
+
+ ;; image links
+ (list
+ (concat
+ "\\({\\)"
+ "\\([^}{]+\\)"
+ "\\(}image\\)"
+ )
+ '(1 general-font-lock-blue2 t)
+ '(2 general-font-lock-red1 t)
+ '(3 general-font-lock-blue2 t)
+ )
+
+ ;; insert file links
+ (list
+ (concat
+ "\\(<< \\)"
+ "\\([^ \r\t\n]+\\.ss\\)"
+ "\\(i\\|t\\)"
+ )
+ '(1 general-font-lock-blue2 t)
+ '(2 general-font-lock-blue2 t)
+ '(3 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."
+)
+
+;; enables outlining for sisu
+(add-hook 'sisu-mode-hook
+ 'outline-minor-mode)
+
+;;; outline mode "folding" if available
+;;; TODO make sure linum (line numbering) is off, else performance penalty, sucks bigtime
+;;(define-key evil-normal-state-map (kbd ",0") (lambda() (interactive) (show-all)))
+;;(define-key evil-normal-state-map (kbd ",-") (lambda() (interactive) (hide-body)))
+;;(define-key evil-normal-state-map (kbd ",+") (lambda() (interactive) (show-subtree)))
+;;(define-key evil-normal-state-map (kbd ",=") (lambda() (interactive) (show-subtree)))
+;;
+;;(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)