southnote-mini-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/app.js +22 -0
  2. package/app.json +53 -0
  3. package/app.wxss +15 -0
  4. package/assets/file/badwords.js +63008 -0
  5. package/assets/file/rules.js +38 -0
  6. package/assets/images/emoji/smile001.png +0 -0
  7. package/assets/images/emoji/smile002.png +0 -0
  8. package/assets/images/emoji/smile003.png +0 -0
  9. package/assets/images/emoji/smile004.png +0 -0
  10. package/assets/images/emoji/smile005.png +0 -0
  11. package/assets/images/emoji/smile006.png +0 -0
  12. package/assets/images/emoji/smile007.png +0 -0
  13. package/assets/images/emoji/smile008.png +0 -0
  14. package/assets/images/emoji/smile009.png +0 -0
  15. package/assets/images/emoji/smile010.png +0 -0
  16. package/assets/images/emoji/smile011.png +0 -0
  17. package/assets/images/emoji/smile012.png +0 -0
  18. package/assets/images/emoji/smile013.png +0 -0
  19. package/assets/images/emoji/smile014.png +0 -0
  20. package/assets/images/emoji/smile015.png +0 -0
  21. package/assets/images/emoji/smile016.png +0 -0
  22. package/assets/images/emoji/smile017.png +0 -0
  23. package/assets/images/emoji/smile018.png +0 -0
  24. package/assets/images/emoji/smile019.png +0 -0
  25. package/assets/images/emoji/smile020.png +0 -0
  26. package/assets/images/emoji/smile021.png +0 -0
  27. package/assets/images/emoji/smile022.png +0 -0
  28. package/assets/images/emoji/smile023.png +0 -0
  29. package/assets/images/emoji/smile024.png +0 -0
  30. package/assets/images/emoji/smile025.png +0 -0
  31. package/assets/images/emoji/smile026.png +0 -0
  32. package/assets/images/emoji/smile027.png +0 -0
  33. package/assets/images/emoji/smile028.png +0 -0
  34. package/assets/images/emoji/smile029.png +0 -0
  35. package/assets/images/emoji/smile030.png +0 -0
  36. package/assets/images/emoji/smile031.png +0 -0
  37. package/assets/images/emoji/smile032.png +0 -0
  38. package/assets/images/emoji/smile033.png +0 -0
  39. package/assets/images/emoji/smile034.png +0 -0
  40. package/assets/images/emoji/smile035.png +0 -0
  41. package/assets/images/emoji/smile036.png +0 -0
  42. package/assets/images/emoji/smile037.png +0 -0
  43. package/assets/images/emoji/smile038.png +0 -0
  44. package/assets/images/emoji/smile039.png +0 -0
  45. package/assets/images/emoji/smile040.png +0 -0
  46. package/assets/images/emoji/smile041.png +0 -0
  47. package/assets/images/emoji/smile042.png +0 -0
  48. package/assets/images/emoji/smile043.png +0 -0
  49. package/assets/images/emoji/smile044.png +0 -0
  50. package/assets/images/emoji/smile045.png +0 -0
  51. package/assets/images/emoji/smile046.png +0 -0
  52. package/assets/images/emoji/smile047.png +0 -0
  53. package/assets/images/emoji/smile048.png +0 -0
  54. package/assets/images/emoji/smile049.png +0 -0
  55. package/assets/images/emoji/smile050.png +0 -0
  56. package/assets/images/emoji/smile051.png +0 -0
  57. package/assets/images/emoji/smile052.png +0 -0
  58. package/assets/images/icons/age1.png +0 -0
  59. package/assets/images/icons/age2.png +0 -0
  60. package/assets/images/icons/age3.png +0 -0
  61. package/assets/images/icons/attachment.png +0 -0
  62. package/assets/images/icons/clear.png +0 -0
  63. package/assets/images/icons/edit_input.png +0 -0
  64. package/assets/images/icons/header_placeholder.png +0 -0
  65. package/assets/images/icons/home_collect.png +0 -0
  66. package/assets/images/icons/home_collected.png +0 -0
  67. package/assets/images/icons/home_comment.png +0 -0
  68. package/assets/images/icons/home_like.png +0 -0
  69. package/assets/images/icons/home_liked.png +0 -0
  70. package/assets/images/icons/home_message.png +0 -0
  71. package/assets/images/icons/home_share.png +0 -0
  72. package/assets/images/icons/icon_more.png +0 -0
  73. package/assets/images/icons/input_game.png +0 -0
  74. package/assets/images/icons/logo.png +0 -0
  75. package/assets/images/icons/lv1.png +0 -0
  76. package/assets/images/icons/lv2.png +0 -0
  77. package/assets/images/icons/lv3.png +0 -0
  78. package/assets/images/icons/lv4.png +0 -0
  79. package/assets/images/icons/search.png +0 -0
  80. package/assets/images/icons/sex1.png +0 -0
  81. package/assets/images/icons/sex2.png +0 -0
  82. package/assets/images/icons/sign_empty.png +0 -0
  83. package/assets/images/icons/sign_login.png +0 -0
  84. package/assets/wheel/wheel_bg.png +0 -0
  85. package/assets/wheel/wheel_bg2.png +0 -0
  86. package/assets/wheel/wheel_fore.png +0 -0
  87. package/assets/wheel/wheel_to.png +0 -0
  88. package/components/bottomSheet/bottomSheet.js +473 -0
  89. package/components/bottomSheet/bottomSheet.json +3 -0
  90. package/components/bottomSheet/bottomSheet.wxml +73 -0
  91. package/components/bottomSheet/bottomSheet.wxss +238 -0
  92. package/components/experience-item/experience-item.js +105 -0
  93. package/components/experience-item/experience-item.json +4 -0
  94. package/components/experience-item/experience-item.wxml +39 -0
  95. package/components/experience-item/experience-item.wxss +110 -0
  96. package/components/grid-item/grid-item.js +8 -0
  97. package/components/grid-item/grid-item.json +4 -0
  98. package/components/grid-item/grid-item.wxml +62 -0
  99. package/components/grid-item/grid-item.wxss +191 -0
  100. package/components/post-item/post-item.js +1085 -0
  101. package/components/post-item/post-item.json +4 -0
  102. package/components/post-item/post-item.wxml +427 -0
  103. package/components/post-item/post-item.wxss +525 -0
  104. package/components/wiki-renderer/wiki-renderer.js +636 -0
  105. package/components/wiki-renderer/wiki-renderer.json +12 -0
  106. package/components/wiki-renderer/wiki-renderer.wxml +150 -0
  107. package/components/wiki-renderer/wiki-renderer.wxss +412 -0
  108. package/components/wiki-tabs/wiki-tabs.js +52 -0
  109. package/components/wiki-tabs/wiki-tabs.json +3 -0
  110. package/components/wiki-tabs/wiki-tabs.wxml +28 -0
  111. package/components/wiki-tabs/wiki-tabs.wxss +43 -0
  112. package/index.js +49 -0
  113. package/package.json +35 -0
  114. package/pages/addGame/addGame.js +454 -0
  115. package/pages/addGame/addGame.json +3 -0
  116. package/pages/addGame/addGame.wxml +71 -0
  117. package/pages/addGame/addGame.wxss +110 -0
  118. package/pages/addSubject/addSubject.js +199 -0
  119. package/pages/addSubject/addSubject.json +4 -0
  120. package/pages/addSubject/addSubject.wxml +78 -0
  121. package/pages/addSubject/addSubject.wxss +85 -0
  122. package/pages/commonLogin/commonLogin.js +269 -0
  123. package/pages/commonLogin/commonLogin.json +4 -0
  124. package/pages/commonLogin/commonLogin.wxml +57 -0
  125. package/pages/commonLogin/commonLogin.wxss +177 -0
  126. package/pages/copyOfficial/copyOfficial.js +25 -0
  127. package/pages/copyOfficial/copyOfficial.json +3 -0
  128. package/pages/copyOfficial/copyOfficial.wxml +22 -0
  129. package/pages/copyOfficial/copyOfficial.wxss +49 -0
  130. package/pages/demo/demo.js +23 -0
  131. package/pages/demo/demo.json +3 -0
  132. package/pages/demo/demo.wxml +8 -0
  133. package/pages/demo/demo.wxss +24 -0
  134. package/pages/game/game.js +1254 -0
  135. package/pages/game/game.json +8 -0
  136. package/pages/game/game.wxml +371 -0
  137. package/pages/game/game.wxss +672 -0
  138. package/pages/home/home.js +665 -0
  139. package/pages/home/home.json +10 -0
  140. package/pages/home/home.wxml +115 -0
  141. package/pages/home/home.wxss +231 -0
  142. package/pages/lottery-winners/lottery-winners.js +60 -0
  143. package/pages/lottery-winners/lottery-winners.json +4 -0
  144. package/pages/lottery-winners/lottery-winners.wxml +53 -0
  145. package/pages/lottery-winners/lottery-winners.wxss +127 -0
  146. package/pages/message/messageCommentsAndAt/messageCommentsAndAt.js +178 -0
  147. package/pages/message/messageCommentsAndAt/messageCommentsAndAt.json +5 -0
  148. package/pages/message/messageCommentsAndAt/messageCommentsAndAt.wxml +93 -0
  149. package/pages/message/messageCommentsAndAt/messageCommentsAndAt.wxss +177 -0
  150. package/pages/message/messageEntire/messageEntire.js +112 -0
  151. package/pages/message/messageEntire/messageEntire.json +4 -0
  152. package/pages/message/messageEntire/messageEntire.wxml +44 -0
  153. package/pages/message/messageEntire/messageEntire.wxss +88 -0
  154. package/pages/message/messageLikeAndCollect/messageLikeAndCollect.js +147 -0
  155. package/pages/message/messageLikeAndCollect/messageLikeAndCollect.json +5 -0
  156. package/pages/message/messageLikeAndCollect/messageLikeAndCollect.wxml +84 -0
  157. package/pages/message/messageLikeAndCollect/messageLikeAndCollect.wxss +166 -0
  158. package/pages/message/messageNewFans/messageNewFans.js +139 -0
  159. package/pages/message/messageNewFans/messageNewFans.json +5 -0
  160. package/pages/message/messageNewFans/messageNewFans.wxml +35 -0
  161. package/pages/message/messageNewFans/messageNewFans.wxss +85 -0
  162. package/pages/officialWebview/officialWebview.js +13 -0
  163. package/pages/officialWebview/officialWebview.json +3 -0
  164. package/pages/officialWebview/officialWebview.wxml +2 -0
  165. package/pages/officialWebview/officialWebview.wxss +1 -0
  166. package/pages/post/post.js +1856 -0
  167. package/pages/post/post.json +6 -0
  168. package/pages/post/post.wxml +694 -0
  169. package/pages/post/post.wxss +1003 -0
  170. package/pages/post-editor/post-editor.js +465 -0
  171. package/pages/post-editor/post-editor.json +4 -0
  172. package/pages/post-editor/post-editor.wxml +63 -0
  173. package/pages/post-editor/post-editor.wxss +195 -0
  174. package/pages/postDialog/postDialog.js +560 -0
  175. package/pages/postDialog/postDialog.json +6 -0
  176. package/pages/postDialog/postDialog.wxml +377 -0
  177. package/pages/postDialog/postDialog.wxss +979 -0
  178. package/pages/report-category/report-category.js +29 -0
  179. package/pages/report-category/report-category.json +4 -0
  180. package/pages/report-category/report-category.wxml +14 -0
  181. package/pages/report-category/report-category.wxss +43 -0
  182. package/pages/report-form/report-form.js +65 -0
  183. package/pages/report-form/report-form.json +3 -0
  184. package/pages/report-form/report-form.wxml +11 -0
  185. package/pages/report-form/report-form.wxss +44 -0
  186. package/pages/sevenDaySignDetail/sevenDaySignDetail.js +273 -0
  187. package/pages/sevenDaySignDetail/sevenDaySignDetail.json +3 -0
  188. package/pages/sevenDaySignDetail/sevenDaySignDetail.wxml +82 -0
  189. package/pages/sevenDaySignDetail/sevenDaySignDetail.wxss +173 -0
  190. package/pages/topic/topic.js +266 -0
  191. package/pages/topic/topic.json +6 -0
  192. package/pages/topic/topic.wxml +77 -0
  193. package/pages/topic/topic.wxss +162 -0
  194. package/pages/user/user.js +939 -0
  195. package/pages/user/user.json +5 -0
  196. package/pages/user/user.wxml +179 -0
  197. package/pages/user/user.wxss +340 -0
  198. package/pages/userDatum/userDatum.js +24 -0
  199. package/pages/userDatum/userDatum.json +4 -0
  200. package/pages/userDatum/userDatum.wxml +36 -0
  201. package/pages/userDatum/userDatum.wxss +41 -0
  202. package/pages/userGameLib/userGameLib.js +105 -0
  203. package/pages/userGameLib/userGameLib.json +4 -0
  204. package/pages/userGameLib/userGameLib.wxml +42 -0
  205. package/pages/userGameLib/userGameLib.wxss +119 -0
  206. package/pages/webview/webview.js +25 -0
  207. package/pages/webview/webview.json +3 -0
  208. package/pages/webview/webview.wxml +22 -0
  209. package/pages/webview/webview.wxss +50 -0
  210. package/pages/wheelActivivty/wheelActivivty.js +492 -0
  211. package/pages/wheelActivivty/wheelActivivty.json +8 -0
  212. package/pages/wheelActivivty/wheelActivivty.wxml +131 -0
  213. package/pages/wheelActivivty/wheelActivivty.wxss +459 -0
  214. package/pages/wiki/wiki.js +138 -0
  215. package/pages/wiki/wiki.json +6 -0
  216. package/pages/wiki/wiki.wxml +20 -0
  217. package/pages/wiki/wiki.wxss +44 -0
  218. package/request/JKRequest.js +177 -0
  219. package/services/home.js +603 -0
  220. package/towxml/config.js +291 -0
  221. package/towxml/decode.js +35 -0
  222. package/towxml/decode.json +11 -0
  223. package/towxml/decode.wxml +137 -0
  224. package/towxml/decode.wxss +0 -0
  225. package/towxml/img/img.js +98 -0
  226. package/towxml/img/img.json +3 -0
  227. package/towxml/img/img.wxml +1 -0
  228. package/towxml/img/img.wxss +0 -0
  229. package/towxml/index.js +19 -0
  230. package/towxml/latex/latex.js +53 -0
  231. package/towxml/latex/latex.json +5 -0
  232. package/towxml/latex/latex.wxml +1 -0
  233. package/towxml/latex/latex.wxss +0 -0
  234. package/towxml/parse/highlight/highlight.js +1 -0
  235. package/towxml/parse/highlight/index.js +8 -0
  236. package/towxml/parse/highlight/languages/bash.js +111 -0
  237. package/towxml/parse/highlight/languages/c-like.js +236 -0
  238. package/towxml/parse/highlight/languages/c.js +22 -0
  239. package/towxml/parse/highlight/languages/css.js +132 -0
  240. package/towxml/parse/highlight/languages/dart.js +134 -0
  241. package/towxml/parse/highlight/languages/go.js +63 -0
  242. package/towxml/parse/highlight/languages/htmlbars.js +80 -0
  243. package/towxml/parse/highlight/languages/java.js +125 -0
  244. package/towxml/parse/highlight/languages/javascript.js +265 -0
  245. package/towxml/parse/highlight/languages/json.js +52 -0
  246. package/towxml/parse/highlight/languages/less.js +148 -0
  247. package/towxml/parse/highlight/languages/nginx.js +101 -0
  248. package/towxml/parse/highlight/languages/php.js +161 -0
  249. package/towxml/parse/highlight/languages/python-repl.js +29 -0
  250. package/towxml/parse/highlight/languages/python.js +131 -0
  251. package/towxml/parse/highlight/languages/scss.js +122 -0
  252. package/towxml/parse/highlight/languages/shell.js +22 -0
  253. package/towxml/parse/highlight/languages/typescript.js +215 -0
  254. package/towxml/parse/highlight/languages/xml.js +139 -0
  255. package/towxml/parse/highlight/style/github.wxss +99 -0
  256. package/towxml/parse/highlight/style/monokai.wxss +70 -0
  257. package/towxml/parse/index.js +118 -0
  258. package/towxml/parse/markdown/index.js +67 -0
  259. package/towxml/parse/markdown/markdown.js +4 -0
  260. package/towxml/parse/markdown/plugins/echarts.js +11 -0
  261. package/towxml/parse/markdown/plugins/emoji.js +2 -0
  262. package/towxml/parse/markdown/plugins/ins.js +1 -0
  263. package/towxml/parse/markdown/plugins/latex.js +158 -0
  264. package/towxml/parse/markdown/plugins/mark.js +1 -0
  265. package/towxml/parse/markdown/plugins/sub.js +1 -0
  266. package/towxml/parse/markdown/plugins/sup.js +1 -0
  267. package/towxml/parse/markdown/plugins/todo.js +147 -0
  268. package/towxml/parse/markdown/plugins/yuml.js +20 -0
  269. package/towxml/parse/parse2/Parser.js +492 -0
  270. package/towxml/parse/parse2/Tokenizer.js +903 -0
  271. package/towxml/parse/parse2/domelementtype/index.js +55 -0
  272. package/towxml/parse/parse2/domhandler/index.js +145 -0
  273. package/towxml/parse/parse2/domhandler/node.js +474 -0
  274. package/towxml/parse/parse2/entities/decode.js +179 -0
  275. package/towxml/parse/parse2/entities/decode_codepoint.js +60 -0
  276. package/towxml/parse/parse2/entities/encode.js +77 -0
  277. package/towxml/parse/parse2/entities/escape.js +112 -0
  278. package/towxml/parse/parse2/entities/generated/decode-data-html.js +9 -0
  279. package/towxml/parse/parse2/entities/generated/decode-data-xml.js +9 -0
  280. package/towxml/parse/parse2/entities/generated/encode-html.js +12 -0
  281. package/towxml/parse/parse2/entities/index.js +137 -0
  282. package/towxml/parse/parse2/index.js +8 -0
  283. package/towxml/style/main.wxss +419 -0
  284. package/towxml/style/theme/dark.wxss +73 -0
  285. package/towxml/style/theme/light.wxss +63 -0
  286. package/towxml/table/table.js +11 -0
  287. package/towxml/table/table.json +6 -0
  288. package/towxml/table/table.wxml +24 -0
  289. package/towxml/table/table.wxss +0 -0
  290. package/towxml/todogroup/todogroup.js +20 -0
  291. package/towxml/todogroup/todogroup.json +6 -0
  292. package/towxml/todogroup/todogroup.wxml +12 -0
  293. package/towxml/todogroup/todogroup.wxss +3 -0
  294. package/towxml/towxml.js +22 -0
  295. package/towxml/towxml.json +6 -0
  296. package/towxml/towxml.wxml +5 -0
  297. package/towxml/towxml.wxss +8 -0
  298. package/towxml/yuml/yuml.js +51 -0
  299. package/towxml/yuml/yuml.json +5 -0
  300. package/towxml/yuml/yuml.wxml +5 -0
  301. package/towxml/yuml/yuml.wxss +0 -0
  302. package/utils/auth.js +17 -0
  303. package/utils/base64.js +67 -0
  304. package/utils/compressImage.js +41 -0
  305. package/utils/exp.js +49 -0
  306. package/utils/formatPost.js +18 -0
  307. package/utils/parseContent.js +191 -0
  308. package/utils/query-select.js +9 -0
  309. package/utils/sensitive.js +82 -0
