在 Go 的 README.md 中的评论标签之间插入链接
Insert links between comment tags in README.md in Go
我想在我的 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))
}
我想在我的 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))
}