markdown-it-pikchr
Version:
Allow pikchr diagrams in markdown fences
1 lines • 7.79 kB
JSON
{"/home/runner/work/markdown-it-pikchr/markdown-it-pikchr/src/markdown-it-plugin-pikchr.ts":{"path":"/home/runner/work/markdown-it-pikchr/markdown-it-pikchr/src/markdown-it-plugin-pikchr.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":17},"end":{"line":3,"column":34}},"2":{"start":{"line":5,"column":19},"end":{"line":5,"column":104}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":56}},"4":{"start":{"line":8,"column":21},"end":{"line":27,"column":1}},"5":{"start":{"line":9,"column":22},"end":{"line":9,"column":69}},"6":{"start":{"line":10,"column":4},"end":{"line":26,"column":6}},"7":{"start":{"line":11,"column":22},"end":{"line":11,"column":33}},"8":{"start":{"line":12,"column":23},"end":{"line":12,"column":67}},"9":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"10":{"start":{"line":14,"column":12},"end":{"line":14,"column":61}},"11":{"start":{"line":16,"column":21},"end":{"line":16,"column":30}},"12":{"start":{"line":17,"column":21},"end":{"line":17,"column":41}},"13":{"start":{"line":18,"column":26},"end":{"line":18,"column":52}},"14":{"start":{"line":19,"column":23},"end":{"line":19,"column":40}},"15":{"start":{"line":20,"column":8},"end":{"line":24,"column":9}},"16":{"start":{"line":21,"column":29},"end":{"line":21,"column":86}},"17":{"start":{"line":22,"column":27},"end":{"line":22,"column":65}},"18":{"start":{"line":23,"column":12},"end":{"line":23,"column":36}},"19":{"start":{"line":25,"column":8},"end":{"line":25,"column":57}},"20":{"start":{"line":28,"column":0},"end":{"line":28,"column":31}}},"fnMap":{"0":{"name":"default_render","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":23}},"loc":{"start":{"line":4,"column":32},"end":{"line":7,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":21},"end":{"line":8,"column":22}},"loc":{"start":{"line":8,"column":35},"end":{"line":27,"column":1}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":30},"end":{"line":10,"column":31}},"loc":{"start":{"line":10,"column":66},"end":{"line":26,"column":5}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":24},"end":{"line":12,"column":40}},"type":"binary-expr","locations":[{"start":{"line":12,"column":24},"end":{"line":12,"column":34}},{"start":{"line":12,"column":38},"end":{"line":12,"column":40}}],"line":12},"1":{"loc":{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},"type":"if","locations":[{"start":{"line":13,"column":8},"end":{"line":15,"column":9}},{"start":{"line":13,"column":8},"end":{"line":15,"column":9}}],"line":13},"2":{"loc":{"start":{"line":13,"column":12},"end":{"line":13,"column":37}},"type":"binary-expr","locations":[{"start":{"line":13,"column":12},"end":{"line":13,"column":19}},{"start":{"line":13,"column":23},"end":{"line":13,"column":37}}],"line":13},"3":{"loc":{"start":{"line":20,"column":8},"end":{"line":24,"column":9}},"type":"if","locations":[{"start":{"line":20,"column":8},"end":{"line":24,"column":9}},{"start":{"line":20,"column":8},"end":{"line":24,"column":9}}],"line":20},"4":{"loc":{"start":{"line":20,"column":12},"end":{"line":20,"column":31}},"type":"binary-expr","locations":[{"start":{"line":20,"column":12},"end":{"line":20,"column":18}},{"start":{"line":20,"column":22},"end":{"line":20,"column":31}}],"line":20},"5":{"loc":{"start":{"line":21,"column":29},"end":{"line":21,"column":86}},"type":"cond-expr","locations":[{"start":{"line":21,"column":37},"end":{"line":21,"column":68}},{"start":{"line":21,"column":72},"end":{"line":21,"column":86}}],"line":21},"6":{"loc":{"start":{"line":21,"column":37},"end":{"line":21,"column":68}},"type":"binary-expr","locations":[{"start":{"line":21,"column":37},"end":{"line":21,"column":50}},{"start":{"line":21,"column":54},"end":{"line":21,"column":68}}],"line":21}},"s":{"0":1,"1":1,"2":3,"3":3,"4":1,"5":2,"6":2,"7":6,"8":6,"9":6,"10":1,"11":5,"12":5,"13":5,"14":5,"15":5,"16":4,"17":4,"18":4,"19":1,"20":1},"f":{"0":3,"1":2,"2":6},"b":{"0":[6,1],"1":[1,5],"2":[6,5],"3":[4,1],"4":[5,2],"5":[1,3],"6":[1,0]},"inputSourceMap":{"version":3,"file":"/home/runner/work/markdown-it-pikchr/markdown-it-pikchr/src/markdown-it-plugin-pikchr.ts","sources":["/home/runner/work/markdown-it-pikchr/markdown-it-pikchr/src/markdown-it-plugin-pikchr.ts"],"names":[],"mappings":";;AACA,mCAAkD;AAMlD,SAAS,cAAc,CAAC,MAAwB;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EACtC,cAAc,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7D,OAAO,8BAA8B,MAAM,QAAQ,CAAC;AACxD,CAAC;AAOD,MAAM,YAAY,GAAG,CAAC,EAAc,EAAE,IAA0B,EAAE,EAAE;IAChE,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAE,CAAC;IACpE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAe,EAAE,GAAW,EAAE,OAAgB,EAAE,GAAQ,EAAE,GAAa,EAAE,EAAE;QAClG,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC3B,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACpD;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAElC,MAAM,SAAS,GAAG,IAAI,KAAK,iBAAiB,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,KAAK,QAAQ,CAAC;QAEjC,IAAI,MAAM,IAAI,SAAS,EAAE;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YAC3E,MAAM,MAAM,GAAG,iBAAQ,CAAC,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC;YAC3C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC3B;QACD,OAAO,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC,CAAC;AAMN,CAAC,CAAC;AACF,kBAAe,YAAY,CAAC","sourcesContent":["import type MarkdownIt from \"markdown-it\";\nimport {pikchrex, PikchrResultType} from \"pikchr\";\nimport Token from \"markdown-it/lib/token\";\nimport {Options} from \"markdown-it/lib\";\nimport Renderer from \"markdown-it/lib/renderer\";\n\n\nfunction default_render(result: PikchrResultType): string {\n const output = result.output.replace('svg',\n `svg width=\"${result.width}\" height=\"${result.height}\"`);\n // return `<pre style=\"visibility: hidden\"></pre><div style=\"width: 100px;\">${output}</div>`;\n return `<div style=\"width: 100px;\">${output}</div>`;\n}\n\n\ninterface PikchrPluginOptions {\n render_f: (result: PikchrResultType) => string;\n}\n\nconst PikchrPlugin = (md: MarkdownIt, opts?: PikchrPluginOptions) => {\n const tempFence = md.renderer.rules.fence!.bind(md.renderer.rules)!;\n md.renderer.rules.fence = (tokens: Token[], idx: number, options: Options, env: any, slf: Renderer) => {\n const token = tokens[idx];\n const chunks = (token.info || ``).match(/^(\\S+)(\\s+(.+))?/);\n if (!chunks || !chunks.length) {\n return tempFence(tokens, idx, options, env, slf);\n }\n const lang = chunks[1];\n\n const code = token.content.trim();\n\n const dark_mode = lang === \"pikchr-darkmode\";\n const pikchr = lang === \"pikchr\";\n\n if (pikchr || dark_mode) {\n const render_f = opts ? (opts.render_f || default_render) : default_render;\n const result = pikchrex(code, {dark_mode});\n return render_f(result);\n }\n return tempFence(tokens, idx, options, env, slf);\n };\n\n // const tempRender = md.renderer.render.bind(md.renderer);\n // md.renderer.render = (tokens: Token[], options: any, env: any) => {\n // return `${tempRender(tokens, options, env)}`;\n // };\n};\nexport default PikchrPlugin;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"3e56818e9e9c0d5ef98410fcbb27274f6c95772f","contentHash":"37b8f2636d27205068904ce7697d8e2d3c2b0385bdc62a76c5973d2fea2efff7"}}