【发布时间】:2019-11-07 01:53:21
【问题描述】:
我正在尝试制作一个 sn-p,它将获取剪贴板内容(markdown 文档中的标题文本)并将其转换为指向该部分的链接。例如,如果我的剪贴板包含:Some Heading - 20191107,那么我希望输出以下内容:
[Some Heading - 20191107](filename.md#some-heading---20191107)
到目前为止,这是我的 sn-p VS Code for markdown:
"link to this section": {
"prefix": "isection",
"body": [
"[${1:${CLIPBOARD}}](${TM_FILENAME}#${CLIPBOARD/ /-/g})"
],
"description": "Insert link to section whose heading text is in the clipboard"
}
这是第一个变换,但我不知道如何嵌套多个变换:
- 用连字符替换所有空格。
- 全部改为小写。
- 删除任何匹配
[^a-z0-9-]的字符
测试用例
为了澄清我对@Mark 的测试用例,在VS Code 的markdown 文档中,我做了一个部分标题,例如:
# 20191107 - @#$%^& This is a section - 20191107
然后我复制文本 20191107 - @#$%^& This is a section - 20191107 并运行您为我修复的 sn-p。它输出的是:
[20191107 - @#$%^& This is a section - 20191107](tips.tech.git.md#20191107----this-is-a-section---20191107)
哪个是标题的有效链接!
【问题讨论】:
-
理想情况下,您希望输出在您的测试用例中看起来如何?我使用了您原始问题中的
Some Heading - 20191107来设计正则表达式,但看起来# 20191107 - @#$%^& This is a section - 20191107真的是您开始使用的吗? -
这只是一个示例,以便我可以测试它对包含非字母数字字符的标题的作用。顺便说一句,它工作得很好——正是我试图自己创造的。最重要的部分是它创建链接部分的方式 - 在圆括号内。如果您不介意对正则表达式进行一些解释,那将不胜感激!
标签: visual-studio-code vscode-snippets