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标记中添加一个过滤器修复了这个问题,因为降价允许过滤器。谢谢你的帮助。再一次,我道歉。你能在下面贴一个答案吗?通常鼓励将答案作为答案发布。自我回答是可以的。