Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将缩进文本(标记)转换为代码块_Javascript - Fatal编程技术网

Javascript 将缩进文本(标记)转换为代码块

Javascript 将缩进文本(标记)转换为代码块,javascript,Javascript,我正在制作一些东西,需要使用标记将缩进的段落转换为代码块。我的意思是: 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 co

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

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
以及其他类似的事件。为此,我尝试了许多不同的正则表达式,并找到了一个我认为可行的正则表达式,但它是针对PHP的,我无法将其转换为JavaScript正则表达式

使用ES6很好,而且我推荐它,因为它有更多的特性。
我当前使用的正则表达式是/{4}[\n\r\s\s]+/gi,但如果有多个代码块,它会选择所有内容,如果是注释,并且不会以;结尾,则不会选择某些内容

好的,这是我最近的自我回答

我使用NodeJS和NodeJS来标记NPM模块。 显然,to markdown支持过滤器将HTML标记转换为您想要的任何内容。 我为标记pre添加了一个过滤器,这样它就可以添加代码块所需的降价

这是我的最终代码:

return toMarkdown(str, {
  gfm: true,
  converters: [{
    filter: "pre",
    replacement: content => `\`\`\`${lang.toLowerCase()}\n${content.replace(/<\/?code( \S+)?>/g, ``)}\n\`\`\``,
  }],
});
我使用了一些正则表达式来替换pre标记中的and标记,而不使用任何内容

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


编辑:我知道这与正则表达式无关,如果这正是您所期待的,我向您道歉。

您不通过标记编译器运行整个文本段有什么原因吗?如果没有特殊的格式,那么它应该像以前一样返回文本。我以前建造过类似的东西,并使用了标记的库@Falk我是通过解析带有marked的HTML得到这个标记的,所以我没有想过要再次在编译器中运行它。我试试看。谢谢你的建议。所以我试着按照你的建议去做,但是现在所有代码块的4个空格缩进都被删除了:|非常抱歉,@Falk,浪费了你的时间。我通过在pre标记中添加一个过滤器修复了这个问题,因为降价允许过滤器。谢谢你的帮助。再一次,我道歉。你能在下面贴一个答案吗?通常鼓励将答案作为答案发布。自我回答是可以的。