From 8934fd895c875135b4eb41dc2a1e2e456faf10da Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Wed, 13 Dec 2023 17:38:55 +0100 Subject: [PATCH] [GITEA] Revert "Make `user-content-* ` consistent with github (#26388)" Refs: https://codeberg.org/forgejo/forgejo/issues/1943 This reverts commit d41aee1d1e1cb07ccf71330dd3414beff603e48a. (cherry picked from commit d29ec91e91362b0657edee631f12cf1d55ba7a2c) (cherry picked from commit a0f5a9750e81c5e3992365f61b8cb9ab99413139) (cherry picked from commit 26bfc3bc14b7f07d11819b11251c716a8cf7eaf1) (cherry picked from commit 59f57a1bc9d97d76319a6e2d8b7a336a9a480bb4) (cherry picked from commit ce3b73a033d6f8b617b01f4f9fb33d70abf714aa) (cherry picked from commit 2c426c28af18b69305bc8d71c389f21432fd8c3d) (cherry picked from commit 155a08bca71cb90e753b73cbcd522e4f5064d980) --- modules/markup/common/footnote.go | 13 ++++-- modules/markup/common/footnote_test.go | 60 -------------------------- 2 files changed, 9 insertions(+), 64 deletions(-) delete mode 100644 modules/markup/common/footnote_test.go diff --git a/modules/markup/common/footnote.go b/modules/markup/common/footnote.go index 4406803694..0e75e2adfd 100644 --- a/modules/markup/common/footnote.go +++ b/modules/markup/common/footnote.go @@ -29,12 +29,17 @@ func CleanValue(value []byte) []byte { value = bytes.TrimSpace(value) rs := bytes.Runes(value) result := make([]rune, 0, len(rs)) + needsDash := false for _, r := range rs { - if unicode.IsLetter(r) || unicode.IsNumber(r) || r == '_' || r == '-' { + switch { + case unicode.IsLetter(r) || unicode.IsNumber(r) || r == '_': + if needsDash && len(result) > 0 { + result = append(result, '-') + } + needsDash = false result = append(result, unicode.ToLower(r)) - } - if unicode.IsSpace(r) { - result = append(result, '-') + default: + needsDash = true } } return []byte(string(result)) diff --git a/modules/markup/common/footnote_test.go b/modules/markup/common/footnote_test.go deleted file mode 100644 index 2327a7b14b..0000000000 --- a/modules/markup/common/footnote_test.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2023 The Gitea Authors. All rights reserved. -// SPDX-License-Identifier: MIT -package common - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestCleanValue(t *testing.T) { - tests := []struct { - param string - expect string - }{ - // Github behavior test cases - {"", ""}, - {"test(0)", "test0"}, - {"test!1", "test1"}, - {"test:2", "test2"}, - {"test*3", "test3"}, - {"test!4", "test4"}, - {"test:5", "test5"}, - {"test*6", "test6"}, - {"test:6 a", "test6-a"}, - {"test:6 !b", "test6-b"}, - {"test:ad # df", "testad--df"}, - {"test:ad #23 df 2*/*", "testad-23-df-2"}, - {"test:ad 23 df 2*/*", "testad-23-df-2"}, - {"test:ad # 23 df 2*/*", "testad--23-df-2"}, - {"Anchors in Markdown", "anchors-in-markdown"}, - {"a_b_c", "a_b_c"}, - {"a-b-c", "a-b-c"}, - {"a-b-c----", "a-b-c----"}, - {"test:6a", "test6a"}, - {"test:a6", "testa6"}, - {"tes a a a a", "tes-a-a---a--a"}, - {" tes a a a a ", "tes-a-a---a--a"}, - {"Header with \"double quotes\"", "header-with-double-quotes"}, - {"Placeholder to force scrolling on link's click", "placeholder-to-force-scrolling-on-links-click"}, - {"tes()", "tes"}, - {"tes(0)", "tes0"}, - {"tes{0}", "tes0"}, - {"tes[0]", "tes0"}, - {"test【0】", "test0"}, - {"tes…@a", "tesa"}, - {"tes¥& a", "tes-a"}, - {"tes= a", "tes-a"}, - {"tes|a", "tesa"}, - {"tes\\a", "tesa"}, - {"tes/a", "tesa"}, - {"a啊啊b", "a啊啊b"}, - {"c🤔️🤔️d", "cd"}, - {"a⚡a", "aa"}, - {"e.~f", "ef"}, - } - for _, test := range tests { - assert.Equal(t, []byte(test.expect), CleanValue([]byte(test.param)), test.param) - } -}