summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/gomarkdown/markdown/markdown.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gomarkdown/markdown/markdown.go')
-rw-r--r--vendor/github.com/gomarkdown/markdown/markdown.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/vendor/github.com/gomarkdown/markdown/markdown.go b/vendor/github.com/gomarkdown/markdown/markdown.go
index fd5c1cfb..537eb27b 100644
--- a/vendor/github.com/gomarkdown/markdown/markdown.go
+++ b/vendor/github.com/gomarkdown/markdown/markdown.go
@@ -83,3 +83,29 @@ func ToHTML(markdown []byte, p *parser.Parser, renderer Renderer) []byte {
}
return Render(doc, renderer)
}
+
+// NormalizeNewlines converts Windows and Mac newlines to Unix newlines
+// The parser only supports Unix newlines. If your mardown content
+// might contain Windows or Mac newlines, use this function to convert to Unix newlines
+func NormalizeNewlines(d []byte) []byte {
+ wi := 0
+ n := len(d)
+ for i := 0; i < n; i++ {
+ c := d[i]
+ // 13 is CR
+ if c != 13 {
+ d[wi] = c
+ wi++
+ continue
+ }
+ // replace CR (mac / win) with LF (unix)
+ d[wi] = 10
+ wi++
+ if i < n-1 && d[i+1] == 10 {
+ // this was CRLF, so skip the LF
+ i++
+ }
+
+ }
+ return d[:wi]
+}