this repo has no description
at cactus 209 lines 6.4 kB view raw
1 2THIS FILE IS OUTDATED, DO NOT READ 3 4 5🔸🔶🟧 EXAMPLE 🟧🔶🔸 6 7═[HTML]══════════════════════════════════════ 8<link rel=stylesheet href=markup.css> 9<script src=parse.js></script> 10<script src=render.js></script> 11═[JS]════════════════════════════════════════ 12let element = document.createElement('div') 13element.classList.add('🍂') 14document.body.append(element) 15 16let text = "/test/ 123" 17 18Markup.convert(text, element) 19/* OR: */ 20let fragment = Markup.convert(text) 21element.append(fragment) 22═════════════════════════════════════════════ 23 24See ❲markup.css❳ for example styles 25 26🔸🔶🟧 SBS CONTENTAPI EXAMPLE 🟧🔶🔸 27 28═[HTML]═════════════════════════════════════════════ 29<link rel=stylesheet href=markup.css> 30<script src=parse.js></script> 31<script src=render.js></script> 32<script src=legacy.js></script> 33═[JS]═══════════════════════════════════════════════ 34let element = document.createElement('div') 35document.body.append(element) 36 37let message = { 38 text: "[i]test[/i] 123", 39 values: {m: 'bbcode'} 40} 41 42Markup.convert_lang(message.text, message.values.m, element) 43// result: <div class='🍂'><i>test</i> 123</div> 44// (set Markup.css_class to change the class name) 45/* OR: */ 46let fragment = convert_lang(message.text, message.values.m) 47element.append(fragment) 48element.classList.add('whatever') 49════════════════════════════════════════════════════ 50 51🔸🔶🟧 FUNCTIONS 🟧🔶🔸 52 53‹ParentElement› = ‹Element› OR ‹DocumentFragment› OR ‹Document› 54 55‹tree› = {type:ENUM(...), ?args:‹Object›, ?content:LIST(‹branch›)} 56 57‹branch› = ‹tree› OR ‹String› OR `true` 58 59‹parser› = FUNCTION(‹String›) ⤑ ‹tree› 60 61📒❲parse.js❳ 62 63 ┗🏭❲Markup_12y2:CLASS()❳ 64 65 ┣📜❲.prototype❳ 66 67 ┗📦❲new❳ 68 69 ┗📑❲.parse:‹parser›❳ 70 ⎝parser, outputs a tree 71 72📒❲render.js❳ 73 74 ┗🏭❲Markup_Render:CLASS()❳ 75 76 ┣📜❲.prototype❳ 77 78 ┗📦❲new❳ 79 80 ┣📑❲.render:FUNCTION(tree‹tree›, ?parent‹ParentNode›) ⤑ ‹ParentNode›❳ 81 ┃ ⎜renderer, converts the parser's tree into html. 82 ┃ ⎜if `parent` is passed, the output is inserted into that node. 83 ┃ ⎝otherwise, it creates and returns a new ‹DocumentFragment› 84 85 ┣📑❲.create:DICT ⤑ ❲FUNCTION(...) ⤑ ‹Node›❳❳ 86 87 ┗📑❲.url_scheme:DICT ⤑ ❲FUNCTION(‹URL›) ⤑ ‹String›❳❳ 88 89📒❲legacy.js❳ 90 91 ┗🏭❲Markup_Langs:CLASS()❳ 92 93 ┣📜❲.prototype❳ 94 95 ┗📦❲new❳ 96 97 ┣📑❲.12y2:‹parser›❳ 98 ┣📑❲.text:‹parser›❳ 99 ┣📑❲.12y:‹parser›❳ 100 ┣📑❲.bbcode:‹parser›❳ 101 ┗📑❲.plaintext:‹parser›❳ 102 103📒❲helpers.js❳ 104105 ┣🏭❲SbsLocation:CLASS(‹String›)❳ 106 ┃ ┃ 107 ┃ ┣📜❲.prototype❳ 108 ┃ ┃ ┃ 109 ┃ ┃ ┗📑❲.toString:FUNCTION() ⤑ ‹String›❳ 110 ┃ ┃ 111 ┃ ┗📦❲new❳ 112 ┃ ┃ 113 ┃ ┣📑❲.type:‹String›❳ 114 ┃ ┃ 115 ┃ ┣📑❲?.id:‹String› OR ‹Number›❳ 116 ┃ ┃ 117 ┃ ┣📑❲.query:DICT ⤑ ‹String›❳ 118 ┃ ┃ 119 ┃ ┗📑❲?.fragment:‹String›❳ 120121 ┗📦❲???:CLASS() extends Markup_Render❳ 122123 ┣📜❲.prototype❳ 124 ┃ ┃ 125 ┃ ┣📑❲.parse:FUNCTION(‹String›, ‹String›) ⤑ ‹tree›❳ 126 ┃ ┃ 127 ┃ ┗📑❲.convert_lang:FUNCTION(‹String›, ‹String›, ?‹Element›, ?TABLE) ⤑ ‹ParentElement›❳ 128129 ┗📦❲new❳ 130131 ┣📑❲.langs:TABLE ⤑ ‹parser›❳ 132 ┃ ⎝table of parser functions for different markup languages 133134 ┗📑❲.css_class:‹String›❳ 135 ⎜The css class used by `Markup.convert_lang` 136 ⎝default value: "🍂" 137 138📒❲legacy.js❳ 139140 ┣📑❲Markup.convert_lang(text‹String›, ?lang‹String›, ?parent‹Element›, ?settings) ⤑ ‹ParentNode›❳ 141 ┃ ⎜similar to Markup.convert, but supports other markup languages 142 ┃ ⎜(see `Markup.langs`) if `lang` is invalid, 'plaintext' is used. 143 ┃ ⎜`Markup.css_class` is added to `parent`'s class list, if passed. 144 ┃ ⎝otherwise, creates and returns a new ‹DocumentFragment› 145146 ┣📑❲Markup.css_class ‹String›❳ 147 ┃ ⎜The css class used by `Markup.convert_lang` 148 ┃ ⎝default value: "🍂" 149150 ┗📑❲Markup.langs[‹String›] ⤑ ❲‹Function›(‹String›) ⤑ ‹tree›❳❳ 151 ┃ ⎜table of parser functions for different markup languages 152 ┃ ⎝(all output the same AST format) 153154 ┣ Markup.langs['12y2'] 155 ┃ ⎝12y2 parser (Markup.parse) 156 ┣ Markup.langs['text'] 157 ┃ ⎝new plaintext parser 158 ┣ Markup.langs['12y'] 159 ┃ ⎝old 12y parser 160 ┣ Markup.langs['bbcode'] 161 ┃ ⎝old bbcode parser 162 ┗ Markup.langs['plaintext'] 163 ⎝old plaintext parser (autolinker) 164 165 166🔸🔶🟧 FILES 🟧🔶🔸 167 168📚❲./❳ 169170 ┣📕❲index.html❳ 171 ┃ demo page 172173 ┣📔❲README.txt❳ 174 ┃ readme 175 ┣📔❲LICENSE.txt❳ 176 ┃ license 177178 ┣📒❲parse.js❳ 179 ┃ parsing (text -> tree) 180 ┣📒❲render.js❳ 181 ┃ rendering (tree -> html (DocumentFragment)) 182 ┣📒❲legacy.js❳ 183 ┃ parsers for old sbs markup formats 184185 ┣📘❲markup.css❳ 186 ┃ example styles for markup 187188 ┗📚❲testing/❳ 189 ┃ tests 190191 ┣📕❲index.html❳ 192 ┃ run tests 193 ┣📕❲editor.html❳ 194 ┃ test editing tool 195196 ┣📘❲style.css❳ 197 ┃ common styles for test pages 198 ┣📒❲test.js❳ 199 ┃ test system 200 ┗📒❲draw.js❳ 201 test output rendering 202 203 204🔸🔶🟧 CREDITS 🟧🔶🔸 205 206🔸𝟷𝟸 207🔸𝔂 208🔸𝓬𝓱𝓮𝓻𝓻𝔂 209🔸𝓷𝓲𝓬𝓸𝓵𝓮