@@ -0,0 +1 @@
1
+ "use strict";function deepFreeze(e){Object.freeze(e);var n="function"==typeof e;return Object.getOwnPropertyNames(e).forEach(function(t){!e.hasOwnProperty(t)||null===e[t]||"object"!=typeof e[t]&&"function"!=typeof e[t]||n&&("caller"===t||"callee"===t||"arguments"===t)||Object.isFrozen(e[t])||deepFreeze(e[t])}),e}function escapeHTML(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function inherit(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function tag(e){return e.nodeName.toLowerCase()}function nodeStream(e){var n=[];return function e(t,r){for(var a=t.firstChild;a;a=a.nextSibling)3===a.nodeType?r+=a.nodeValue.length:1===a.nodeType&&(n.push({event:"start",offset:r,node:a}),r=e(a,r),tag(a).match(/br|hr|img|input/)||n.push({event:"stop",offset:r,node:a}));return r}(e,0),n}function mergeStreams(e,n,t){var r=0,a="",i=[];function s(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n}function o(e){a+="<"+tag(e)+[].map.call(e.attributes,function(e){return" "+e.nodeName+'="'+escapeHTML(e.value).replace(/"/g,"&quot;")+'"'}).join("")+">"}function l(e){a+="</"+tag(e)+">"}function c(e){("start"===e.event?o:l)(e.node)}for(;e.length||n.length;){var u=s();if(a+=escapeHTML(t.substring(r,u[0].offset)),r=u[0].offset,u===e){i.reverse().forEach(l);do{c(u.splice(0,1)[0]),u=s()}while(u===e&&u.length&&u[0].offset===r);i.reverse().forEach(o)}else"start"===u[0].event?i.push(u[0].node):i.pop(),c(u.splice(0,1)[0])}return a+escapeHTML(t.substr(r))}var utils=Object.freeze({__proto__:null,escapeHTML:escapeHTML,inherit:inherit,nodeStream:nodeStream,mergeStreams:mergeStreams});const SPAN_CLOSE="</span>",emitsWrappingTags=e=>!!e.kind;class HTMLRenderer{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=escapeHTML(e)}openNode(e){if(!emitsWrappingTags(e))return;let n=e.kind;e.sublanguage||(n=`${this.classPrefix}${n}`),this.span(n)}closeNode(e){emitsWrappingTags(e)&&(this.buffer+=SPAN_CLOSE)}span(e){this.buffer+=`<span class="${e}">`}value(){return this.buffer}}class TokenTree{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let n={kind:e,children:[]};this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){e.children&&(e.children.every(e=>"string"==typeof e)?(e.text=e.children.join(""),delete e.children):e.children.forEach(e=>{"string"!=typeof e&&TokenTree._collapse(e)}))}}class TokenTreeEmitter extends TokenTree{constructor(e){super(),this.options=e}addKeyword(e,n){""!==e&&(this.openNode(n),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,n){let t=e.root;t.kind=n,t.sublanguage=!0,this.add(t)}toHTML(){return new HTMLRenderer(this,this.options).value()}finalize(){}}function escape(e){return new RegExp(e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function source(e){return e&&e.source||e}function countMatchGroups(e){return new RegExp(e.toString()+"|").exec("").length-1}function startsWith(e,n){var t=e&&e.exec(n);return t&&0===t.index}function join(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i<e.length;i++){var s=r+=1,o=source(e[i]);for(i>0&&(a+=n),a+="(";o.length>0;){var l=t.exec(o);if(null==l){a+=o;break}a+=o.substring(0,l.index),o=o.substring(l.index+l[0].length),"\\"==l[0][0]&&l[1]?a+="\\"+String(Number(l[1])+s):(a+=l[0],"("==l[0]&&r++)}a+=")"}return a}const IDENT_RE="[a-zA-Z]\\w*",UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",NUMBER_RE="\\b\\d+(\\.\\d+)?",C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",BINARY_NUMBER_RE="\\b(0b[01]+)",RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[BACKSLASH_ESCAPE]},QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[BACKSLASH_ESCAPE]},PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT=function(e,n,t){var r=inherit({className:"comment",begin:e,end:n,contains:[]},t||{});return r.contains.push(PHRASAL_WORDS_MODE),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),r},C_LINE_COMMENT_MODE=COMMENT("//","$"),C_BLOCK_COMMENT_MODE=COMMENT("/\\*","\\*/"),HASH_COMMENT_MODE=COMMENT("#","$"),NUMBER_MODE={className:"number",begin:NUMBER_RE,relevance:0},C_NUMBER_MODE={className:"number",begin:C_NUMBER_RE,relevance:0},BINARY_NUMBER_MODE={className:"number",begin:"\\b(0b[01]+)",relevance:0},CSS_NUMBER_MODE={className:"number",begin:NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},REGEXP_MODE={begin:/(?=\/[^\/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[BACKSLASH_ESCAPE]}]}]},TITLE_MODE={className:"title",begin:IDENT_RE,relevance:0},UNDERSCORE_TITLE_MODE={className:"title",begin:"[a-zA-Z_]\\w*",relevance:0},METHOD_GUARD={begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0};var MODES=Object.freeze({__proto__:null,IDENT_RE:IDENT_RE,UNDERSCORE_IDENT_RE:"[a-zA-Z_]\\w*",NUMBER_RE:NUMBER_RE,C_NUMBER_RE:C_NUMBER_RE,BINARY_NUMBER_RE:"\\b(0b[01]+)",RE_STARTERS_RE:RE_STARTERS_RE,BACKSLASH_ESCAPE:BACKSLASH_ESCAPE,APOS_STRING_MODE:APOS_STRING_MODE,QUOTE_STRING_MODE:QUOTE_STRING_MODE,PHRASAL_WORDS_MODE:PHRASAL_WORDS_MODE,COMMENT:COMMENT,C_LINE_COMMENT_MODE:C_LINE_COMMENT_MODE,C_BLOCK_COMMENT_MODE:C_BLOCK_COMMENT_MODE,HASH_COMMENT_MODE:HASH_COMMENT_MODE,NUMBER_MODE:NUMBER_MODE,C_NUMBER_MODE:C_NUMBER_MODE,BINARY_NUMBER_MODE:BINARY_NUMBER_MODE,CSS_NUMBER_MODE:CSS_NUMBER_MODE,REGEXP_MODE:REGEXP_MODE,TITLE_MODE:TITLE_MODE,UNDERSCORE_TITLE_MODE:UNDERSCORE_TITLE_MODE,METHOD_GUARD:METHOD_GUARD}),COMMON_KEYWORDS="of and for in not or if then".split(" ");function compileLanguage(e){function n(n,t){return new RegExp(source(n),"m"+(e.case_insensitive?"i":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=countMatchGroups(e)+1}compile(){0===this.regexes.length&&(this.exec=(()=>null));let e=this.regexes.map(e=>e[1]);this.matcherRe=n(join(e,"|"),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let n=this.matcherRe.exec(e);if(!n)return null;let t=n.findIndex((e,n)=>n>0&&void 0!=e),r=this.matchIndexes[t];return Object.assign(n,r)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){let n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let t=n.exec(e);return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&(this.regexIndex=0)),t}}function a(e){let n=e.input[e.index-1],t=e.input[e.index+e[0].length];if("."===n||"."===t)return{ignoreMatch:!0}}if(e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");!function t(i,s){i.compiled||(i.compiled=!0,i.__onBegin=null,i.keywords=i.keywords||i.beginKeywords,i.keywords&&(i.keywords=compileKeywords(i.keywords,e.case_insensitive)),i.lexemesRe=n(i.lexemes||/\w+/,!0),s&&(i.beginKeywords&&(i.begin="\\b("+i.beginKeywords.split(" ").join("|")+")(?=\\b|\\s)",i.__onBegin=a),i.begin||(i.begin=/\B|\b/),i.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(i.endRe=n(i.end)),i.terminator_end=source(i.end)||"",i.endsWithParent&&s.terminator_end&&(i.terminator_end+=(i.end?"|":"")+s.terminator_end)),i.illegal&&(i.illegalRe=n(i.illegal)),null==i.relevance&&(i.relevance=1),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map(function(e){return expand_or_clone_mode("self"===e?i:e)})),i.contains.forEach(function(e){t(e,i)}),i.starts&&t(i.starts,s),i.matcher=function(e){let n=new r;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminator_end&&n.addRule(e.terminator_end,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(i))}(e)}function dependencyOnParent(e){return!!e&&(e.endsWithParent||dependencyOnParent(e.starts))}function expand_or_clone_mode(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(n){return inherit(e,{variants:null},n)})),e.cached_variants?e.cached_variants:dependencyOnParent(e)?inherit(e,{starts:e.starts?inherit(e.starts):null}):Object.isFrozen(e)?inherit(e):e}function compileKeywords(e,n){var t={};return"string"==typeof e?r("keyword",e):Object.keys(e).forEach(function(n){r(n,e[n])}),t;function r(e,r){n&&(r=r.toLowerCase()),r.split(" ").forEach(function(n){var r=n.split("|");t[r[0]]=[e,scoreForKeyword(r[0],r[1])]})}}function scoreForKeyword(e,n){return n?Number(n):commonKeyword(e)?0:1}function commonKeyword(e){return COMMON_KEYWORDS.includes(e.toLowerCase())}var version="10.0.0-beta.0";const escape$1=escapeHTML,inherit$1=inherit,{nodeStream:nodeStream$1,mergeStreams:mergeStreams$1}=utils,HLJS=function(e){var n=[],t={},r={},a=[],i=!0,s=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,o="Could not find the language '{}', did you forget to load/include a language module?",l={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0,__emitter:TokenTreeEmitter};function c(e){return l.noHighlightRe.test(e)}function u(e,n,t,r){var a={code:n,language:e};R("before:highlight",a);var i=a.result?a.result:d(a.language,a.code,t,r);return i.code=a.code,R("after:highlight",i),i}function d(e,n,r,a){var s=n;function c(e,n){var t=R.case_insensitive?n[0].toLowerCase():n[0];return e.keywords.hasOwnProperty(t)&&e.keywords[t]}function u(){null!=b.subLanguage?function(){if(""!==S){var e="string"==typeof b.subLanguage;if(!e||t[b.subLanguage]){var n=e?d(b.subLanguage,S,!0,v[b.subLanguage]):g(S,b.subLanguage.length?b.subLanguage:void 0);b.relevance>0&&(T+=n.relevance),e&&(v[b.subLanguage]=n.top),N.addSublanguage(n.emitter,n.language)}else N.addText(S)}}():function(){var e,n,t,r;if(b.keywords){for(n=0,b.lexemesRe.lastIndex=0,t=b.lexemesRe.exec(S),r="";t;){r+=S.substring(n,t.index);var a=null;(e=c(b,t))?(N.addText(r),r="",T+=e[1],a=e[0],N.addKeyword(t[0],a)):r+=t[0],n=b.lexemesRe.lastIndex,t=b.lexemesRe.exec(S)}r+=S.substr(n),N.addText(r)}else N.addText(S)}(),S=""}function h(e){e.className&&N.openNode(e.className),b=Object.create(e,{parent:{value:b}})}function f(e){var n=e[0],t=e.rule;if(t.__onBegin){if((t.__onBegin(e)||{}).ignoreMatch)return function(e){return 0===b.matcher.regexIndex?(S+=e[0],1):(w=!0,0)}(n)}return t&&t.endSameAsBegin&&(t.endRe=escape(n)),t.skip?S+=n:(t.excludeBegin&&(S+=n),u(),t.returnBegin||t.excludeBegin||(S=n)),h(t),t.returnBegin?0:n.length}function E(e){var n=e[0],t=s.substr(e.index),r=function e(n,t){if(startsWith(n.endRe,t)){for(;n.endsParent&&n.parent;)n=n.parent;return n}if(n.endsWithParent)return e(n.parent,t)}(b,t);if(r){var a=b;a.skip?S+=n:(a.returnEnd||a.excludeEnd||(S+=n),u(),a.excludeEnd&&(S=n));do{b.className&&N.closeNode(),b.skip||b.subLanguage||(T+=b.relevance),b=b.parent}while(b!==r.parent);return r.starts&&(r.endSameAsBegin&&(r.starts.endRe=r.endRe),h(r.starts)),a.returnEnd?0:n.length}}var _={};function m(n,t){var a,o=t&&t[0];if(S+=n,null==o)return u(),0;if("begin"==_.type&&"end"==t.type&&_.index==t.index&&""===o){if(S+=s.slice(t.index,t.index+1),!i)throw(a=new Error("0 width match regex")).languageName=e,a.badRule=_.rule,a;return 1}if(_=t,"begin"===t.type)return f(t);if("illegal"===t.type&&!r)throw(a=new Error('Illegal lexeme "'+o+'" for mode "'+(b.className||"<unnamed>")+'"')).mode=b,a;if("end"===t.type){var l=E(t);if(void 0!=l)return l}return S+=o,o.length}var R=p(e);if(!R)throw console.error(o.replace("{}",e)),new Error('Unknown language: "'+e+'"');compileLanguage(R);var M,b=a||R,v={},N=new l.__emitter(l);!function(){for(var e=[],n=b;n!==R;n=n.parent)n.className&&e.unshift(n.className);e.forEach(e=>N.openNode(e))}();var O,x,S="",T=0,D=0;try{var w=!1;for(b.matcher.considerAll();w?w=!1:(b.matcher.lastIndex=D,b.matcher.considerAll()),O=b.matcher.exec(s);){x=m(s.substring(D,O.index),O),D=O.index+x}return m(s.substr(D)),N.closeAllNodes(),N.finalize(),M=N.toHTML(),{relevance:T,value:M,language:e,illegal:!1,emitter:N,top:b}}catch(n){if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:n.message,context:s.slice(D-100,D+100),mode:n.mode},sofar:M,relevance:0,value:escape$1(s),emitter:N};if(i)return{relevance:0,value:escape$1(s),emitter:N,language:e,top:b,errorRaised:n};throw n}}function g(e,n){n=n||l.languages||Object.keys(t);var r={relevance:0,emitter:new l.__emitter(l),value:escape$1(e)},a=r;return n.filter(p).filter(m).forEach(function(n){var t=d(n,e,!1);t.language=n,t.relevance>a.relevance&&(a=t),t.relevance>r.relevance&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function h(e){return l.tabReplace||l.useBR?e.replace(s,function(e,n){return l.useBR&&"\n"===e?"<br>":l.tabReplace?n.replace(/\t/g,l.tabReplace):""}):e}function f(e){var n,t,a,i,s,d=function(e){var n,t=e.className+" ";if(t+=e.parentNode?e.parentNode.className:"",n=l.languageDetectRe.exec(t)){var r=p(n[1]);return r||(console.warn(o.replace("{}",n[1])),console.warn("Falling back to no-highlight mode for this block.",e)),r?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>c(e)||p(e))}(e);c(d)||(R("before:highlightBlock",{block:e,language:d}),l.useBR?(n=document.createElement("div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n"):n=e,s=n.textContent,a=d?u(d,s,!0):g(s),(t=nodeStream$1(n)).length&&((i=document.createElement("div")).innerHTML=a.value,a.value=mergeStreams$1(t,nodeStream$1(i),s)),a.value=h(a.value),R("after:highlightBlock",{block:e,result:a}),e.innerHTML=a.value,e.className=function(e,n,t){var a=n?r[n]:t,i=[e.trim()];return e.match(/\bhljs\b/)||i.push("hljs"),e.includes(a)||i.push(a),i.join(" ").trim()}(e.className,d,a.language),e.result={language:a.language,re:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance}))}function E(){if(!E.called){E.called=!0;var e=document.querySelectorAll("pre code");n.forEach.call(e,f)}}var _={disableAutodetect:!0};function p(e){return e=(e||"").toLowerCase(),t[e]||t[r[e]]}function m(e){var n=p(e);return n&&!n.disableAutodetect}function R(e,n){var t=e;a.forEach(function(e){e[t]&&e[t](n)})}Object.assign(e,{highlight:u,highlightAuto:g,fixMarkup:h,highlightBlock:f,configure:function(e){l=inherit$1(l,e)},initHighlighting:E,initHighlightingOnLoad:function(){window.addEventListener("DOMContentLoaded",E,!1)},registerLanguage:function(n,a){var s;try{s=a(e)}catch(e){if(console.error("Language definition for '{}' could not be registered.".replace("{}",n)),!i)throw e;console.error(e),s=_}s.name||(s.name=n),t[n]=s,s.rawDefinition=a.bind(null,e),s.aliases&&s.aliases.forEach(function(e){r[e]=n})},listLanguages:function(){return Object.keys(t)},getLanguage:p,requireLanguage:function(e){var n=p(e);if(n)return n;throw new Error("The '{}' language is required, but not loaded.".replace("{}",e))},autoDetection:m,inherit:inherit$1,addPlugin:function(e,n){a.push(e)}}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=version;for(const e in MODES)"object"==typeof MODES[e]&&deepFreeze(MODES[e]);return Object.assign(e,MODES),e};var highlight=HLJS({});module.exports=highlight;
@@ -0,0 +1,8 @@
1
+ const config = require('../../config'),
2
+ hljs = require('./highlight');
3
+ // config.highlight.forEach(item => {
4
+ // hljs.registerLanguage(item, require(`./languages/${item}`).default);
5
+ // });
6
+ hljs.registerLanguage('c-like', require('./languages/c-like').default);hljs.registerLanguage('c', require('./languages/c').default);hljs.registerLanguage('bash', require('./languages/bash').default);hljs.registerLanguage('css', require('./languages/css').default);hljs.registerLanguage('dart', require('./languages/dart').default);hljs.registerLanguage('go', require('./languages/go').default);hljs.registerLanguage('java', require('./languages/java').default);hljs.registerLanguage('javascript', require('./languages/javascript').default);hljs.registerLanguage('json', require('./languages/json').default);hljs.registerLanguage('less', require('./languages/less').default);hljs.registerLanguage('scss', require('./languages/scss').default);hljs.registerLanguage('shell', require('./languages/shell').default);hljs.registerLanguage('xml', require('./languages/xml').default);hljs.registerLanguage('htmlbars', require('./languages/htmlbars').default);hljs.registerLanguage('nginx', require('./languages/nginx').default);hljs.registerLanguage('php', require('./languages/php').default);hljs.registerLanguage('python', require('./languages/python').default);hljs.registerLanguage('python-repl', require('./languages/python-repl').default);hljs.registerLanguage('typescript', require('./languages/typescript').default);
7
+
8
+ module.exports = hljs;
@@ -0,0 +1,111 @@
1
+ /*
2
+ Language: Bash
3
+ Author: vah <vahtenberg@gmail.com>
4
+ Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
5
+ Website: https://www.gnu.org/software/bash/
6
+ Category: common
7
+ */
8
+
9
+ export default function(hljs) {
10
+ const VAR = {};
11
+ const BRACED_VAR = {
12
+ begin: /\$\{/, end:/\}/,
13
+ contains: [
14
+ { begin: /:-/, contains: [VAR] } // default values
15
+ ]
16
+ };
17
+ Object.assign(VAR,{
18
+ className: 'variable',
19
+ variants: [
20
+ {begin: /\$[\w\d#@][\w\d_]*/},
21
+ BRACED_VAR
22
+ ]
23
+ });
24
+
25
+ const SUBST = {
26
+ className: 'subst',
27
+ begin: /\$\(/, end: /\)/,
28
+ contains: [hljs.BACKSLASH_ESCAPE]
29
+ };
30
+ const QUOTE_STRING = {
31
+ className: 'string',
32
+ begin: /"/, end: /"/,
33
+ contains: [
34
+ hljs.BACKSLASH_ESCAPE,
35
+ VAR,
36
+ SUBST
37
+ ]
38
+ };
39
+ SUBST.contains.push(QUOTE_STRING);
40
+ const ESCAPED_QUOTE = {
41
+ className: '',
42
+ begin: /\\"/
43
+
44
+ };
45
+ const APOS_STRING = {
46
+ className: 'string',
47
+ begin: /'/, end: /'/
48
+ };
49
+ const ARITHMETIC = {
50
+ begin: /\$\(\(/,
51
+ end: /\)\)/,
52
+ contains: [
53
+ { begin: /\d+#[0-9a-f]+/, className: "number" },
54
+ hljs.NUMBER_MODE,
55
+ VAR
56
+ ]
57
+ };
58
+ const SHEBANG = {
59
+ className: 'meta',
60
+ begin: /^#![^\n]+sh\s*$/,
61
+ relevance: 10
62
+ };
63
+ const FUNCTION = {
64
+ className: 'function',
65
+ begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
66
+ returnBegin: true,
67
+ contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
68
+ relevance: 0
69
+ };
70
+
71
+ return {
72
+ name: 'Bash',
73
+ aliases: ['sh', 'zsh'],
74
+ lexemes: /\b-?[a-z\._]+\b/,
75
+ keywords: {
76
+ keyword:
77
+ 'if then else elif fi for while in do done case esac function',
78
+ literal:
79
+ 'true false',
80
+ built_in:
81
+ // Shell built-ins
82
+ // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
83
+ 'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
84
+ 'trap umask unset ' +
85
+ // Bash built-ins
86
+ 'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
87
+ 'read readarray source type typeset ulimit unalias ' +
88
+ // Shell modifiers
89
+ 'set shopt ' +
90
+ // Zsh built-ins
91
+ 'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
92
+ 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
93
+ 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
94
+ 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
95
+ 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
96
+ 'zpty zregexparse zsocket zstyle ztcp',
97
+ _:
98
+ '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
99
+ },
100
+ contains: [
101
+ SHEBANG,
102
+ FUNCTION,
103
+ ARITHMETIC,
104
+ hljs.HASH_COMMENT_MODE,
105
+ QUOTE_STRING,
106
+ ESCAPED_QUOTE,
107
+ APOS_STRING,
108
+ VAR
109
+ ]
110
+ };
111
+ }
@@ -0,0 +1,236 @@
1
+ /*
2
+ Language: C-like foundation grammar for C/C++ grammars
3
+ Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
4
+ Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>, Sam Wu <samsam2310@gmail.com>, Jordi Petit <jordi.petit@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>, Google Inc. (David Benjamin) <davidben@google.com>
5
+ Category: common, system
6
+ */
7
+
8
+ /* In the future the intention is to split out the C/C++ grammars distinctly
9
+ since they are separate languages. They will likely share a common foundation
10
+ though, and this file sets the groundwork for that - so that we get the breaking
11
+ change in v10 and don't have to change the requirements again later.
12
+
13
+ See: https://github.com/highlightjs/highlight.js/issues/2146
14
+ */
15
+
16
+ export default function(hljs) {
17
+ function optional(s) {
18
+ return '(?:' + s + ')?';
19
+ }
20
+ var DECLTYPE_AUTO_RE = 'decltype\\(auto\\)'
21
+ var NAMESPACE_RE = '[a-zA-Z_]\\w*::'
22
+ var TEMPLATE_ARGUMENT_RE = '<.*?>';
23
+ var FUNCTION_TYPE_RE = '(' +
24
+ DECLTYPE_AUTO_RE + '|' +
25
+ optional(NAMESPACE_RE) +'[a-zA-Z_]\\w*' + optional(TEMPLATE_ARGUMENT_RE) +
26
+ ')';
27
+ var CPP_PRIMITIVE_TYPES = {
28
+ className: 'keyword',
29
+ begin: '\\b[a-z\\d_]*_t\\b'
30
+ };
31
+
32
+ // https://en.cppreference.com/w/cpp/language/escape
33
+ // \\ \x \xFF \u2837 \u00323747 \374
34
+ var CHARACTER_ESCAPES = '\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)'
35
+ var STRINGS = {
36
+ className: 'string',
37
+ variants: [
38
+ {
39
+ begin: '(u8?|U|L)?"', end: '"',
40
+ illegal: '\\n',
41
+ contains: [hljs.BACKSLASH_ESCAPE]
42
+ },
43
+ {
44
+ begin: '(u8?|U|L)?\'(' + CHARACTER_ESCAPES + "|.)", end: '\'',
45
+ illegal: '.'
46
+ },
47
+ { begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\((?:.|\n)*?\)\1"/ }
48
+ ]
49
+ };
50
+
51
+ var NUMBERS = {
52
+ className: 'number',
53
+ variants: [
54
+ { begin: '\\b(0b[01\']+)' },
55
+ { begin: '(-?)\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' },
56
+ { begin: '(-?)(\\b0[xX][a-fA-F0-9\']+|(\\b[\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)([eE][-+]?[\\d\']+)?)' }
57
+ ],
58
+ relevance: 0
59
+ };
60
+
61
+ var PREPROCESSOR = {
62
+ className: 'meta',
63
+ begin: /#\s*[a-z]+\b/, end: /$/,
64
+ keywords: {
65
+ 'meta-keyword':
66
+ 'if else elif endif define undef warning error line ' +
67
+ 'pragma _Pragma ifdef ifndef include'
68
+ },
69
+ contains: [
70
+ {
71
+ begin: /\\\n/, relevance: 0
72
+ },
73
+ hljs.inherit(STRINGS, {className: 'meta-string'}),
74
+ {
75
+ className: 'meta-string',
76
+ begin: /<.*?>/, end: /$/,
77
+ illegal: '\\n',
78
+ },
79
+ hljs.C_LINE_COMMENT_MODE,
80
+ hljs.C_BLOCK_COMMENT_MODE
81
+ ]
82
+ };
83
+
84
+ var TITLE_MODE = {
85
+ className: 'title',
86
+ begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,
87
+ relevance: 0
88
+ };
89
+
90
+ var FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\s*\\(';
91
+
92
+ var CPP_KEYWORDS = {
93
+ keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +
94
+ 'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +
95
+ 'unsigned long volatile static protected bool template mutable if public friend ' +
96
+ 'do goto auto void enum else break extern using asm case typeid wchar_t ' +
97
+ 'short reinterpret_cast|10 default double register explicit signed typename try this ' +
98
+ 'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +
99
+ 'concept co_await co_return co_yield requires ' +
100
+ 'noexcept static_assert thread_local restrict final override ' +
101
+ 'atomic_bool atomic_char atomic_schar ' +
102
+ 'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
103
+ 'atomic_ullong new throw return ' +
104
+ 'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',
105
+ built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
106
+ 'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
107
+ 'unordered_map unordered_multiset unordered_multimap array shared_ptr abort terminate abs acos ' +
108
+ 'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +
109
+ 'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +
110
+ 'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +
111
+ 'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +
112
+ 'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +
113
+ 'vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary',
114
+ literal: 'true false nullptr NULL'
115
+ };
116
+
117
+ var EXPRESSION_CONTAINS = [
118
+ CPP_PRIMITIVE_TYPES,
119
+ hljs.C_LINE_COMMENT_MODE,
120
+ hljs.C_BLOCK_COMMENT_MODE,
121
+ NUMBERS,
122
+ STRINGS
123
+ ];
124
+
125
+ var EXPRESSION_CONTEXT = {
126
+ // This mode covers expression context where we can't expect a function
127
+ // definition and shouldn't highlight anything that looks like one:
128
+ // `return some()`, `else if()`, `(x*sum(1, 2))`
129
+ variants: [
130
+ {begin: /=/, end: /;/},
131
+ {begin: /\(/, end: /\)/},
132
+ {beginKeywords: 'new throw return else', end: /;/}
133
+ ],
134
+ keywords: CPP_KEYWORDS,
135
+ contains: EXPRESSION_CONTAINS.concat([
136
+ {
137
+ begin: /\(/, end: /\)/,
138
+ keywords: CPP_KEYWORDS,
139
+ contains: EXPRESSION_CONTAINS.concat(['self']),
140
+ relevance: 0
141
+ }
142
+ ]),
143
+ relevance: 0
144
+ };
145
+
146
+ var FUNCTION_DECLARATION = {
147
+ className: 'function',
148
+ begin: '(' + FUNCTION_TYPE_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
149
+ returnBegin: true, end: /[{;=]/,
150
+ excludeEnd: true,
151
+ keywords: CPP_KEYWORDS,
152
+ illegal: /[^\w\s\*&:<>]/,
153
+ contains: [
154
+
155
+ { // to prevent it from being confused as the function title
156
+ begin: DECLTYPE_AUTO_RE,
157
+ keywords: CPP_KEYWORDS,
158
+ relevance: 0,
159
+ },
160
+ {
161
+ begin: FUNCTION_TITLE, returnBegin: true,
162
+ contains: [TITLE_MODE],
163
+ relevance: 0
164
+ },
165
+ {
166
+ className: 'params',
167
+ begin: /\(/, end: /\)/,
168
+ keywords: CPP_KEYWORDS,
169
+ relevance: 0,
170
+ contains: [
171
+ hljs.C_LINE_COMMENT_MODE,
172
+ hljs.C_BLOCK_COMMENT_MODE,
173
+ STRINGS,
174
+ NUMBERS,
175
+ CPP_PRIMITIVE_TYPES,
176
+ // Count matching parentheses.
177
+ {
178
+ begin: /\(/, end: /\)/,
179
+ keywords: CPP_KEYWORDS,
180
+ relevance: 0,
181
+ contains: [
182
+ 'self',
183
+ hljs.C_LINE_COMMENT_MODE,
184
+ hljs.C_BLOCK_COMMENT_MODE,
185
+ STRINGS,
186
+ NUMBERS,
187
+ CPP_PRIMITIVE_TYPES
188
+ ]
189
+ }
190
+ ]
191
+ },
192
+ CPP_PRIMITIVE_TYPES,
193
+ hljs.C_LINE_COMMENT_MODE,
194
+ hljs.C_BLOCK_COMMENT_MODE,
195
+ PREPROCESSOR
196
+ ]
197
+ };
198
+
199
+ return {
200
+ aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx'],
201
+ keywords: CPP_KEYWORDS,
202
+ // the base c-like language will NEVER be auto-detected, rather the
203
+ // derivitives: c, c++, arduino turn auto-detect back on for themselves
204
+ disableAutodetect: true,
205
+ illegal: '</',
206
+ contains: [].concat(
207
+ EXPRESSION_CONTEXT,
208
+ FUNCTION_DECLARATION,
209
+ EXPRESSION_CONTAINS,
210
+ [
211
+ PREPROCESSOR,
212
+ {
213
+ begin: '\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
214
+ keywords: CPP_KEYWORDS,
215
+ contains: ['self', CPP_PRIMITIVE_TYPES]
216
+ },
217
+ {
218
+ begin: hljs.IDENT_RE + '::',
219
+ keywords: CPP_KEYWORDS
220
+ },
221
+ {
222
+ className: 'class',
223
+ beginKeywords: 'class struct', end: /[{;:]/,
224
+ contains: [
225
+ {begin: /</, end: />/, contains: ['self']}, // skip generic stuff
226
+ hljs.TITLE_MODE
227
+ ]
228
+ }
229
+ ]),
230
+ exports: {
231
+ preprocessor: PREPROCESSOR,
232
+ strings: STRINGS,
233
+ keywords: CPP_KEYWORDS
234
+ }
235
+ };
236
+ }
@@ -0,0 +1,22 @@
1
+ /*
2
+ Language: C
3
+ Category: common, system
4
+ Website: https://en.wikipedia.org/wiki/C_(programming_language)
5
+ Requires: c-like.js
6
+ */
7
+
8
+ export default function(hljs) {
9
+
10
+ var lang = hljs.getLanguage('c-like').rawDefinition();
11
+ // Until C is actually different than C++ there is no reason to auto-detect C
12
+ // as it's own language since it would just fail auto-detect testing or
13
+ // simply match with C++.
14
+ //
15
+ // See further comments in c-like.js.
16
+
17
+ // lang.disableAutodetect = false;
18
+ lang.name = 'C';
19
+ lang.aliases = ['c', 'h'];
20
+ return lang;
21
+
22
+ }
@@ -0,0 +1,132 @@
1
+ /*
2
+ Language: CSS
3
+ Category: common, css
4
+ Website: https://developer.mozilla.org/en-US/docs/Web/CSS
5
+ */
6
+
7
+ export default function(hljs) {
8
+ var FUNCTION_LIKE = {
9
+ begin: /[\w-]+\(/, returnBegin: true,
10
+ contains: [
11
+ {
12
+ className: 'built_in',
13
+ begin: /[\w-]+/
14
+ },
15
+ {
16
+ begin: /\(/, end: /\)/,
17
+ contains: [
18
+ hljs.APOS_STRING_MODE,
19
+ hljs.QUOTE_STRING_MODE,
20
+ hljs.CSS_NUMBER_MODE,
21
+ ]
22
+ }
23
+ ]
24
+ }
25
+ var ATTRIBUTE = {
26
+ className: 'attribute',
27
+ begin: /\S/, end: ':', excludeEnd: true,
28
+ starts: {
29
+ endsWithParent: true, excludeEnd: true,
30
+ contains: [
31
+ FUNCTION_LIKE,
32
+ hljs.CSS_NUMBER_MODE,
33
+ hljs.QUOTE_STRING_MODE,
34
+ hljs.APOS_STRING_MODE,
35
+ hljs.C_BLOCK_COMMENT_MODE,
36
+ {
37
+ className: 'number', begin: '#[0-9A-Fa-f]+'
38
+ },
39
+ {
40
+ className: 'meta', begin: '!important'
41
+ }
42
+ ]
43
+ }
44
+ }
45
+ var AT_IDENTIFIER = '@[a-z-]+' // @font-face
46
+ var AT_MODIFIERS = "and or not only"
47
+ var MEDIA_TYPES = "all print screen speech"
48
+ var AT_PROPERTY_RE = /@\-?\w[\w]*(\-\w+)*/ // @-webkit-keyframes
49
+ var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
50
+ var RULE = {
51
+ begin: /(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/, returnBegin: true, end: ';', endsWithParent: true,
52
+ contains: [
53
+ ATTRIBUTE
54
+ ]
55
+ };
56
+
57
+ return {
58
+ name: 'CSS',
59
+ case_insensitive: true,
60
+ illegal: /[=\/|'\$]/,
61
+ contains: [
62
+ hljs.C_BLOCK_COMMENT_MODE,
63
+ {
64
+ className: 'selector-id', begin: /#[A-Za-z0-9_-]+/
65
+ },
66
+ {
67
+ className: 'selector-class', begin: /\.[A-Za-z0-9_-]+/
68
+ },
69
+ {
70
+ className: 'selector-attr',
71
+ begin: /\[/, end: /\]/,
72
+ illegal: '$',
73
+ contains: [
74
+ hljs.APOS_STRING_MODE,
75
+ hljs.QUOTE_STRING_MODE,
76
+ ]
77
+ },
78
+ {
79
+ className: 'selector-pseudo',
80
+ begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/
81
+ },
82
+ // matching these here allows us to treat them more like regular CSS
83
+ // rules so everything between the {} gets regular rule highlighting,
84
+ // which is what we want for page and font-face
85
+ {
86
+ begin: '@(page|font-face)',
87
+ lexemes: AT_IDENTIFIER,
88
+ keywords: '@page @font-face'
89
+ },
90
+ {
91
+ begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
92
+ // because it doesn’t let it to be parsed as
93
+ // a rule set but instead drops parser into
94
+ // the default mode which is how it should be.
95
+ illegal: /:/, // break on Less variables @var: ...
96
+ returnBegin: true,
97
+ contains: [
98
+ {
99
+ className: 'keyword',
100
+ begin: AT_PROPERTY_RE
101
+ },
102
+ {
103
+ begin: /\s/, endsWithParent: true, excludeEnd: true,
104
+ relevance: 0,
105
+ keywords: AT_MODIFIERS,
106
+ contains: [
107
+ {
108
+ begin: /[a-z-]+:/,
109
+ className:"attribute"
110
+ },
111
+ hljs.APOS_STRING_MODE,
112
+ hljs.QUOTE_STRING_MODE,
113
+ hljs.CSS_NUMBER_MODE
114
+ ]
115
+ }
116
+ ]
117
+ },
118
+ {
119
+ className: 'selector-tag', begin: IDENT_RE,
120
+ relevance: 0
121
+ },
122
+ {
123
+ begin: '{', end: '}',
124
+ illegal: /\S/,
125
+ contains: [
126
+ hljs.C_BLOCK_COMMENT_MODE,
127
+ RULE,
128
+ ]
129
+ }
130
+ ]
131
+ };
132
+ }
@@ -0,0 +1,134 @@
1
+ /*
2
+ Language: Dart
3
+ Requires: markdown.js
4
+ Author: Maxim Dikun <dikmax@gmail.com>
5
+ Description: Dart a modern, object-oriented language developed by Google. For more information see https://www.dartlang.org/
6
+ Website: https://dart.dev
7
+ Category: scripting
8
+ */
9
+
10
+ export default function(hljs) {
11
+ var SUBST = {
12
+ className: 'subst',
13
+ variants: [{
14
+ begin: '\\$[A-Za-z0-9_]+'
15
+ }],
16
+ };
17
+
18
+ var BRACED_SUBST = {
19
+ className: 'subst',
20
+ variants: [{
21
+ begin: '\\${',
22
+ end: '}'
23
+ }, ],
24
+ keywords: 'true false null this is new super',
25
+ };
26
+
27
+ var STRING = {
28
+ className: 'string',
29
+ variants: [{
30
+ begin: 'r\'\'\'',
31
+ end: '\'\'\''
32
+ },
33
+ {
34
+ begin: 'r"""',
35
+ end: '"""'
36
+ },
37
+ {
38
+ begin: 'r\'',
39
+ end: '\'',
40
+ illegal: '\\n'
41
+ },
42
+ {
43
+ begin: 'r"',
44
+ end: '"',
45
+ illegal: '\\n'
46
+ },
47
+ {
48
+ begin: '\'\'\'',
49
+ end: '\'\'\'',
50
+ contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
51
+ },
52
+ {
53
+ begin: '"""',
54
+ end: '"""',
55
+ contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
56
+ },
57
+ {
58
+ begin: '\'',
59
+ end: '\'',
60
+ illegal: '\\n',
61
+ contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
62
+ },
63
+ {
64
+ begin: '"',
65
+ end: '"',
66
+ illegal: '\\n',
67
+ contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
68
+ }
69
+ ]
70
+ };
71
+ BRACED_SUBST.contains = [
72
+ hljs.C_NUMBER_MODE, STRING
73
+ ];
74
+
75
+ var KEYWORDS = {
76
+ keyword: 'abstract as assert async await break case catch class const continue covariant default deferred do ' +
77
+ 'dynamic else enum export extends extension external factory false final finally for Function get hide if ' +
78
+ 'implements import in inferface is library mixin new null on operator part rethrow return set show static ' +
79
+ 'super switch sync this throw true try typedef var void while with yield',
80
+ built_in:
81
+ // dart:core
82
+ 'Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set ' +
83
+ 'Stopwatch String StringBuffer StringSink Symbol Type Uri bool double dynamic int num print ' +
84
+ // dart:html
85
+ 'Element ElementList document querySelector querySelectorAll window'
86
+ };
87
+
88
+ return {
89
+ name: 'Dart',
90
+ keywords: KEYWORDS,
91
+ contains: [
92
+ STRING,
93
+ hljs.COMMENT(
94
+ '/\\*\\*',
95
+ '\\*/', {
96
+ subLanguage: 'markdown',
97
+ relevance:0
98
+ }
99
+ ),
100
+ hljs.COMMENT(
101
+ '///+\\s*',
102
+ '$', {
103
+ contains: [{
104
+ subLanguage: 'markdown',
105
+ begin: '.',
106
+ end: '$',
107
+ relevance:0
108
+ }]
109
+ }
110
+ ),
111
+ hljs.C_LINE_COMMENT_MODE,
112
+ hljs.C_BLOCK_COMMENT_MODE,
113
+ {
114
+ className: 'class',
115
+ beginKeywords: 'class interface',
116
+ end: '{',
117
+ excludeEnd: true,
118
+ contains: [{
119
+ beginKeywords: 'extends implements'
120
+ },
121
+ hljs.UNDERSCORE_TITLE_MODE
122
+ ]
123
+ },
124
+ hljs.C_NUMBER_MODE,
125
+ {
126
+ className: 'meta',
127
+ begin: '@[A-Za-z]+'
128
+ },
129
+ {
130
+ begin: '=>' // No markup, just a relevance booster
131
+ }
132
+ ]
133
+ }
134
+ }