From 994bf806b1fd7b331897a075f6629da25e9cefb0 Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Sat, 11 May 2019 21:29:32 -0400 Subject: [PATCH] trickery to avoid further markdown of code blocks --- fun.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/fun.go b/fun.go index 2c93a47..a8eaa3f 100644 --- a/fun.go +++ b/fun.go @@ -157,11 +157,35 @@ func herdofemus(noise string) []Emu { var re_bolder = regexp.MustCompile(`(^|\W)\*\*([\w\s,.!?']+)\*\*($|\W)`) var re_italicer = regexp.MustCompile(`(^|\W)\*([\w\s,.!?']+)\*($|\W)`) var re_bigcoder = regexp.MustCompile("\n?```\n?((?s:.*?))\n?```\n?") -var re_coder = regexp.MustCompile("`(.*?)`") +var re_coder = regexp.MustCompile("`([^`]*)`") func markitzero(s string) string { + var bigcodes []string + bigsaver := func(code string) string { + bigcodes = append(bigcodes, code) + return "``````" + } + s = re_bigcoder.ReplaceAllStringFunc(s, bigsaver) + var lilcodes []string + lilsaver := func(code string) string { + lilcodes = append(lilcodes, code) + return "`x`" + } + s = re_coder.ReplaceAllStringFunc(s, lilsaver) s = re_bolder.ReplaceAllString(s, "$1$2$3") s = re_italicer.ReplaceAllString(s, "$1$2$3") + lilun := func(s string) string { + code := lilcodes[0] + lilcodes = lilcodes[1:] + return code + } + s = re_coder.ReplaceAllStringFunc(s, lilun) + bigun := func(s string) string { + code := bigcodes[0] + bigcodes = bigcodes[1:] + return code + } + s = re_bigcoder.ReplaceAllStringFunc(s, bigun) s = re_bigcoder.ReplaceAllString(s, "
$1
") s = re_coder.ReplaceAllString(s, "$1") return s