我正在使用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


如何获得所需的内容?

最佳答案

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

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

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



Gist:选项卡式代码块标记的源代码+用于在浏览器中制作动画的JS代码
SO Question - How to implement a tabbed codeblock tag for Hexo:因为我为这个问题创建了这个标签:p阅读它,我解释了整个过程:)
JSFiddle demo

关于javascript - 扩展Markdown标签而不处理代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38707297/

10-13 09:43
查看更多