Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-02-26 12:42:21 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-02-26 23:54:36 +0300
commit10928a4f781c2faf704825ef95234125812ad860 (patch)
tree6d53312b301ad5259eb509fbdd13efa6c5c199e5 /common
parentafd63bf7d56194a6aa5d32483151d71fa0b84f3a (diff)
Remove the trailing new line in .Code
Fixes #9572
Diffstat (limited to 'common')
-rw-r--r--common/text/transform.go16
-rw-r--r--common/text/transform_test.go15
2 files changed, 31 insertions, 0 deletions
diff --git a/common/text/transform.go b/common/text/transform.go
index f59577803..66a67d8bc 100644
--- a/common/text/transform.go
+++ b/common/text/transform.go
@@ -14,6 +14,7 @@
package text
import (
+ "strings"
"sync"
"unicode"
@@ -45,3 +46,18 @@ func RemoveAccentsString(s string) string {
accentTransformerPool.Put(t)
return s
}
+
+// Chomp removes trailing newline characters from s.
+func Chomp(s string) string {
+ return strings.TrimRightFunc(s, func(r rune) bool {
+ return r == '\n' || r == '\r'
+ })
+}
+
+// Puts adds a trailing \n none found.
+func Puts(s string) string {
+ if s == "" || s[len(s)-1] == '\n' {
+ return s
+ }
+ return s + "\n"
+}
diff --git a/common/text/transform_test.go b/common/text/transform_test.go
index 08265f976..992dd524c 100644
--- a/common/text/transform_test.go
+++ b/common/text/transform_test.go
@@ -26,3 +26,18 @@ func TestRemoveAccents(t *testing.T) {
c.Assert(string(RemoveAccents([]byte("Hugo Rocks!"))), qt.Equals, "Hugo Rocks!")
c.Assert(string(RemoveAccentsString("Resumé")), qt.Equals, "Resume")
}
+
+func TestChomp(t *testing.T) {
+ c := qt.New(t)
+
+ c.Assert(Chomp("\nA\n"), qt.Equals, "\nA")
+ c.Assert(Chomp("A\r\n"), qt.Equals, "A")
+}
+
+func TestPuts(t *testing.T) {
+ c := qt.New(t)
+
+ c.Assert(Puts("A"), qt.Equals, "A\n")
+ c.Assert(Puts("\nA\n"), qt.Equals, "\nA\n")
+ c.Assert(Puts(""), qt.Equals, "")
+}