将缩进文本(Markdown)转换为Codeblock

时间:2016-11-03 00:03:59

标签: javascript

我正在制作一些需要使用markdown将缩进的段落转换为代码块的东西。这就是我的意思:

This is normal text, nothing to worry about.
    const normalFunction = (...args) => {
      return ...args;
    }
Please turn ^ into codeblock. Thx

我希望将其转换为

This is normal text, nothing to worry about.
```js
const normalFunction = (...args) => {
  return ...args;
}
```
Please turn ^ into codeblock. Thx

其他所有事件都是这样的。我已经为此尝试了许多不同的RegEx,并找到了一个我认为可行的,但它适用于PHP,我无法将其转换为JavaScript RegEx。

使用ES6很好,我推荐它,因为它有更多的功能。 我目前使用的RegEx是/( {4}[\n\r\s\S]+;)/gi,但是如果有多个代码块,它会选择所有内容,并且如果它是评论并且它不以{{1结尾,则不会选择某些内容}}

1 个答案:

答案 0 :(得分:0)

好的,这是我迟到的自我回答。

我使用的是NodeJS和class Person { public: const std::string name; Person(const std::string& s): name(s) {} void dump(void) const { cout << name << endl; //cout << &name << endl; } }; NPM模块。 显然,to-markdown支持过滤器将HTML标记转换为您想要的任何内容。 我为标记to-markdown添加了一个过滤器,因此它会添加代码块所需的降价。

这是我的最终代码:

pre

我在那里使用了几个RegEx来替换return toMarkdown(str, { gfm: true, converters: [{ filter: "pre", replacement: content => `\`\`\`${lang.toLowerCase()}\n${content.replace(/<\/?code( \S+)?>/g, ``)}\n\`\`\``, }], }); 标记内的<code lang=##></code>标记。

我希望这有帮助。对不起,我不知道我们是否必须为自己写一个答案。

编辑:我知道如果这与RegEx无关,如果那是你正在寻找和希望的,我道歉。