summaryrefslogtreecommitdiffstats
path: root/vendor/gitlab.com/golang-commonmark/markdown/hr.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gitlab.com/golang-commonmark/markdown/hr.go')
-rw-r--r--vendor/gitlab.com/golang-commonmark/markdown/hr.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/vendor/gitlab.com/golang-commonmark/markdown/hr.go b/vendor/gitlab.com/golang-commonmark/markdown/hr.go
new file mode 100644
index 00000000..fe25681d
--- /dev/null
+++ b/vendor/gitlab.com/golang-commonmark/markdown/hr.go
@@ -0,0 +1,54 @@
+// Copyright 2015 The Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package markdown
+
+func ruleHR(s *StateBlock, startLine, endLine int, silent bool) bool {
+ pos := s.BMarks[startLine] + s.TShift[startLine]
+ max := s.EMarks[startLine]
+
+ if pos >= max {
+ return false
+ }
+
+ if s.SCount[startLine]-s.BlkIndent >= 4 {
+ return false
+ }
+
+ src := s.Src
+ marker := src[pos]
+ pos++
+
+ if marker != '*' && marker != '-' && marker != '_' {
+ return false
+ }
+
+ cnt := 1
+ for pos < max {
+ ch := src[pos]
+ pos++
+ if ch != marker && !byteIsSpace(ch) {
+ return false
+ }
+ if ch == marker {
+ cnt++
+ }
+ }
+
+ if cnt < 3 {
+ return false
+ }
+
+ if silent {
+ return true
+ }
+
+ s.Line = startLine + 1
+
+ s.PushToken(&Hr{
+ Map: [2]int{startLine, s.Line},
+ })
+
+ return true
+}