- // ==UserScript==
- // @name Markdown Viewer Lite
- // @namespace http://tampermonkey.net/
- // @version 0.5.2
- // @description view Markdown in Chrome,23 common language surportted
- // @require https://cdn.staticfile.org/zepto/1.2.0/zepto.min.js
- // @require https://greasyfork.org/scripts/34223-doccodestyle/code/docCodeStyle.js?version=225061
- // @require https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.6/marked.min.js
- // @require https://greasyfork.org/scripts/34224-prism23-js/code/prism23js.js?version=224302
- // @resource http://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
- // @author 黄盐
- // @match file:///*md
- // @match file:///*markdown
- // @match file:///*mdown
- // @grant GM_addStyle
- // @grant GM_setValue
- // @grant GM_getValue
- // @grant unsafeWindow
- // @run-at document-end
- // ==/UserScript==
- /* jshint esversion: 6 */
- (function() {
- 'use strict';
- var codeStyleElementId = 'prismCT'; //prism code theme
- var docStyleElementId = 'docTheme';
- var TIMESTEP = 500; //setInterval argument milliseconds
- var addonRsc = {
- 'EMOJI':['emojiJs','emojiCss'],
- 'KATEX':['katexCss', 'katexJs', 'autoRenderJs'],
- 'FLOWCHART':['raphaelJs', 'flowchartJs'],
- 'FONTAWESOME':['fontAwesomeCss'],
- 'MERMAID':['mermaidJs'],
- 'SEQUENCEDIAGRAM':['webfont', 'snapSVG', 'underscore', 'sqcDiagr'],
- 'TOC':['zTreeCore', 'ztree_toc', 'tocCss']
- };
- var addonDefaultState = {
- 'EMOJI':false,
- 'KATEX':false,
- 'FLOWCHART':false,
- 'FONTAWESOME':false,
- 'MERMAID':false,
- 'SEQUENCEDIAGRAM':false,
- 'TOC':false
- };
- var resource = {
- 'zEpto': 'https://cdn.staticfile.org/zepto/1.2.0/zepto.min.js',
- /*EMOJI*/
- 'emojiCss': {
- 'type': 'link',
- 'id': 'emojiCss',
- 'rel': 'stylesheet',
- 'href': 'https://cdn.jsdelivr.net/npm/emojione@3.1.2/extras/css/emojione.min.css'
- },
- 'emojiJs': {
- 'type': 'script',
- 'id': 'emojiJs',
- 'src': 'https://cdn.jsdelivr.net/npm/emojione@3.1.2/lib/js/emojione.min.js'
- },
- /*FONT AWESOME*/
- 'fontAwesomeCss': {
- 'type': 'link',
- 'id': 'fontAwesomeCss',
- 'rel': 'stylesheet',
- 'href': 'http://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'
- },
- /*KATEX*/
- 'katexCss': {
- 'type': 'link',
- 'id': 'katexCss',
- 'rel': 'stylesheet',
- 'href': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.9.0-alpha1/katex.min.css'
- },
- 'katexJs': {
- 'type': 'script',
- 'id': 'katexJs',
- 'src': 'https://greasyfork.org/scripts/34253-katex/code/KaTeX.js?version=224512'
- },
- 'autoRenderJs': {
- 'type': 'script',
- 'id': 'autoRenderJs',
- 'src': 'https://cdn.staticfile.org/KaTeX/0.7.1/contrib/auto-render.min.js'
- },
- /*FLOWCHART*/
- 'flowchartJs': {
- 'type': 'script',
- 'id': 'flowchartJs',
- 'src': 'https://cdn.staticfile.org/flowchart/1.6.5/flowchart.min.js'
- },
- 'raphaelJs': {
- 'type': 'script',
- 'id': 'raphaelJs',
- 'src': 'http://cdnjs.cloudflare.com/ajax/libs/raphael/2.2.0/raphael-min.js'
- },
- /*MERMAID*/
- 'mermaidJs':{
- 'type':'script',
- 'id':'mermaidJs',
- 'src':'https://unpkg.com/mermaid@7.1.0/dist/mermaid.min.js'
- },
- /*SEQUENCEDIAGRAM*/
- 'webfont': {
- 'type': 'script',
- 'id': 'webfont',
- 'src': 'http://apps.bdimg.com/libs/webfont/1.3.0/webfont.js'
- },
- 'snapSVG': {
- 'type': 'script',
- 'id': 'snapSVG',
- 'src': 'https://cdn.staticfile.org/snap.svg/0.5.1/snap.svg-min.js'
- },
- 'underscore': {
- 'type': 'script',
- 'id': 'underscore',
- 'src': 'http://apps.bdimg.com/libs/underscore.js/1.7.0/underscore-min.js'
- },
- 'sqcDiagr': {
- 'type': 'script',
- 'id': 'sqcDiagr',
- 'src': 'https://bramp.github.io/js-sequence-diagrams/js/sequence-diagram-min.js'
- },
- /*TOC table of content*/
- 'zTreeCore': {
- 'type': 'script',
- 'id': 'zTreeCore',
- 'src': 'https://greasyfork.org/scripts/34616-ztreetoccore/code/ztreeTocCore.js?version=226804'
- },
- 'ztree_toc': {
- 'type': 'script',
- 'id': 'ztree_toc',
- 'src': 'https://greasyfork.org/scripts/34617-ztreetoc/code/ztreeToc.js?version=226909'
- },
- 'tocCss': {
- 'type': 'script',
- 'id': 'tocCss',
- 'src': 'https://greasyfork.org/scripts/34615-ztreecss/code/ztreeCss.js?version=226902'
- }
- };
- var optionsDefault = {
- 'breaks': false,
- 'gfm': true,
- 'pedantic': false,
- 'sanitize': false,
- 'smartLists': true,
- 'smartypants': false,
- 'tables': true,
- };
- var autoKatexOptDefault = {
- 'throwOnError': true,
- 'errorColor': '#f92672',
- 'macros': '',
- 'colorIsTextColor': false,
- 'maxSize': 500,
- 'ignoredTags': ["script", "noscript", "style", "textarea"],
- 'delimiters': [{
- left: "$$",
- right: "$$",
- display: true
- }, {
- left: "\\[",
- right: "\\]",
- display: true
- }, {
- left: "\\(",
- right: "\\)",
- display: true
- }]
- };
- /* check/set GM_*Value */
- void function checkSetStorage(){
- if(GM_getValue('prismCT') === undefined) GM_setValue('prismCT', prismCT);
- if(GM_getValue('docTheme') === undefined) GM_setValue('docTheme', docTheme);
- if(GM_getValue('options') === undefined) GM_setValue('options', optionsDefault);
- if(GM_getValue('curPismCodeTheme') === undefined) GM_setValue('curPismCodeTheme', 'solarized');
- if(GM_getValue('curDocTheme') === undefined) GM_setValue('curDocTheme', 'github');
- if(GM_getValue('addonState') === undefined) GM_setValue('addonState', addonDefaultState);
- if(GM_getValue('emojiMode') === undefined) GM_setValue('emojiMode', 'shortnameToImage');
- if(GM_getValue('autoKatexOpt') === undefined) GM_setValue('autoKatexOpt', autoKatexOptDefault);
- }();
- /* check and set div#_html class #require docCodeStyle.js */
- function _htmlClass() {
- var a = GM_getValue('curDocTheme');
- if (a === 'github' || a === 'github_dark') {
- $('#_html').addClass('markdown-body');
- } else {
- $('#_html').addClass('markdown-theme');
- }
- }
- /* addons : Add styleshtte/script to <head> */
- function addonPrepare(addonName){
- addonRsc[addonName].forEach(function(curVal) {
- if(!$('#'+curVal).length){
- if (resource[curVal].type === 'script') {
- $('head').append($('<script>', {
- id: resource[curVal].id,
- src: resource[curVal].src
- }));
- } else {
- $('head').append($('<link />', {
- id: resource[curVal].id,
- href: resource[curVal].href,
- rel: resource[curVal].rel
- }));
- }
- }
- });
- }
- /* change code style or document style */
- function changeStyle(e) {
- var a = e.target.dataset.type; //docTheme|prismCT
- var b = e.target.dataset.theme; //themename
- var tmp = GM_getValue(a);
- $('#' + a).html(tmp[b]);
- //changeElementStyle
- if(a === 'docTheme'){(GM_setValue('curDocTheme', b), _htmlClass());}
- else{GM_setValue('curPismCodeTheme', b);}
- $(`#g legend[data-type=${a}`).each(function() {
- this.dataset.using = false;
- });
- $(`#g legend[data-theme=${b}`).data('using', true);
- }
- /* parse according to options */
- function changeOption(e) {
- var a = e.target.dataset.opt;
- var opt = GM_getValue('options');
- opt[a] = !opt[a];
- GM_setValue('options', opt);
- var htmlTxt = marked($('#markdownText').val(), opt);
- $('#_html').html(htmlTxt);
- setTimeout(() => Prism.highlightAll(), 20);
- //changeElementStyle
- $(`#g legend[data-opt=${a}]`).data('using', opt[a]);
- }
- /* turn off/turn on addons */
- function toggleAddons(e){
- var a = e.target.dataset.name;
- $(e.target).toggleClass('adoff');
- var b = GM_getValue('addonState');
- b[a] = !b[a];
- var c = b[a];
- GM_setValue('addonState',b);
- reflesh();
- function reflesh(){
- var renderer = new marked.Renderer();
- var markedOptions = GM_getValue('options');
- $('body script').remove();
- $('#_html').html(marked($('#markdownText').val(),markedOptions));
- checkRunAddons();
- setTimeout(() => Prism.highlightAll(), 20);
- }
- }
- /* parse text to emoji */
- function useEmoji(){
- addonPrepare('EMOJI');
- function procEmoji(){
- if (typeof(emojione) === 'object'){
- try {
- $('#_html').html( emojione.shortnameToImage($('#_html').html()) );
- } catch(e) {
- console.log(e);
- }
- } else{
- procENum += 1;
- console.log(procENum);
- if(procENum>10){
- console.log('Time out,please try to reflash !');
- return;
- }
- setTimeout(procEmoji, 100);
-
- }
- }
- if($('#excEmoji').length){$('#excEmoji').remove();}
- $('body').append($('<script>',{
- id:'excEmoji',
- text:`
- var procENum = 0;
- ${procEmoji.toString()};
- setTimeout(procEmoji, 200);
- `
- }));
- }
- /* Use katex */
- function useKaTeX() {
- addonPrepare('KATEX');
- function trigOnKatex(){
- $('code[class*=lang]').forEach(function(item){
- var language = item.className.slice(9);
- var code = $(item).text();
- if(language.match(/(katex|math)/i)!==null){
- var tmp = $(item).text();
- var num = item.parentNode.dataset.num;
- $(item).unwrap();
- $(item).replaceWith(`<div class='ktmath' data-num=${num}>\\[${(tmp.replace(/\n\W*\n/g,'\n\\]\\[\n'))}\\]</div>`);
- }
- });
- renderMathInElement($('#_html')[0], option);
- }
- function procKatexCode() {
- if (typeof(katex) === 'object') {
- try {
- trigOnKatex();
- } catch(e) {
- console.log(e);
- procktNum += 1;
- if (procktNum > 15) {
- console.log('Use kaTeX Fail, try to Reflush! ');
- return;
- }
- setTimeout(procKatexCode,500);
- }
- } else {
- procktNum += 1;
- if (procktNum > 10) {
- console.log('Use kaTeX Fail, try to Reflush! ');
- return;
- }
- setTimeout(procKatexCode,500);
- }
- }
- if($('#excAutoRender').length){$('#excAutoRender').remove();}
- $('body').append($('<script>', {
- id: 'excAutoRender',
- text: `
- var procktNum;
- var option = ${JSON.stringify(GM_getValue('autoKatexOpt'))};
- ${trigOnKatex.toString()}
- ${procKatexCode.toString()}
- setTimeout(procKatexCode, ${TIMESTEP});
- `
- }));
- }
- /* use flowchart */
- function useFlowchart() {
- addonPrepare('FLOWCHART');
-
- function procFlowchartCode() {
- if (typeof(flowchart) === 'object') {
- try {
- $('pre[class$=flow]').each(function(index) {
- var txt = $(this.firstElementChild).text();
- var a = $('<div>', {
- id: "fl" + index
- });
- $(this).append(a);
- flowchart.parse(txt).drawSVG(a[0]);
- $(this).replaceWith(a);
- });
- } catch(e) {
- procFcNum += 1;
- if (procFcNum > $('pre[class$=flow]').length+5){
-
- console.log(e);
- console.log(`convert FlowChart falid! try to Reflush!\\n[Error]:` );
- return ;
- }
- setTimeout(procFlowchartCode, 500);
- }
- } else {
- t1 = new Date();
- procFcNum += 1;
- if (procFcNum>10) {
- console.log(`convert FlowChart falid! try to Reflush!` );
- return;
- }
- }
- }
- if($('#excflowchart').length) {$('#excflowchart').remove();}
- $('body').append($('<script>', {
- id: 'excflowchart',
- text: `
- var procFcNum = 0;
- ${procFlowchartCode.toString()}
- setTimeout(procFlowchartCode, ${TIMESTEP});
- `
- }));
- }
-
- /* use mermaid flowchart|sequence diagram|gantt diagram */
- function useMermaid(opt){
- addonPrepare('MERMAID');
- addonPrepare('FONTAWESOME');
- /*add class name mermaid*/
- function trigOnMermaid(){
- $('code[class*=lang]').forEach(function(item){
- var language = item.className.slice(9);
- var code = $(item).text();
- if(code.match(/(^gantt|^sequenceDiagram|^graph|^classDiagram)/)!==null){
- $(item).addClass('mermaid');
- }
- if(language.match(/gantt/)!==null){
- $(item).addClass('mermaid');
- }
- });
- mermaid.init();
- setTimeout(function(){
- $('.mermaid svg').unwrap().unwrap().wrap('<div class="mermaidDiv"></div>');
- },200);
- }
-
- function excMermaid(){
- if(typeof(mermaid) !== 'undefined'){
- try {
- trigOnMermaid();
- } catch(e) {
- excMmNum += 1;
- if(excMmNum > 15){
- console.log('Use Mermaid Failed ! try to reflush !');
- return;
- }
- console.log(e);
- }
- } else{
- excMmNum += 1;
- if(excMmNum > 10){
- console.log('Use Mermaid Failed ! try to reflush !');
- return;
- }
- setTimeout(excMermaid, 500);
- }
- }
- // if($('#excMermaid').length){
- // $('#excMermaid').remove();
- // }
- $('#_html').append($('<script>',{
- id:'excMermaid',
- text:`
- var excMmNum = 0;
- ${excMermaid.toString()};
- ${trigOnMermaid.toString()};
- setTimeout(excMermaid, 10);
- `
- }));
- }
-
- /* use sequence diagram */
- function useSeqcDiagram() {
- addonPrepare('SEQUENCEDIAGRAM');
-
- function procSeqcdiagram() {
- if (typeof(Diagram) === 'function' || typeof(Diagram) === 'object') {
- clearInterval(timerSd);
- $('pre[class$=seq]').each(function(index) {
- try {
- var a = $('<div>',{id:'seq'+index})[0];
- var b = Diagram.parse($(this.firstElementChild).text());
- $(this).replaceWith(a);
- b.drawSVG(a);
- // $(this).replaceWith(a);
- } catch(e) {
- console.log(e);
- }
- });
- } else {
- t1 = new Date();
- if ((t1 - t) > 10000) {
- clearInterval(timerSd);
- console.log('Use sequence-diagrams Fail, try to Reflush! ');
- }
- }
- }
- if($('#excAutoRender').length){$('#excAutoRender').remove();}
- $('body').append($('<script>', {
- id: 'excAutoRender',
- text: `
- var t = new Date(),t1;
- ${procSeqcdiagram.toString()}
- timerSd = setInterval(procSeqcdiagram, ${TIMESTEP});
- `
- }));
- }
- /* use toc */
- function useToc(){
- addonPrepare('TOC');
- function toc(){
- if(typeof($().ztree_toc) ==='function'){
- if(!$('#tree').length){
- $('body').append($('<div>',{id:'tree',class:'ztree'}));
- $('#tree').ztree_toc({});
- $('#_html').addClass('tocView');
- }
- return;
- }
- else{
- tNum += 1;
- if(tNum>15 || $('#tree').length){return;}
- setTimeout(toc, 500);
- }
- }
-
- if($('#excToc').length){$('#excToc').remove();}
- $('body').append($('<script>', {
- id: 'excToc',
- text: `
- var tNum = 0;
- ${toc.toString()}
- setTimeout(toc, ${TIMESTEP});
- `
- }));
- }
-
- /* set marked.options.renderer */
- function setRenderer(){
- var renderer = new marked.Renderer();
- window.codenum = 0;
- renderer.code = function(code, language) {
- return `<pre class="language-${language}"><code class="language-${language}">${code}</code></pre>`;
- };
- return renderer;
- }
-
-
- /* Add <link rel='stylesheet'> <script src='*'> element */
- $('head').append($('<script>',{id:'zeptojs',src:'https://cdn.staticfile.org/zepto/1.2.0/zepto.min.js'}));
- $('head').append($('<style>', {
- id: docStyleElementId,
- text: docTheme[GM_getValue('curDocTheme')]
- }));
- $('head').append($('<style>', {
- id: codeStyleElementId,
- text: prismCT[GM_getValue('curPismCodeTheme')]
- }));
- //
-
- /* storage the raw-markdown text */
- var mdSource = $('body').text();
- var mdSourceNode = $('<textarea style="display:none !important;" id="markdownText">').val(mdSource);
- /* load marked options */
- var markedOptions = GM_getValue('options');
- // markedOptions.renderer = setRenderer();
- /* empty <body> */
- $('body').empty();
- /* transfer codes, set container, replace Markdown code, add stylesheet */
- var htmlTxt = marked(mdSource,markedOptions);
- $('body').append($('<div>',{id:'_html'}));
- $('#_html').html(htmlTxt);
- $('pre[data-language]').hide();
- _htmlClass();
- //
- function checkRunAddons(){
- if(GM_getValue('addonState').FLOWCHART) useFlowchart();
- if(GM_getValue('addonState').KATEX) useKaTeX();
- if(GM_getValue('addonState').SEQUENCEDIAGRAM) useSeqcDiagram();
- if(GM_getValue('addonState').EMOJI) useEmoji();
- if(GM_getValue('addonState').MERMAID) useMermaid();
- if(GM_getValue('addonState').TOC) useToc();
- console.log(GM_getValue('addonState').TOC+'--');
- }
- checkRunAddons();
-
- /* highlight code block */
- setTimeout(() => Prism.highlightAll(), 20);
- /*append mdSourceNode*/
- $('body').append(mdSourceNode);
- // stylesheet
- /* global Css & Settings Css*/
- GM_addStyle(`/*global*/html,body {padding:0 !important;margin:0 !important;width:auto !important;max-width:100% !important;}
- pre#_markdown {word-wrap:break-word;white-space:pre-wrap;}
- /*github theme*/.markdown-body {overflow:auto;min-width:888px;max-width:888px;background-color:#fff;border:1px solid #ddd;padding:45px;margin:20px auto;}
- .markdown-body #_html>*:first-child {margin-top:0 !important;}
- .markdown-body #_html>*:last-child {margin-bottom:0 !important;}
- .markdown-body img {background-color:transparent;}
- /*all other themes*/.markdown-theme {box-sizing:border-box;max-width:100% !important;padding:20px !important;margin:0 auto !important;}
- @media (max-width:767px) {.markdown-theme {width:auto !important;}
- }
- @media (min-width:768px) and (max-width:992px) {.markdown-theme {width:713px !important;}
- }
- @media (min-width:992px) and (max-width:1200px) {.markdown-theme {width:937px !important;}
- }
- @media (min-width:1200px) {.markdown-theme {width:1145px !important;}
- }
- .markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor {height:1em;padding-left:8px;margin-left:-28px;line-height:1;text-decoration:none;}
- .markdown-body h1:hover .octicon-link,.markdown-body h2:hover .octicon-link,.markdown-body h3:hover .octicon-link,.markdown-body h4:hover .octicon-link,.markdown-body h5:hover .octicon-link,.markdown-body h6:hover .octicon-link {display:inline-block;}
- /* toc */
- .tocView {position:absolute;left:300px !important;}
- #tree {width:300px !important;overflow:scroll;height:100%;position:fixed;background:white;}
- /*mermaid svg begin*/.mermaidDiv{background:white;border-radius:10px;} .mermaidDiv svg{height:auto;}/*mermaid svg end*/
- #setting {cursor:pointer;font-size:25px!important;min-width:35px;max-width:35px;padding:0 3px 5px 3px;min-height:35px;max-height:35px;text-align:center;color:cyan;background:#222;position:fixed;right:10px;top:10px;opacity:0.3;-moz-opacity:0.3;filter:alpha(opacity=30);border:2px solid cyan;border-radius:30px;transition:All 0.4s ease-in-out;-webkit-transition:All 0.4s ease-in-out;-moz-transition:All 0.4s ease-in-out;-o-transition:All 0.4s ease-in-out;}
- #setting:hover {opacity:1;-moz-opacity:1;filter:alpha(opacity=100);transform:rotate(360deg);-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg);}
- /*setting menu css */
- #g{display:none;position: fixed; top:20px;right:20px;width:125px;height:auto;list-style-type: none;}
- #g *{color:#2196F3;font-size:16px;text-align:center;}
- #g legend{display:block;text-align:center;background:#333;height:35px;border:0;padding:5px;margin:0;}
- #g li:hover, #g legend:hover{background:yellowgreen;color:white!important;font-weight:bold!important;}
- #g li{width:130px;right:0;background:#333;padding: 3px 5px;}
- #g fieldset {position:absolute;right:120px;top:0;width:320px;min-height:252px;margin:0;border:0;padding:0;border-radius:10px;display:none;}
- #g li:hover fieldset{display:block;}
- #g legend{background:#444;width:150px;float:right;border-radius:5px;}
- #g li:first-of-type{border-radius:10px 10px 0 0;}
- #g li:last-of-type{border-radius:0 0 10px 10px;}
- #g>li>span{width:100%;display: block;height:30px;}
- #g>li:hover>span{display: block;right:100px;color:white;}
- /*#s>label>fieldset:hover>label{display: block;}*/
- .adoff {text-align:right!important;color:#FFEB3B!important;border-left:20px solid #FFEB3B !important;width:110px !important;}
- .adoff fieldset{display:none!important;}
- .using{background:yellowgreen;}
- legend[data-using="true"]{background:yellowgreen!important;}
- `);
- //
- /* Seting button */
- function gear() {
- var j = GM_getValue('options');
- var k = GM_getValue('autoKatexOpt');
- var a = $('<div>')[0];
- a.name = 'gear';
- a.setAttribute('style', 'styleCss');
- var tmp = `<ul id='g'><li><span>Doc Theme</span><fieldset>`;
- for (var i in docTheme) {
- tmp += `<legend data-theme='${i}'data-type='docTheme' data-using=${i == GM_getValue('curDocTheme')}>${i}</legend>`;
- }
- tmp += `</fieldset></li><li><span>Code Theme</span><fieldset>`;
- for (let i in prismCT) {
- tmp += `<legend data-theme='${i}'data-type='prismCT' data-using=${i == GM_getValue('curPismCodeTheme')}>${i}</legend>`;
- }
- tmp += `</fieldset></li><li><span>Options</span><fieldset>`;
- for (let i in j) {
- tmp += `<legend data-opt='${i}'data-type='options' data-using='${j[i]}'>${i}</legend>`;
- }
- tmp += `</fieldset></li><li><span data-name='EMOJI' class='${GM_getValue('addonState').EMOJI?'adon':'adoff'}'>Emoji</span></li>`;
- tmp += `<li><span data-name='KATEX' class='${GM_getValue('addonState').KATEX?'adon':'adoff'}'>KaTeX</span><fieldset>`;
-
- for (let i in k) {
- tmp += `<legend data-opt='${k}'data-type='autoKatexOpt' data-using='${k[i]}'>${i}</legend>`;
- }
- tmp += `</fieldset></li><li><span data-name='FLOWCHART' class='${GM_getValue('addonState').FLOWCHART?'adon':'adoff'}'>FlowChar</span></li>`;
- tmp += `<li><span data-name='SEQUENCEDIAGRAM' class='${GM_getValue('addonState').SEQUENCEDIAGRAM?'adon':'adoff'}'>Seqc Digrm</span></li>`;
-
- tmp += `<li><span data-name='MERMAID' class='${GM_getValue('addonState').MERMAID?'adon':'adoff'}'>Mermaid</span></li>`;
- tmp += `<li><span data-name='TOC' class='${GM_getValue('addonState').TOC?'adon':'adoff'}'>TOC</span></li>`;
-
- tmp += `</ul></div><div id='setting'onclick="$('#g').toggle()">▞</div>`;
-
- a.innerHTML = tmp;
- $('body').append(a);
- }
- gear();
- $('#g legend[data-theme]').each(function() {
- this.addEventListener('click', changeStyle, false);
- });
-
- $('#g legend[data-opt]').each(function() {
- this.addEventListener('click', changeOption, false);
- });
- $('#g span[data-name]').each(function() {
- this.addEventListener('click', toggleAddons, false);
- });
- $('legend[data-using="true"]').addClass('using');
-
-
-
- })();