Explorar o código

버그 수정

잉여개발기 (SPDV) %!s(int64=2) %!d(string=hai) anos
pai
achega
4abf520a6f

BIN=BIN
route_go/bin/main.amd64.bin


BIN=BIN
route_go/bin/main.amd64.exe


BIN=BIN
route_go/bin/main.arm64.bin


BIN=BIN
route_go/bin/main.arm64.exe


+ 24 - 16
route_go/route/tool/markdown.go

@@ -10,29 +10,37 @@ import (
 	"github.com/yuin/goldmark"
 	"github.com/yuin/goldmark/extension"
 	"github.com/yuin/goldmark/renderer/html"
-	"mvdan.cc/xurls/v2"
 )
 
 func Markdown(db *sql.DB, db_set map[string]string, data map[string]string) map[string]interface{} {
-	input := []byte(data["data"])
 	backlink := map[string]map[string]string{}
 	link_count := 0
 
+	raw_input := data["data"]
+
+	r := regexp.MustCompile(`\[\]\(([^\(\)]+)\)`)
+	raw_input = r.ReplaceAllStringFunc(raw_input, func(m string) string {
+		match := r.FindStringSubmatch(m)
+
+		return "[" + match[1] + "](" + match[1] + ")"
+	})
+
+	r = regexp.MustCompile(`\[([^\[\]]+)\]\(\)`)
+	raw_input = r.ReplaceAllStringFunc(raw_input, func(m string) string {
+		match := r.FindStringSubmatch(m)
+
+		return "[" + match[1] + "](" + match[1] + ")"
+	})
+
+	input := []byte(raw_input)
 	markdown := goldmark.New(
 		goldmark.WithExtensions(
-			extension.NewLinkify(
-				extension.WithLinkifyAllowedProtocols([]string{
-					"http:",
-					"https:",
-				}),
-				extension.WithLinkifyURLRegexp(
-					xurls.Strict(),
-				),
-			),
 			extension.Strikethrough,
 			extension.Table,
 		),
-		goldmark.WithRendererOptions(html.WithHardWraps()),
+		goldmark.WithRendererOptions(
+			html.WithHardWraps(),
+		),
 	)
 
 	var buf bytes.Buffer
@@ -46,7 +54,7 @@ func Markdown(db *sql.DB, db_set map[string]string, data map[string]string) map[
 	code_stack_idx := 0
 	code_stack_end := map[string]string{}
 
-	r := regexp.MustCompile(`(<code>|<\/code>)`)
+	r = regexp.MustCompile(`(<code>|<\/code>)`)
 	for idx := r.FindStringIndex(string_data); len(idx) != 0; idx = r.FindStringIndex(string_data) {
 		if string_data[idx[0]:idx[1]] == "<code>" {
 			code_stack = []int{idx[0], idx[1]}
@@ -62,6 +70,9 @@ func Markdown(db *sql.DB, db_set map[string]string, data map[string]string) map[
 		}
 	}
 
+	// p := bluemonday.UGCPolicy()
+	// string_data := p.Sanitize(string_data)
+
 	r = regexp.MustCompile(`\[([^\[\]]+)\]\(([^\(\)]*)\)`)
 	string_data = r.ReplaceAllStringFunc(string_data, func(m string) string {
 		match := r.FindStringSubmatch(m)
@@ -74,9 +85,6 @@ func Markdown(db *sql.DB, db_set map[string]string, data map[string]string) map[
 		return "<a href=\"" + link + "\">" + match[1] + "</a>"
 	})
 
-	// p := bluemonday.UGCPolicy()
-	// string_data := p.Sanitize(string_data)
-
 	r = regexp.MustCompile(`<code_[0-9]+>`)
 	string_data = r.ReplaceAllStringFunc(string_data, func(m string) string {
 		m = strings.Replace(m, "<", "", 1)