当我动态生成链接时,我想在README.md
文件中的注释标签之间插入链接。我写了一个函数来做到这一点,但问题是它也替换了注释标签。我需要修改函数以在注释标签之间插入链接,而不是整体上替换它。
//README.md
### HTTP APIs
<!--HTTP-API-start-->
<!--HTTP-API-end-->
### AMQP APIs
<!--AMQP-API-start-->
<!--AMQP-API-end-->
这是我编写的用于插入链接的函数。一个可能的解决方案是将注释标记与
httpAPI
和AmqpAPI
字符串一起添加,但这不是我想要的,因为它替换了文件中的当前标记。func GenerateGodocLinkInReadme(amqpLinks string, httpLinks string) {
path := `../../README.md`
formattedContent, err := ioutil.ReadFile(path)
if err != nil {
panic(err)
}
httpAPI := "<!--HTTP-API-start-->" +
amqpLinks +
"\n" +
"<!--HTTP-API-end-->"
AmqpAPI := "<!--AMQP-API-start-->" +
httpLinks +
"\n" +
"<!--AMQP-API-end-->"
formattedContent = regexp.MustCompile(`<!--AMQP-API-start-->([\s\S]*?)<!--AMQP-API-end-->`).ReplaceAll(formattedContent, []byte(AmqpAPI))
exitOnFail(ioutil.WriteFile(path, formattedContent, 0644))
formattedContent = regexp.MustCompile(`<!--HTTP-API-start-->([\s\S]*?)<!--HTTP-API-end-->`).ReplaceAll(formattedContent, []byte(httpAPI))
exitOnFail(ioutil.WriteFile(path, formattedContent, 0644))
}
此功能正常工作,但它也会替换注释标签。我需要修改此功能,以便它在注释标记之间插入链接。
最佳答案
试试这个。
func GenerateGodocLinkInReadme(amqpLinks string, httpLinks string) {
path := `README.md`
formattedContent, err := ioutil.ReadFile(path)
if err != nil {
panic(err)
}
amqpRegex := regexp.MustCompile(`<!--AMQP-API-start-->([\s\S]*?)<!--AMQP-API-end-->`)
httpRegex := regexp.MustCompile(`<!--HTTP-API-start-->([\s\S]*?)<!--HTTP-API-end-->`)
prevAmqpLinks := string(amqpRegex.FindSubmatch((formattedContent))[1]) // Second index of returns links between tags
prevHttpLinks := string(httpRegex.FindSubmatch((formattedContent))[1]) // Second index of returns links between tags
httpAPI := prevHttpLinks + httpLinks + "\n"
AmqpAPI := prevAmqpLinks + amqpLinks + "\n"
formattedContent = amqpRegex.ReplaceAll(formattedContent, []byte(`<!--AMQP-API-start-->` + AmqpAPI + `<!--AMQP-API-end-->`))
formattedContent = httpRegex.ReplaceAll(formattedContent, []byte(`<!--HTTP-API-start-->` + httpAPI + `<!--HTTP-API-end-->`))
exitOnFail(ioutil.WriteFile(path, formattedContent, 0644))
}
关于regex - 在Go中的README.md中的注释标签之间插入链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61263917/