'#!/usr/bin/env newlisp' Comment.Preproc '\n\n' Text.Whitespace ';; @module markdown' Comment.Single '\n' Text.Whitespace ';; @author cormullion' Comment.Single '\n' Text.Whitespace ";; @description a port of John Gruber's Markdown to newLISP" Comment.Single '\n' Text.Whitespace ';; @location http://unbalanced-parentheses.nfshost.com/' Comment.Single '\n' Text.Whitespace ';; @version of date 2011-10-02 22:36:02' Comment.Single '\n' Text.Whitespace ';; version history: at the end' Comment.Single '\n' Text.Whitespace ";; a port of John Gruber's Markdown.pl (http://daringfireball.net/markdown) script to newLISP..." Comment.Single '\n' Text.Whitespace ';; see his original Perl script for explanations of the fearsome regexen and' Comment.Single '\n' Text.Whitespace ';; byzantine logic, etc...' Comment.Single '\n' Text.Whitespace ';; TODO:' Comment.Single '\n' Text.Whitespace ';; the following Markdown tests fail:' Comment.Single '\n' Text.Whitespace ';; Inline HTML (Advanced) ... FAILED' Comment.Single '\n' Text.Whitespace ';; Links, reference style ... FAILED -- nested brackets ' Comment.Single '\n' Text.Whitespace ';; Links, shortcut references ... FAILED' Comment.Single '\n' Text.Whitespace ';; Markdown Documentation - Syntax ... FAILED' Comment.Single '\n' Text.Whitespace ';; Ordered and unordered lists ... FAILED -- a nested ordered list error' Comment.Single '\n' Text.Whitespace ';; parens in url : ![this is a stupid URL](http://example.com/(parens).jpg) see (Images.text)' Comment.Single '\n' Text.Whitespace ';; Add: email address scrambling' Comment.Single '\n\n' Text.Whitespace '(' Punctuation 'context' Keyword ' ' Text.Whitespace "'" Operator 'Hash' Literal.String.Symbol ')' Punctuation '\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace 'HashTable' Literal.String.Symbol ':' Operator 'HashTable' Literal.String.Symbol ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'build-escape-table' Name.Variable ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '*' Keyword 'escape-chars*' Literal.String.Symbol ' ' Text.Whitespace '[text]' Literal.String '\\`*_{}[]()>#+-.![/text]' Literal.String ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'dolist' Keyword ' ' Text.Whitespace '(' Punctuation 'c' Name.Variable ' ' Text.Whitespace '(' Punctuation 'explode' Keyword ' ' Text.Whitespace '*' Keyword 'escape-chars*' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace 'c' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'hash' Name.Variable ' ' Text.Whitespace 'c' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'init-hash' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace "; finds a hash identifier that doesn't occur anywhere in the text" Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'counter' Literal.String.Symbol ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'hash-prefix' Literal.String.Symbol ' ' Text.Whitespace '"HASH"' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'hash-id' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace 'hash-prefix' Literal.String.Symbol ' ' Text.Whitespace 'counter' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'do-while' Keyword ' ' Text.Whitespace '(' Punctuation 'find' Keyword ' ' Text.Whitespace 'hash-id' Literal.String.Symbol ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'hash-id' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace 'hash-prefix' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'inc' Keyword ' ' Text.Whitespace 'counter' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'Hash' Name.Variable ':' Operator 'build-escape-table' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'hash' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace 'hash-id' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'inc' Keyword ' ' Text.Whitespace 'counter' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'context' Keyword ' ' Text.Whitespace "'" Operator 'markdown' Literal.String.Symbol ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'markdown' Name.Variable ':' Operator 'markdown' Literal.String.Symbol ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'initialize' Name.Variable ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'Hash' Name.Variable ':' Operator 'init-hash' Literal.String.Symbol ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'unescape-special-chars' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'block-transforms' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'strip-link-definitions' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'protect' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'cleanup' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'initialize' Name.Variable ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '*' Keyword 'escape-pairs*' Literal.String.Symbol ' ' Text.Whitespace "'" Operator '(' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\\\' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '\\' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\`' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '`' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\*' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\_' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '[text]' Literal.String '\\\\\\{[/text]' Literal.String ' ' Text.Whitespace '[text]' Literal.String '{[/text]' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '[text]' Literal.String '\\\\\\}[/text]' Literal.String ' ' Text.Whitespace '[text]' Literal.String '}[/text]' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\[' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '[' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\]' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String ']' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\(' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '(' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\)' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String ')' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\>' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '>' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\#' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '#' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\+' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '+' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\-' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '-' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\\\.' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '.' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation '{' Literal.String '\\\\!' Literal.String '}' Literal.String ' ' Text.Whitespace '{' Literal.String '!' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '*' Keyword 'hashed-html-blocks*' Literal.String.Symbol ' ' Text.Whitespace "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '*' Keyword 'list' Keyword '-' Keyword 'level*' Literal.String.Symbol ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'block-transforms' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'form-paragraphs' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'protect' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'block-quotes' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'code-blocks' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'lists' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'horizontal-rules' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'headers' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'span-transforms' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'line-breaks' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'emphasis' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'amps-and-angles' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'auto-links' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'anchors' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'images' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'escape-special-chars' Name.Variable ' \n ' Text.Whitespace '(' Punctuation 'escape-special-chars' Name.Variable ' ' Text.Whitespace '(' Punctuation 'code-spans' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace "'" Operator 'inside-attributes' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'tokenize-html' Name.Variable ' ' Text.Whitespace 'xhtml' Literal.String.Symbol ')' Punctuation '\n' Text.Whitespace '; return list of tag/text portions of xhtml text' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'letn' Keyword ' ' Text.Whitespace '(' Punctuation '\n ' Text.Whitespace '(' Punctuation 'tag-match' Name.Variable ' ' Text.Whitespace '[text]' Literal.String '((?s:)|\n(?s:<\\?.*?\\?>)|\n(?:<[a-z/!$](?:[^<>]|\n(?:<[a-z/!$](?:[^<>]|\n(?:<[a-z/!$](?:[^<>]|\n(?:<[a-z/!$](?:[^<>]|\n(?:<[a-z/!$](?:[^<>]|\n(?:<[a-z/!$](?:[^<>])*>))*>))*>))*>))*>))*>))[/text]' Literal.String ')' Punctuation ' ' Text.Whitespace '; yeah, well...' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'str' Name.Variable ' ' Text.Whitespace 'xhtml' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'len' Name.Variable ' ' Text.Whitespace '(' Punctuation 'length' Keyword ' ' Text.Whitespace 'str' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'pos' Name.Variable ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'tokens' Name.Variable ' ' Text.Whitespace "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'while' Keyword ' ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'tag-start' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'find' Keyword ' ' Text.Whitespace 'tag-match' Literal.String.Symbol ' ' Text.Whitespace 'str' Literal.String.Symbol ' ' Text.Whitespace '8' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation '<' Name.Variable ' ' Text.Whitespace 'pos' Literal.String.Symbol ' ' Text.Whitespace 'tag-start' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'push' Keyword ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace "'" Operator 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'slice' Keyword ' ' Text.Whitespace 'str' Literal.String.Symbol ' ' Text.Whitespace 'pos' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation '-' Name.Variable ' ' Text.Whitespace 'tag-start' Literal.String.Symbol ' ' Text.Whitespace 'pos' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace 'tokens' Literal.String.Symbol ' ' Text.Whitespace '-' Keyword '1' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'push' Keyword ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace "'" Operator 'tag' Literal.String.Symbol ' ' Text.Whitespace '$0' Keyword ')' Punctuation ' ' Text.Whitespace 'tokens' Literal.String.Symbol ' ' Text.Whitespace '-' Keyword '1' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'str' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'slice' Keyword ' ' Text.Whitespace 'str' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation '+' Name.Variable ' ' Text.Whitespace 'tag-start' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'length' Keyword ' ' Text.Whitespace '$0' Keyword ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'pos' Literal.String.Symbol ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; leftovers' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation '<' Name.Variable ' ' Text.Whitespace 'pos' Literal.String.Symbol ' ' Text.Whitespace 'len' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'push' Keyword ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace "'" Operator 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'slice' Keyword ' ' Text.Whitespace 'str' Literal.String.Symbol ' ' Text.Whitespace 'pos' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation '-' Name.Variable ' ' Text.Whitespace 'len' Literal.String.Symbol ' ' Text.Whitespace 'pos' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace 'tokens' Literal.String.Symbol ' ' Text.Whitespace '-' Keyword '1' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace 'tokens' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'escape-special-chars' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'within-tag-attributes' Name.Variable ' ' Text.Whitespace 'nil' Keyword ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'temp' Name.Variable ' ' Text.Whitespace '(' Punctuation 'tokenize-html' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'dolist' Keyword ' ' Text.Whitespace '(' Punctuation 'pair' Name.Variable ' ' Text.Whitespace 'temp' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation '=' Name.Variable ' ' Text.Whitespace '(' Punctuation 'first' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace "'" Operator 'tag' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace "; 'tag" Comment.Single '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\\\' Literal.String '}' Literal.String ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '\\\\' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '[text]' Literal.String '(?<=.)(?=.)[/text]' Literal.String ' ' Text.Whitespace 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '`' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace "; 'text" Comment.Single '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'within-tag-attributes' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'encode-backslash-escapes' Name.Variable ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'setf' Keyword ' ' Text.Whitespace '(' Punctuation 'temp' Name.Variable ' ' Text.Whitespace '$idx' Keyword ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace '(' Punctuation 'first' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace 'new' Keyword '-' Keyword 'text' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; return as text' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'join' Keyword ' ' Text.Whitespace '(' Punctuation 'map' Keyword ' ' Text.Whitespace 'last' Keyword ' ' Text.Whitespace 'temp' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'encode-backslash-escapes' Name.Variable ' ' Text.Whitespace 't' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'dolist' Keyword ' ' Text.Whitespace '(' Punctuation 'pair' Name.Variable ' ' Text.Whitespace '*' Keyword 'escape-pairs*' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '(' Punctuation 'first' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace 't' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '14' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'encode-code' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; encode/escape certain characters inside Markdown code runs' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '&' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '"&"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '<' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '"<"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '>' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '">"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '\\\\' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '"{"' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '"{"' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\[' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '[' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\]' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String ']' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\\\' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '"\\\\"' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'code-spans' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '{' Literal.String '(?' Literal.String '}' Literal.String ' ' Text.Whitespace '(' Punctuation 'encode-code' Name.Variable ' ' Text.Whitespace '(' Punctuation 'trim' Keyword ' ' Text.Whitespace '$2' Keyword ')' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ')' Punctuation ' \n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'encode-alt' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '&' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '"&"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '"""' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'images' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'alt-text' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'url' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'title' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'ref' Keyword '-' Keyword 'regex' Keyword ' ' Text.Whitespace '{' Literal.String '(!\\[(.*?)\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'inline-regex' Name.Variable ' ' Text.Whitespace '{' Literal.String '(!\\[(.*?)\\]\\([ \\t]*?[ \\t]*(([\'"])(.*?)\\5[ \\t]*)?\\))' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'whole-match' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'result' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'id-ref' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'url' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; reference links ![alt text][id]' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace 'ref' Keyword '-' Keyword 'regex' Keyword ' \n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'whole-match' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ' ' Text.Whitespace "'" Operator 'alt-text' Literal.String.Symbol ' ' Text.Whitespace '$2' Keyword ' ' Text.Whitespace "'" Operator 'id-ref' Literal.String.Symbol ' ' Text.Whitespace '$3' Keyword ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'alt-text' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'alt-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'empty?' Name.Variable ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'id-ref' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'lower-case' Keyword ' ' Text.Whitespace 'alt-text' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'link-database*' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'first' Keyword ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'link-database*' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'url' Literal.String.Symbol ' ' Text.Whitespace 'nil' Keyword ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'url' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'link-database*' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; title' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'link-database*' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; no title' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'url' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'result' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' \n ' Text.Whitespace '{' Literal.String ''     Literal.String
'}'           Literal.String
' \n          ' Text.Whitespace
'alt-text'    Literal.String.Symbol
' '           Text.Whitespace
'{'           Literal.String
'' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'result' Literal.String.Symbol ' ' Text.Whitespace 'whole-match' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '0' Literal.String.Symbol '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '; inline image refs: ![alt text](url "optional title")' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace 'inline-regex' Literal.String.Symbol ' \n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'whole-match' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'alt-text' Literal.String.Symbol ' ' Text.Whitespace '$2' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'url' Literal.String.Symbol ' ' Text.Whitespace '$3' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '$6' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'alt-text' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'alt-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'alt-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'title' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' \n ' Text.Whitespace '{' Literal.String ''     Literal.String
'}'           Literal.String
' \n           ' Text.Whitespace
'alt-text'    Literal.String.Symbol
' '           Text.Whitespace
'{'           Literal.String
'' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '0' Literal.String.Symbol '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '; empty ones are possible' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '$1' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '!\\[(.*?)\\]\\([ \\t]*\\)' Literal.String '}' Literal.String ' \n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String
'}'           Literal.String
' '           Text.Whitespace
'$1'          Keyword
' '           Text.Whitespace
'{'           Literal.String
'' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'make-anchor' Name.Variable ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ' ' Text.Whitespace ')' Punctuation '\n' Text.Whitespace '; Link defs are in the form: ^[id]: url "optional title"' Comment.Single '\n' Text.Whitespace '; stored in link db list as (id (url title))' Comment.Single '\n' Text.Whitespace '; params are text to be linked and the id of the link in the db' Comment.Single '\n' Text.Whitespace '; eg bar 1 for [bar][1]' Comment.Single '\n\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'title' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'id' Name.Variable ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'url' Name.Variable ' ' Text.Whitespace 'nil' Keyword ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'link-text' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\n' Literal.String '}' Literal.String ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String ' ' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '[ ]?\\n' Literal.String '}' Literal.String ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String ' ' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'null?' Name.Variable ' ' Text.Whitespace 'id' Literal.String.Symbol ' ' Text.Whitespace ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'id' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'lower-case' Keyword ' ' Text.Whitespace 'link-text' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'not' Keyword ' ' Text.Whitespace '(' Punctuation 'nil' Keyword '?' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'id' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'link-database*' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'first' Keyword ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'id' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'link-database*' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'id' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'link-database*' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'url' Literal.String.Symbol ' ' Text.Whitespace 'nil' Keyword ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'url' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '[' Literal.String '}' Literal.String ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '][' Literal.String '}' Literal.String ' ' Text.Whitespace 'id-ref' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String ']' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'anchors' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'letn' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'nested-brackets' Name.Variable ' ' Text.Whitespace '{' Literal.String '(?>[^\\[\\]]+)*' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'ref' Keyword '-' Keyword 'link-regex' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '(\\[(' Literal.String '}' Literal.String ' ' Text.Whitespace 'nested-brackets' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String ')\\][ ]?(?:\\n[ ]*)?\\[(.*?)\\])' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'inline-regex' Name.Variable ' ' Text.Whitespace '{' Literal.String '(\\[(.*?)\\]\\([ ]*?[ ]*(([\'"])(.*?)\\5[ \\t]*)?\\))' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'link-text' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'url' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'title' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '; reference-style links: [link text] [id]' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '$1' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$2' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$3' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$4' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$5' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$6' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace "; i still don't think I should have to do this..." Comment.Single '\n \n ' Text.Whitespace '; what about this regex instead?' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'ref' Keyword '-' Keyword 'link-regex' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '(\\[(.*?)\\][ ]?\\[(.*?)\\])' Literal.String '}' Literal.String ')' Punctuation '\n \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace 'ref' Keyword '-' Keyword 'link-regex' Literal.String.Symbol ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'make-anchor' Name.Variable ' ' Text.Whitespace '$2' Keyword ' ' Text.Whitespace '$3' Keyword ')' Punctuation ' ' Text.Whitespace '8' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '; $2 is link text, $3 is id' Comment.Single '\n ' Text.Whitespace '; inline links: [link text](url "optional title")' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '$1' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$2' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$3' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$4' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$5' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$6' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace 'inline-regex' Literal.String.Symbol ' \n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'link-text' Literal.String.Symbol ' ' Text.Whitespace '$2' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'url' Literal.String.Symbol ' ' Text.Whitespace '$3' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '$6' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'title' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\*' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '*' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ' ' Text.Whitespace '{' Literal.String '_' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '^<(.*)>$' Literal.String '}' Literal.String ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' \n ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ' ' Text.Whitespace 'link-text' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String '\n ' Text.Whitespace ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '8' Literal.String.Symbol '\n ' Text.Whitespace ')' Punctuation ' ' Text.Whitespace '; replace' Comment.Single '\n ' Text.Whitespace ')' Punctuation ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'auto-links' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '<((https?|ftp):[^\'">\\s]+)>[/text]' Literal.String ' \n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ' ' Text.Whitespace '$1' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ')' Punctuation ' \n ' Text.Whitespace '0' Literal.String.Symbol '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '; to-do: email ...' Comment.Single '\n' Text.Whitespace ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'amps-and-angles' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n' Text.Whitespace '; Smart processing for ampersands and angle brackets' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '&(?!\\#?[xX]?(?:[0-9a-fA-F]+|\\w+);)[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '{' Literal.String '&' Literal.String '}' Literal.String '\n ' Text.Whitespace '10' Literal.String.Symbol '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '<(?![a-z/?\\$!])[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '{' Literal.String '<' Literal.String '}' Literal.String '\n ' Text.Whitespace '10' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'emphasis' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; italics/bold: strong first' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String ' (\\*\\*|__) (?=\\S) (.+?[*_]*) (?<=\\S) \\1 [/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ' ' Text.Whitespace '$2' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '8' Literal.String.Symbol ' \n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String ' (\\*|_) (?=\\S) (.+?) (?<=\\S) \\1 [/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ' ' Text.Whitespace '$2' Keyword ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '8' Literal.String.Symbol ' \n ' Text.Whitespace ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'line-breaks' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; handles line break markers' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '" {2,}\\n"' Literal.String ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '"
\\n"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'hex-str-to-unicode-char' Name.Variable ' ' Text.Whitespace 'strng' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; given a five character string, assume it\'s "U" + 4 hex chars and convert' Comment.Single '\n ' Text.Whitespace '; return the character...' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'char' Keyword ' ' Text.Whitespace '(' Punctuation 'int' Keyword ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '"0x"' Literal.String ' ' Text.Whitespace '(' Punctuation '1' Name.Variable ' ' Text.Whitespace 'strng' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ' ' Text.Whitespace '16' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'ustring' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; any four digit string preceded by U ' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '"U[0-9a-f]{4,}"' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'hex-str-to-unicode-char' Name.Variable ' ' Text.Whitespace '$0' Keyword ')' Punctuation ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'cleanup' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; cleanup the text by normalizing some possible variations' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '"\\r\\n|\\r"' Literal.String ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '"\\n"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '; standardize line ends' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'push' Keyword ' ' Text.Whitespace '"\\n\\n"' Literal.String ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '-' Keyword '1' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '; end with two returns' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'txt' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'detab' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '; convert tabs to spaces' Comment.Single '\n \n ' Text.Whitespace '; convert inline Unicode:' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'txt' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'ustring' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '"\\n[ \\t]+\\n"' Literal.String ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '"\\n\\n"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '; lines with only spaces and tabs' Comment.Single '\n ' Text.Whitespace ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'protect' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; protect or "hash html blocks" ' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'letn' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'nested-block-regex' Name.Variable ' ' Text.Whitespace '[text]' Literal.String '(^<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b(.*\\n)*?[ \\t]*(?=\\n+|\\Z))[/text]' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'liberal-tag-regex' Name.Variable ' ' Text.Whitespace '[text]' Literal.String '(^<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\\b(.*\\n)*?.*[ \\t]*(?=\\n+|\\Z))[/text]' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'hr-regex' Name.Variable ' ' Text.Whitespace '[text]' Literal.String '(?:(?<=\\n\\n)|\\A\\n?)([ ]{0,3}<(hr)\\b([^<>])*?/?>[ \\t]*(?=\\n{2,}|\\Z))[/text]' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'html-comment-regex' Name.Variable ' ' Text.Whitespace '[text]' Literal.String '(?:(?<=\\n\\n)|\\A\\n?)([ ]{0,3}(?s:)[ \\t]*(?=\\n{2,}|\\Z))[/text]' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'results' Name.Variable ' ' Text.Whitespace "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'chunk-count' Name.Variable ' ' Text.Whitespace '(' Punctuation 'length' Keyword ' ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'chunks' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'parse' Keyword ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '"\\n\\n"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'chunk-size' Name.Variable ' ' Text.Whitespace '500' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n \n ' Text.Whitespace "; due to a limitation in PCRE, long sections have to be divided up otherwise we'll crash" Comment.Single '\n ' Text.Whitespace '; so divide up long texts into chunks, then do the regex on each chunk' Comment.Single '\n ' Text.Whitespace '; not an ideal solution, but it works ok :( ' Comment.Single '\n \n ' Text.Whitespace '(' Punctuation 'for' Keyword ' ' Text.Whitespace '(' Punctuation 'i' Name.Variable ' ' Text.Whitespace '0' Literal.String.Symbol ' ' Text.Whitespace 'chunk-count' Literal.String.Symbol ' ' Text.Whitespace 'chunk-size' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; do a chunk' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'text-chunk' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'join' Keyword ' ' Text.Whitespace '(' Punctuation 'i' Name.Variable ' ' Text.Whitespace '(' Punctuation '-' Name.Variable ' ' Text.Whitespace '(' Punctuation 'min' Keyword ' ' Text.Whitespace 'chunk-count' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation '-' Name.Variable ' ' Text.Whitespace '(' Punctuation '+' Name.Variable ' ' Text.Whitespace 'i' Literal.String.Symbol ' ' Text.Whitespace 'chunk-size' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '1' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace 'i' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace 'chunks' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '"\\n\\n"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'dolist' Keyword ' ' Text.Whitespace '(' Punctuation 'rgx' Name.Variable ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace 'nested-block-regex' Literal.String.Symbol ' ' Text.Whitespace 'liberal-tag-regex' Literal.String.Symbol ' ' Text.Whitespace 'hr-regex' Literal.String.Symbol ' ' Text.Whitespace 'html-comment-regex' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace 'rgx' Literal.String.Symbol ' \n ' Text.Whitespace 'text-chunk' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'key' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'Hash' Name.Variable ':' Operator 'hash' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'push' Keyword ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace 'key' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ' ' Text.Whitespace ')' Punctuation ' ' Text.Whitespace '*' Keyword 'hashed-html-blocks*' Literal.String.Symbol ' ' Text.Whitespace '-' Keyword '1' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '"\\n\\n"' Literal.String ' ' Text.Whitespace 'key' Literal.String.Symbol ' ' Text.Whitespace '"\\n\\n"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; save this partial result' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'push' Keyword ' ' Text.Whitespace 'text-chunk' Literal.String.Symbol ' ' Text.Whitespace 'results' Literal.String.Symbol ' ' Text.Whitespace '-' Keyword '1' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace ')' Punctuation ' ' Text.Whitespace '; for' Comment.Single '\n ' Text.Whitespace '; return string result' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'join' Keyword ' ' Text.Whitespace 'results' Literal.String.Symbol ' ' Text.Whitespace '"\\n\\n"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'unescape-special-chars' Name.Variable ' ' Text.Whitespace 't' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace "; Swap back in all the special characters we've hidden. " Comment.Single '\n ' Text.Whitespace '(' Punctuation 'dolist' Keyword ' ' Text.Whitespace '(' Punctuation 'pair' Name.Variable ' ' Text.Whitespace '(' Punctuation 'HashTable' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '(' Punctuation 'last' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace 't' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'first' Keyword ' ' Text.Whitespace 'pair' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '10' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace 't' Literal.String.Symbol ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'strip-link-definitions' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; strip link definitions from the text and store them' Comment.Single '\n ' Text.Whitespace '; Link defs are in the form: ^[id]: url "optional title"' Comment.Single '\n ' Text.Whitespace '; stored in link db list as (id (url title))' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'link-db' Name.Variable ' ' Text.Whitespace "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'url' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'id' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'title' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '^[ ]{0,3}\\[(.+)\\]:[ \\t]*\\n?[ \\t]*?[ \\t]*\\n?[ \\t]*(?:(?<=\\s)["(](.+?)[")][ \\t]*)?(?:\\n+|\\Z)[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'id' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'lower-case' Keyword ' ' Text.Whitespace '$1' Keyword ')' Punctuation ' ' Text.Whitespace "'" Operator 'url' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'amps-and-angles' Name.Variable ' ' Text.Whitespace '$2' Keyword ')' Punctuation ' ' Text.Whitespace "'" Operator 'title' Literal.String.Symbol ' ' Text.Whitespace '$3' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace 'title' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '"' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'push' Keyword ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace 'id' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'list' Keyword ' ' Text.Whitespace 'url' Literal.String.Symbol ' ' Text.Whitespace 'title' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace 'link-db' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '$3' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '; necessary?' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ' ' Text.Whitespace '; remove from text' Comment.Single '\n ' Text.Whitespace ')' Punctuation ' \n ' Text.Whitespace '10' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '*' Keyword 'link-database*' Literal.String.Symbol ' ' Text.Whitespace 'link-db' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'horizontal-rules' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '^[ ]{0,2}([ ]?\\*[ ]?){3,}[ \\t]*$[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '"\\n
"' Literal.String '\n ' Text.Whitespace '14' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '^[ ]{0,2}([ ]? -[ ]?){3,}[ \\t]*$[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '"\\n
"' Literal.String '\n ' Text.Whitespace '14' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '^[ ]{0,2}([ ]? _[ ]?){3,}[ \\t]*$[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '"\\n
"' Literal.String '\n ' Text.Whitespace '14' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'headers' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; setext headers' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'level' Name.Variable ' ' Text.Whitespace '1' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '^(.+)[ \\t]*\\n=+[ \\t]*\\n+[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '"

"' Literal.String ' ' Text.Whitespace '(' Punctuation 'span-transforms' Name.Variable ' ' Text.Whitespace '$1' Keyword ')' Punctuation ' ' Text.Whitespace '"

\\n\\n"' Literal.String ')' Punctuation '\n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ' \n \n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '^(.+)[ \\t]*\\n-+[ \\t]*\\n+[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '"

"' Literal.String ' ' Text.Whitespace '(' Punctuation 'span-transforms' Name.Variable ' ' Text.Whitespace '$1' Keyword ')' Punctuation ' ' Text.Whitespace '"

\\n\\n"' Literal.String ')' Punctuation '\n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '; atx headers' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '^(\\#{1,6})\\s*(.+?)[ ]*\\#*(\\n+)[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'level' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'length' Keyword ' ' Text.Whitespace '$1' Keyword ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '""' Literal.String ' ' Text.Whitespace '(' Punctuation 'span-transforms' Name.Variable ' ' Text.Whitespace '$2' Keyword ')' Punctuation ' ' Text.Whitespace '"\\n\\n"' Literal.String ')' Punctuation '\n ' Text.Whitespace ')' Punctuation '\n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'lists' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'letn' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'marker-ul' Name.Variable ' ' Text.Whitespace '{' Literal.String '[*+-]' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'marker-ol' Name.Variable ' ' Text.Whitespace '{' Literal.String '\\d+[.]' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'marker-any' Name.Variable ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '(?:' Literal.String '}' Literal.String ' ' Text.Whitespace 'marker-ul' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '|' Literal.String '}' Literal.String ' ' Text.Whitespace 'marker-ol' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String ')' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'whole-list-regex' Name.Variable ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '[text]' Literal.String '(([ ]{0,3}([/text]' Literal.String ' ' Text.Whitespace 'marker-any' Literal.String.Symbol ' ' Text.Whitespace '[text]' Literal.String ')[ \\t]+)(?s:.+?)(\\z|\\n{2,}(?=\\S)(?![ \\t]*[/text]' Literal.String ' ' Text.Whitespace 'marker-any' Literal.String.Symbol ' ' Text.Whitespace '[text]' Literal.String '[ \\t]+)))[/text]' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'my-list' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'list' Keyword '-' Keyword 'type' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'my-result' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation '>' Name.Variable ' ' Text.Whitespace '*' Keyword 'list' Keyword '-' Keyword 'level*' Literal.String.Symbol ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '^' Literal.String '}' Literal.String ' ' Text.Whitespace 'whole-list-regex' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '(?:(?<=\\n\\n)|\\A\\n?)' Literal.String '}' Literal.String ' ' Text.Whitespace 'whole-list-regex' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace 'txt' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'my-list' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'find' Keyword ' ' Text.Whitespace '$3' Keyword ' ' Text.Whitespace 'marker-ul' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'list' Keyword '-' Keyword 'type' Literal.String.Symbol ' ' Text.Whitespace '"ul"' Literal.String ' ' Text.Whitespace "'" Operator 'marker-type' Literal.String.Symbol ' ' Text.Whitespace 'marker-ul' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'list' Keyword '-' Keyword 'type' Literal.String.Symbol ' ' Text.Whitespace '"ol"' Literal.String ' ' Text.Whitespace "'" Operator 'marker-type' Literal.String.Symbol ' ' Text.Whitespace 'marker-ol' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '[text]' Literal.String '\\n{2,}[/text]' Literal.String ' ' Text.Whitespace 'my-list' Literal.String.Symbol ' ' Text.Whitespace '"\\n\\n\\n"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'my-result' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'process' Keyword '-' Keyword 'list' Keyword '-' Keyword 'items' Literal.String.Symbol ' ' Text.Whitespace 'my-list' Literal.String.Symbol ' ' Text.Whitespace 'marker-any' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '\\s+$' Literal.String '}' Literal.String ' ' Text.Whitespace 'my-result' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '<' Literal.String '}' Literal.String ' ' Text.Whitespace 'list' Keyword '-' Keyword 'type' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '>' Literal.String '}' Literal.String ' ' Text.Whitespace '"\\n"' Literal.String ' ' Text.Whitespace 'my-result' Literal.String.Symbol ' ' Text.Whitespace '"\\n"' Literal.String ' ' Text.Whitespace '{' Literal.String '' Literal.String '}' Literal.String ' ' Text.Whitespace '"\\n"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '10' Literal.String.Symbol ' ' Text.Whitespace '; must be multiline' Comment.Single '\n ' Text.Whitespace ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'process' Keyword '-' Keyword 'list' Keyword '-' Keyword 'items' Literal.String.Symbol ' ' Text.Whitespace 'list' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace 'marker-any' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'list' Keyword '-' Keyword 'regex' Keyword ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '[text]' Literal.String '(\\n)?(^[ \\t]*)([/text]' Literal.String ' ' Text.Whitespace 'marker-any' Literal.String.Symbol ' ' Text.Whitespace '[text]' Literal.String ')[ \\t]+((?s:.+?)(\\n{1,2}))(?=\\n*(\\z|\\2([/text]' Literal.String ' ' Text.Whitespace 'marker-any' Literal.String.Symbol ' ' Text.Whitespace '[text]' Literal.String ')[ \\t]+))[/text]' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'item' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'leading-line' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'leading-space' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'result' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'inc' Keyword ' ' Text.Whitespace '*' Keyword 'list' Keyword '-' Keyword 'level*' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '[text]' Literal.String '\\n{2,}\\z[/text]' Literal.String ' ' Text.Whitespace 'list' Keyword '-' Keyword 'text' Literal.String.Symbol ' ' Text.Whitespace '"\\n"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '$1' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$2' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$3' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$4' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace "'" Operator '$5' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace 'list' Keyword '-' Keyword 'regex' Keyword '\n ' Text.Whitespace 'list' Keyword '-' Keyword 'text' Literal.String.Symbol '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'item' Literal.String.Symbol ' ' Text.Whitespace '$4' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'leading-line' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'leading-space' Literal.String.Symbol ' ' Text.Whitespace '$2' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'or' Keyword ' ' Text.Whitespace '(' Punctuation 'not' Keyword ' ' Text.Whitespace '(' Punctuation 'empty?' Name.Variable ' ' Text.Whitespace 'leading-line' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'ends-with' Keyword ' ' Text.Whitespace 'item' Literal.String.Symbol ' ' Text.Whitespace '"\\n{2,}"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'item' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'block-transforms' Name.Variable ' ' Text.Whitespace '(' Punctuation 'outdent' Name.Variable ' ' Text.Whitespace 'item' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; recurse for sub lists' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'item' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'lists' Name.Variable ' ' Text.Whitespace '(' Punctuation 'outdent' Name.Variable ' ' Text.Whitespace 'item' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'item' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'span-transforms' Name.Variable ' ' Text.Whitespace '(' Punctuation 'trim' Keyword ' ' Text.Whitespace 'item' Literal.String.Symbol ' ' Text.Whitespace '"\\n"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '
  • ' Literal.String '}' Literal.String ' ' Text.Whitespace 'item' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '
  • ' Literal.String '}' Literal.String ' ' Text.Whitespace '"\\n"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '10' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'dec' Keyword ' ' Text.Whitespace '*' Keyword 'list' Keyword '-' Keyword 'level*' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace 'list' Keyword '-' Keyword 'text' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'code-blocks' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'code-block' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'token-list' Name.Variable ' ' Text.Whitespace "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '(?:\\n\\n|\\A)((?:(?:[ ]{4}|\\t).*\\n+)+)((?=^[ ]{0,3}\\S)|\\Z)[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'code-block' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ')' Punctuation '\n ' Text.Whitespace "; format if Nestor module is loaded and it's not marked as plain" Comment.Single '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'and' Keyword ' ' Text.Whitespace '(' Punctuation 'not' Keyword ' ' Text.Whitespace '(' Punctuation 'starts-with' Keyword ' ' Text.Whitespace 'code-block' Literal.String.Symbol ' ' Text.Whitespace '" ;plain\\n"' Literal.String ')' Punctuation ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'context' Keyword '?' Literal.String.Symbol ' ' Text.Whitespace 'Nestor' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; format newlisp' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '; remove flag if present' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '"[ ]{4};newlisp\\n"' Literal.String ' ' Text.Whitespace 'code-block' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'code-block' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'protect' Name.Variable ' ' Text.Whitespace '(' Punctuation 'Nestor' Name.Variable ':' Operator 'nlx-to-html' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'Nestor' Name.Variable ':' Operator 'my-read' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'trim' Keyword ' ' Text.Whitespace '(' Punctuation 'detab' Name.Variable ' ' Text.Whitespace '(' Punctuation 'outdent' Name.Variable ' ' Text.Whitespace 'code-block' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '"\\n"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace 'code-block' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace "; don't format " Comment.Single '\n ' Text.Whitespace '(' Punctuation 'begin' Keyword '\n ' Text.Whitespace '; trim leading and trailing newlines' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '"[ ]{4};plain\\n"' Literal.String ' ' Text.Whitespace 'code-block' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'code-block' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'trim' Keyword ' ' Text.Whitespace '(' Punctuation 'detab' Name.Variable ' ' Text.Whitespace '(' Punctuation 'encode-code' Name.Variable ' ' Text.Whitespace '(' Punctuation 'outdent' Name.Variable ' ' Text.Whitespace 'code-block' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace '"\\n"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator '$1' Keyword ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'code-block' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '"\\n\\n
    "' Literal.String
    ' '           Text.Whitespace
    'code-block'  Literal.String.Symbol
    ' '           Text.Whitespace
    '"\\n
    \\n\\n"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '10' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'block-quotes' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'block-quote' Name.Variable ' ' Text.Whitespace '{' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '[text]' Literal.String '((^[ \\t]*>[ \\t]?.+\\n(.+\\n)*\\n*)+)[/text]' Literal.String '\n ' Text.Whitespace 'txt' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'begin' Keyword ' \n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'block-quote' Literal.String.Symbol ' ' Text.Whitespace '$1' Keyword ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '^[ ]*>[ ]?' Literal.String '}' Literal.String ' ' Text.Whitespace 'block-quote' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '^[ ]+$' Literal.String '}' Literal.String ' ' Text.Whitespace 'block-quote' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'block-quote' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'block-transforms' Name.Variable ' ' Text.Whitespace 'block-quote' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '; recurse ' Comment.Single '\n ' Text.Whitespace '; remove leading spaces' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' \n ' Text.Whitespace '{' Literal.String '(\\s*
    .+?
    )' Literal.String '}' Literal.String ' \n ' Text.Whitespace 'block-quote' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'trim' Keyword ' ' Text.Whitespace '$1' Keyword ')' Punctuation '\n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '"
    \\n"' Literal.String ' ' Text.Whitespace 'block-quote' Literal.String.Symbol ' ' Text.Whitespace '"\\n
    \\n\\n"' Literal.String ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'outdent' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '[text]' Literal.String '^(\\t|[ ]{1,4})[/text]' Literal.String ' ' Text.Whitespace 's' Literal.String.Symbol ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'detab' Name.Variable ' ' Text.Whitespace 's' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '[text]' Literal.String '(.*?)\\t[/text]' Literal.String ' \n ' Text.Whitespace 's' Literal.String.Symbol ' \n ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '$1' Keyword ' ' Text.Whitespace '(' Punctuation 'dup' Keyword ' ' Text.Whitespace '{' Literal.String ' ' Literal.String '}' Literal.String ' ' Text.Whitespace '(' Punctuation '-' Name.Variable ' ' Text.Whitespace '4' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation '%' Name.Variable ' ' Text.Whitespace '(' Punctuation 'length' Keyword ' ' Text.Whitespace '$1' Keyword ')' Punctuation ' ' Text.Whitespace '4' Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '2' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '(' Punctuation 'define' Keyword ' ' Text.Whitespace '(' Punctuation 'form-paragraphs' Name.Variable ' ' Text.Whitespace 'txt' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'let' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'grafs' Name.Variable ' ' Text.Whitespace "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'original' Name.Variable ' ' Text.Whitespace 'nil' Keyword ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'txt' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'trim' Keyword ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '"\\n"' Literal.String ')' Punctuation ')' Punctuation ' ' Text.Whitespace '; strip blank lines before and after' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'grafs' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'parse' Keyword ' ' Text.Whitespace 'txt' Literal.String.Symbol ' ' Text.Whitespace '"\\n{2,}"' Literal.String ' ' Text.Whitespace '0' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '; split ' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'dolist' Keyword ' ' Text.Whitespace '(' Punctuation 'p' Name.Variable ' ' Text.Whitespace 'grafs' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'set' Keyword ' ' Text.Whitespace "'" Operator 'original' Literal.String.Symbol ' ' Text.Whitespace '(' Punctuation 'lookup' Keyword ' ' Text.Whitespace 'p' Literal.String.Symbol ' ' Text.Whitespace '*' Keyword 'hashed-html-blocks*' Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '; html blocks' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'setf' Keyword ' ' Text.Whitespace '(' Punctuation 'grafs' Name.Variable ' ' Text.Whitespace '$idx' Keyword ')' Punctuation ' ' Text.Whitespace 'original' Literal.String.Symbol ')' Punctuation '\n ' Text.Whitespace '; wrap

    tags round everything else' Comment.Single '\n ' Text.Whitespace '(' Punctuation 'setf' Keyword ' ' Text.Whitespace '(' Punctuation 'grafs' Name.Variable ' ' Text.Whitespace '$idx' Keyword ')' Punctuation ' ' Text.Whitespace '(' Punctuation 'string' Keyword ' ' Text.Whitespace '{' Literal.String '

    ' Literal.String '}' Literal.String ' ' Text.Whitespace '(' Punctuation 'replace' Keyword ' ' Text.Whitespace '{' Literal.String '^[ ]*' Literal.String '}' Literal.String ' ' Text.Whitespace '(' Punctuation 'span-transforms' Name.Variable ' ' Text.Whitespace 'p' Literal.String.Symbol ')' Punctuation ' ' Text.Whitespace '{' Literal.String '}' Literal.String ' ' Text.Whitespace '(' Punctuation '+' Name.Variable ' ' Text.Whitespace '4' Literal.String.Symbol ' ' Text.Whitespace '8' Literal.String.Symbol ' ' Text.Whitespace '16' Literal.String.Symbol ')' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Literal.String '

    ' Literal.String '}' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text.Whitespace '(' Punctuation 'join' Keyword ' ' Text.Whitespace 'grafs' Literal.String.Symbol ' ' Text.Whitespace '"\\n\\n"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text.Whitespace '[text]' Literal.String '\n; three command line arguments: let\'s hope last one is a file\n(when (= 3 (length (main-args)))\n (println (markdown (read-file (main-args 2))))\n (exit))\n\n; hack for command-line and module loading\n(set \'level (sys-info 3))\n\n; if level is 2, then we\'re probably invoking markdown.lsp directly\n; if level is > 3, then we\'re probably loading it into another script...\n \n(when (= level 2)\n ; running on command line, read STDIN and execute:\n (while (read-line)\n (push (current-line) *stdin* -1))\n (println (markdown (join *stdin* "\\n")))\n (exit))\n[/text]' Literal.String '\n\n' Text.Whitespace ';; version 2011-09-16 16:31:29' Comment.Single '\n' Text.Whitespace ';; Changed to different hash routine. Profiling shows that hashing takes 40% of the execution time.' Comment.Single '\n' Text.Whitespace ';; Unfortunately this new version is only very slightly faster.' Comment.Single '\n' Text.Whitespace ";; Command-line arguments hack in previous version doesn't work." Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version 2011-08-18 15:04:40' Comment.Single '\n' Text.Whitespace ';; various fixes, and added hack for running this from the command-line:' Comment.Single '\n' Text.Whitespace ';; echo "hi there" | newlisp markdown.lsp ' Comment.Single '\n' Text.Whitespace ';; echo "hello world" | markdown.lsp ' Comment.Single '\n' Text.Whitespace ';; cat file.text | newlisp markdown.lsp' Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version 2010-11-14 17:34:52' Comment.Single '\n' Text.Whitespace ";; some problems in ustring. Probably remove it one day, as it's non standard..." Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version 2010-10-14 18:41:38' Comment.Single '\n' Text.Whitespace ';; added code to work round PCRE crash in (protect ...' Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version date 2010-07-10 22:20:25' Comment.Single '\n' Text.Whitespace ";; modified call to 'read' since lutz has changed it" Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version date 2009-11-16 22:10:10' Comment.Single '\n' Text.Whitespace ';; fixed bug in tokenize.html' Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version date 2008-10-08 18:44:46' Comment.Single '\n' Text.Whitespace ';; changed nth-set to setf to be version-10 ready. ' Comment.Single '\n' Text.Whitespace ';; This means that now this script will NOT work with' Comment.Single '\n' Text.Whitespace ';; earlier versions of newLISP!!!!!!!!!!!' Comment.Single '\n' Text.Whitespace ';; requires Nestor if you want source code colouring...' Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version date 2008-08-08 16:54:56' Comment.Single '\n' Text.Whitespace ';; changed (unless to (if (not ... :(' Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version date 2008-07-20 14:!2:29' Comment.Single '\n' Text.Whitespace ';; added hex-str-to-unicode-char ustring' Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version date 2008-03-07 15:36:09' Comment.Single '\n' Text.Whitespace ';; fixed load error' Comment.Single '\n' Text.Whitespace ';;' Comment.Single '\n' Text.Whitespace ';; version date 2007-11-17 16:20:57' Comment.Single '\n' Text.Whitespace ';; added syntax colouring module' Comment.Single '\n' Text.Whitespace ';; ' Comment.Single '\n' Text.Whitespace ';; version date 2007-11-14 09:19:42' Comment.Single '\n' Text.Whitespace ';; removed reliance on dostring for compatibility with 9.1' Comment.Single '\n\n\n' Text.Whitespace '; eof' Comment.Single '\n' Text.Whitespace