在不处理代码的情况下扩展Markdown标记

时间:2016-08-01 20:10:16

标签: javascript node.js markdown hexo

我正在使用Hexo - 一个基于nodeJS的静态博客CMS,我正在扩展hexo API以注册一个名为tabblock的新块标记,请参见:

hexo.extend.tag.register('tabblock', function (args, content) {
    var tabNumber = NumberOfTabs(content);
    var isTabbed = (tabNumber !== 0);
    console.log("Args: " + content);
    // Where my proper logic should go
    result = '<h1> TAG </h1>';
    return result;
  }, { ends: true });

这是我试图解释的源代码段:

{% tabblock %}
``` JavaScript
    console.log("Double Tap");
```
``` TypeScript
    console.log("Double Tap");
```
{% endtabblock %}

但是,应该处理该源的函数的console.log输出:

Args: <!--0--> <!--1-->

???我假设这是因为代码被解释为代码而不是内容?因此,如果我将{% tabblock %}包装在{% raw %}标签中,那么我根本就没有输出,但是,如果我将原始标签放在tabblock内,那么我得到这个输出:

Args: {% raw

如何获得所需内容?

1 个答案:

答案 0 :(得分:1)

Hexo将

\``` code ```\解释为代码块,这就是为什么它会输出一个混乱的东西。尝试只使用2或1个后挡板,它会起作用;像这样\`` code ``\

我为Hexo创建了一个tabbed-codeblock标签,你应该看看我是如何做到的。如您所见,我使用hexo标记包装代码,并使用此结构分隔代码块以避免与源代码冲突。

<!-- tab [lang] -->
    code
<!-- endtab -->
<!-- tab [lang] -->
    code
<!-- endtab -->