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.
- package/app.js +22 -0
- package/app.json +53 -0
- package/app.wxss +15 -0
- package/assets/file/badwords.js +63008 -0
- package/assets/file/rules.js +38 -0
- package/assets/images/emoji/smile001.png +0 -0
- package/assets/images/emoji/smile002.png +0 -0
- package/assets/images/emoji/smile003.png +0 -0
- package/assets/images/emoji/smile004.png +0 -0
- package/assets/images/emoji/smile005.png +0 -0
- package/assets/images/emoji/smile006.png +0 -0
- package/assets/images/emoji/smile007.png +0 -0
- package/assets/images/emoji/smile008.png +0 -0
- package/assets/images/emoji/smile009.png +0 -0
- package/assets/images/emoji/smile010.png +0 -0
- package/assets/images/emoji/smile011.png +0 -0
- package/assets/images/emoji/smile012.png +0 -0
- package/assets/images/emoji/smile013.png +0 -0
- package/assets/images/emoji/smile014.png +0 -0
- package/assets/images/emoji/smile015.png +0 -0
- package/assets/images/emoji/smile016.png +0 -0
- package/assets/images/emoji/smile017.png +0 -0
- package/assets/images/emoji/smile018.png +0 -0
- package/assets/images/emoji/smile019.png +0 -0
- package/assets/images/emoji/smile020.png +0 -0
- package/assets/images/emoji/smile021.png +0 -0
- package/assets/images/emoji/smile022.png +0 -0
- package/assets/images/emoji/smile023.png +0 -0
- package/assets/images/emoji/smile024.png +0 -0
- package/assets/images/emoji/smile025.png +0 -0
- package/assets/images/emoji/smile026.png +0 -0
- package/assets/images/emoji/smile027.png +0 -0
- package/assets/images/emoji/smile028.png +0 -0
- package/assets/images/emoji/smile029.png +0 -0
- package/assets/images/emoji/smile030.png +0 -0
- package/assets/images/emoji/smile031.png +0 -0
- package/assets/images/emoji/smile032.png +0 -0
- package/assets/images/emoji/smile033.png +0 -0
- package/assets/images/emoji/smile034.png +0 -0
- package/assets/images/emoji/smile035.png +0 -0
- package/assets/images/emoji/smile036.png +0 -0
- package/assets/images/emoji/smile037.png +0 -0
- package/assets/images/emoji/smile038.png +0 -0
- package/assets/images/emoji/smile039.png +0 -0
- package/assets/images/emoji/smile040.png +0 -0
- package/assets/images/emoji/smile041.png +0 -0
- package/assets/images/emoji/smile042.png +0 -0
- package/assets/images/emoji/smile043.png +0 -0
- package/assets/images/emoji/smile044.png +0 -0
- package/assets/images/emoji/smile045.png +0 -0
- package/assets/images/emoji/smile046.png +0 -0
- package/assets/images/emoji/smile047.png +0 -0
- package/assets/images/emoji/smile048.png +0 -0
- package/assets/images/emoji/smile049.png +0 -0
- package/assets/images/emoji/smile050.png +0 -0
- package/assets/images/emoji/smile051.png +0 -0
- package/assets/images/emoji/smile052.png +0 -0
- package/assets/images/icons/age1.png +0 -0
- package/assets/images/icons/age2.png +0 -0
- package/assets/images/icons/age3.png +0 -0
- package/assets/images/icons/attachment.png +0 -0
- package/assets/images/icons/clear.png +0 -0
- package/assets/images/icons/edit_input.png +0 -0
- package/assets/images/icons/header_placeholder.png +0 -0
- package/assets/images/icons/home_collect.png +0 -0
- package/assets/images/icons/home_collected.png +0 -0
- package/assets/images/icons/home_comment.png +0 -0
- package/assets/images/icons/home_like.png +0 -0
- package/assets/images/icons/home_liked.png +0 -0
- package/assets/images/icons/home_message.png +0 -0
- package/assets/images/icons/home_share.png +0 -0
- package/assets/images/icons/icon_more.png +0 -0
- package/assets/images/icons/input_game.png +0 -0
- package/assets/images/icons/logo.png +0 -0
- package/assets/images/icons/lv1.png +0 -0
- package/assets/images/icons/lv2.png +0 -0
- package/assets/images/icons/lv3.png +0 -0
- package/assets/images/icons/lv4.png +0 -0
- package/assets/images/icons/search.png +0 -0
- package/assets/images/icons/sex1.png +0 -0
- package/assets/images/icons/sex2.png +0 -0
- package/assets/images/icons/sign_empty.png +0 -0
- package/assets/images/icons/sign_login.png +0 -0
- package/assets/wheel/wheel_bg.png +0 -0
- package/assets/wheel/wheel_bg2.png +0 -0
- package/assets/wheel/wheel_fore.png +0 -0
- package/assets/wheel/wheel_to.png +0 -0
- package/components/bottomSheet/bottomSheet.js +473 -0
- package/components/bottomSheet/bottomSheet.json +3 -0
- package/components/bottomSheet/bottomSheet.wxml +73 -0
- package/components/bottomSheet/bottomSheet.wxss +238 -0
- package/components/experience-item/experience-item.js +105 -0
- package/components/experience-item/experience-item.json +4 -0
- package/components/experience-item/experience-item.wxml +39 -0
- package/components/experience-item/experience-item.wxss +110 -0
- package/components/grid-item/grid-item.js +8 -0
- package/components/grid-item/grid-item.json +4 -0
- package/components/grid-item/grid-item.wxml +62 -0
- package/components/grid-item/grid-item.wxss +191 -0
- package/components/post-item/post-item.js +1085 -0
- package/components/post-item/post-item.json +4 -0
- package/components/post-item/post-item.wxml +427 -0
- package/components/post-item/post-item.wxss +525 -0
- package/components/wiki-renderer/wiki-renderer.js +636 -0
- package/components/wiki-renderer/wiki-renderer.json +12 -0
- package/components/wiki-renderer/wiki-renderer.wxml +150 -0
- package/components/wiki-renderer/wiki-renderer.wxss +412 -0
- package/components/wiki-tabs/wiki-tabs.js +52 -0
- package/components/wiki-tabs/wiki-tabs.json +3 -0
- package/components/wiki-tabs/wiki-tabs.wxml +28 -0
- package/components/wiki-tabs/wiki-tabs.wxss +43 -0
- package/index.js +49 -0
- package/package.json +35 -0
- package/pages/addGame/addGame.js +454 -0
- package/pages/addGame/addGame.json +3 -0
- package/pages/addGame/addGame.wxml +71 -0
- package/pages/addGame/addGame.wxss +110 -0
- package/pages/addSubject/addSubject.js +199 -0
- package/pages/addSubject/addSubject.json +4 -0
- package/pages/addSubject/addSubject.wxml +78 -0
- package/pages/addSubject/addSubject.wxss +85 -0
- package/pages/commonLogin/commonLogin.js +269 -0
- package/pages/commonLogin/commonLogin.json +4 -0
- package/pages/commonLogin/commonLogin.wxml +57 -0
- package/pages/commonLogin/commonLogin.wxss +177 -0
- package/pages/copyOfficial/copyOfficial.js +25 -0
- package/pages/copyOfficial/copyOfficial.json +3 -0
- package/pages/copyOfficial/copyOfficial.wxml +22 -0
- package/pages/copyOfficial/copyOfficial.wxss +49 -0
- package/pages/demo/demo.js +23 -0
- package/pages/demo/demo.json +3 -0
- package/pages/demo/demo.wxml +8 -0
- package/pages/demo/demo.wxss +24 -0
- package/pages/game/game.js +1254 -0
- package/pages/game/game.json +8 -0
- package/pages/game/game.wxml +371 -0
- package/pages/game/game.wxss +672 -0
- package/pages/home/home.js +665 -0
- package/pages/home/home.json +10 -0
- package/pages/home/home.wxml +115 -0
- package/pages/home/home.wxss +231 -0
- package/pages/lottery-winners/lottery-winners.js +60 -0
- package/pages/lottery-winners/lottery-winners.json +4 -0
- package/pages/lottery-winners/lottery-winners.wxml +53 -0
- package/pages/lottery-winners/lottery-winners.wxss +127 -0
- package/pages/message/messageCommentsAndAt/messageCommentsAndAt.js +178 -0
- package/pages/message/messageCommentsAndAt/messageCommentsAndAt.json +5 -0
- package/pages/message/messageCommentsAndAt/messageCommentsAndAt.wxml +93 -0
- package/pages/message/messageCommentsAndAt/messageCommentsAndAt.wxss +177 -0
- package/pages/message/messageEntire/messageEntire.js +112 -0
- package/pages/message/messageEntire/messageEntire.json +4 -0
- package/pages/message/messageEntire/messageEntire.wxml +44 -0
- package/pages/message/messageEntire/messageEntire.wxss +88 -0
- package/pages/message/messageLikeAndCollect/messageLikeAndCollect.js +147 -0
- package/pages/message/messageLikeAndCollect/messageLikeAndCollect.json +5 -0
- package/pages/message/messageLikeAndCollect/messageLikeAndCollect.wxml +84 -0
- package/pages/message/messageLikeAndCollect/messageLikeAndCollect.wxss +166 -0
- package/pages/message/messageNewFans/messageNewFans.js +139 -0
- package/pages/message/messageNewFans/messageNewFans.json +5 -0
- package/pages/message/messageNewFans/messageNewFans.wxml +35 -0
- package/pages/message/messageNewFans/messageNewFans.wxss +85 -0
- package/pages/officialWebview/officialWebview.js +13 -0
- package/pages/officialWebview/officialWebview.json +3 -0
- package/pages/officialWebview/officialWebview.wxml +2 -0
- package/pages/officialWebview/officialWebview.wxss +1 -0
- package/pages/post/post.js +1856 -0
- package/pages/post/post.json +6 -0
- package/pages/post/post.wxml +694 -0
- package/pages/post/post.wxss +1003 -0
- package/pages/post-editor/post-editor.js +465 -0
- package/pages/post-editor/post-editor.json +4 -0
- package/pages/post-editor/post-editor.wxml +63 -0
- package/pages/post-editor/post-editor.wxss +195 -0
- package/pages/postDialog/postDialog.js +560 -0
- package/pages/postDialog/postDialog.json +6 -0
- package/pages/postDialog/postDialog.wxml +377 -0
- package/pages/postDialog/postDialog.wxss +979 -0
- package/pages/report-category/report-category.js +29 -0
- package/pages/report-category/report-category.json +4 -0
- package/pages/report-category/report-category.wxml +14 -0
- package/pages/report-category/report-category.wxss +43 -0
- package/pages/report-form/report-form.js +65 -0
- package/pages/report-form/report-form.json +3 -0
- package/pages/report-form/report-form.wxml +11 -0
- package/pages/report-form/report-form.wxss +44 -0
- package/pages/sevenDaySignDetail/sevenDaySignDetail.js +273 -0
- package/pages/sevenDaySignDetail/sevenDaySignDetail.json +3 -0
- package/pages/sevenDaySignDetail/sevenDaySignDetail.wxml +82 -0
- package/pages/sevenDaySignDetail/sevenDaySignDetail.wxss +173 -0
- package/pages/topic/topic.js +266 -0
- package/pages/topic/topic.json +6 -0
- package/pages/topic/topic.wxml +77 -0
- package/pages/topic/topic.wxss +162 -0
- package/pages/user/user.js +939 -0
- package/pages/user/user.json +5 -0
- package/pages/user/user.wxml +179 -0
- package/pages/user/user.wxss +340 -0
- package/pages/userDatum/userDatum.js +24 -0
- package/pages/userDatum/userDatum.json +4 -0
- package/pages/userDatum/userDatum.wxml +36 -0
- package/pages/userDatum/userDatum.wxss +41 -0
- package/pages/userGameLib/userGameLib.js +105 -0
- package/pages/userGameLib/userGameLib.json +4 -0
- package/pages/userGameLib/userGameLib.wxml +42 -0
- package/pages/userGameLib/userGameLib.wxss +119 -0
- package/pages/webview/webview.js +25 -0
- package/pages/webview/webview.json +3 -0
- package/pages/webview/webview.wxml +22 -0
- package/pages/webview/webview.wxss +50 -0
- package/pages/wheelActivivty/wheelActivivty.js +492 -0
- package/pages/wheelActivivty/wheelActivivty.json +8 -0
- package/pages/wheelActivivty/wheelActivivty.wxml +131 -0
- package/pages/wheelActivivty/wheelActivivty.wxss +459 -0
- package/pages/wiki/wiki.js +138 -0
- package/pages/wiki/wiki.json +6 -0
- package/pages/wiki/wiki.wxml +20 -0
- package/pages/wiki/wiki.wxss +44 -0
- package/request/JKRequest.js +177 -0
- package/services/home.js +603 -0
- package/towxml/config.js +291 -0
- package/towxml/decode.js +35 -0
- package/towxml/decode.json +11 -0
- package/towxml/decode.wxml +137 -0
- package/towxml/decode.wxss +0 -0
- package/towxml/img/img.js +98 -0
- package/towxml/img/img.json +3 -0
- package/towxml/img/img.wxml +1 -0
- package/towxml/img/img.wxss +0 -0
- package/towxml/index.js +19 -0
- package/towxml/latex/latex.js +53 -0
- package/towxml/latex/latex.json +5 -0
- package/towxml/latex/latex.wxml +1 -0
- package/towxml/latex/latex.wxss +0 -0
- package/towxml/parse/highlight/highlight.js +1 -0
- package/towxml/parse/highlight/index.js +8 -0
- package/towxml/parse/highlight/languages/bash.js +111 -0
- package/towxml/parse/highlight/languages/c-like.js +236 -0
- package/towxml/parse/highlight/languages/c.js +22 -0
- package/towxml/parse/highlight/languages/css.js +132 -0
- package/towxml/parse/highlight/languages/dart.js +134 -0
- package/towxml/parse/highlight/languages/go.js +63 -0
- package/towxml/parse/highlight/languages/htmlbars.js +80 -0
- package/towxml/parse/highlight/languages/java.js +125 -0
- package/towxml/parse/highlight/languages/javascript.js +265 -0
- package/towxml/parse/highlight/languages/json.js +52 -0
- package/towxml/parse/highlight/languages/less.js +148 -0
- package/towxml/parse/highlight/languages/nginx.js +101 -0
- package/towxml/parse/highlight/languages/php.js +161 -0
- package/towxml/parse/highlight/languages/python-repl.js +29 -0
- package/towxml/parse/highlight/languages/python.js +131 -0
- package/towxml/parse/highlight/languages/scss.js +122 -0
- package/towxml/parse/highlight/languages/shell.js +22 -0
- package/towxml/parse/highlight/languages/typescript.js +215 -0
- package/towxml/parse/highlight/languages/xml.js +139 -0
- package/towxml/parse/highlight/style/github.wxss +99 -0
- package/towxml/parse/highlight/style/monokai.wxss +70 -0
- package/towxml/parse/index.js +118 -0
- package/towxml/parse/markdown/index.js +67 -0
- package/towxml/parse/markdown/markdown.js +4 -0
- package/towxml/parse/markdown/plugins/echarts.js +11 -0
- package/towxml/parse/markdown/plugins/emoji.js +2 -0
- package/towxml/parse/markdown/plugins/ins.js +1 -0
- package/towxml/parse/markdown/plugins/latex.js +158 -0
- package/towxml/parse/markdown/plugins/mark.js +1 -0
- package/towxml/parse/markdown/plugins/sub.js +1 -0
- package/towxml/parse/markdown/plugins/sup.js +1 -0
- package/towxml/parse/markdown/plugins/todo.js +147 -0
- package/towxml/parse/markdown/plugins/yuml.js +20 -0
- package/towxml/parse/parse2/Parser.js +492 -0
- package/towxml/parse/parse2/Tokenizer.js +903 -0
- package/towxml/parse/parse2/domelementtype/index.js +55 -0
- package/towxml/parse/parse2/domhandler/index.js +145 -0
- package/towxml/parse/parse2/domhandler/node.js +474 -0
- package/towxml/parse/parse2/entities/decode.js +179 -0
- package/towxml/parse/parse2/entities/decode_codepoint.js +60 -0
- package/towxml/parse/parse2/entities/encode.js +77 -0
- package/towxml/parse/parse2/entities/escape.js +112 -0
- package/towxml/parse/parse2/entities/generated/decode-data-html.js +9 -0
- package/towxml/parse/parse2/entities/generated/decode-data-xml.js +9 -0
- package/towxml/parse/parse2/entities/generated/encode-html.js +12 -0
- package/towxml/parse/parse2/entities/index.js +137 -0
- package/towxml/parse/parse2/index.js +8 -0
- package/towxml/style/main.wxss +419 -0
- package/towxml/style/theme/dark.wxss +73 -0
- package/towxml/style/theme/light.wxss +63 -0
- package/towxml/table/table.js +11 -0
- package/towxml/table/table.json +6 -0
- package/towxml/table/table.wxml +24 -0
- package/towxml/table/table.wxss +0 -0
- package/towxml/todogroup/todogroup.js +20 -0
- package/towxml/todogroup/todogroup.json +6 -0
- package/towxml/todogroup/todogroup.wxml +12 -0
- package/towxml/todogroup/todogroup.wxss +3 -0
- package/towxml/towxml.js +22 -0
- package/towxml/towxml.json +6 -0
- package/towxml/towxml.wxml +5 -0
- package/towxml/towxml.wxss +8 -0
- package/towxml/yuml/yuml.js +51 -0
- package/towxml/yuml/yuml.json +5 -0
- package/towxml/yuml/yuml.wxml +5 -0
- package/towxml/yuml/yuml.wxss +0 -0
- package/utils/auth.js +17 -0
- package/utils/base64.js +67 -0
- package/utils/compressImage.js +41 -0
- package/utils/exp.js +49 -0
- package/utils/formatPost.js +18 -0
- package/utils/parseContent.js +191 -0
- package/utils/query-select.js +9 -0
- 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,"&").replace(/</g,"<").replace(/>/g,">")}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,""")+'"'}).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
|
+
}
|