diff options
author | Benjamin <b.mpickford@outlook.com> | 2019-11-18 06:18:01 +1000 |
---|---|---|
committer | Wim <wim@42.be> | 2019-11-17 21:18:01 +0100 |
commit | 0917dc876613fd71c9726a34bf0138b4f5121be9 (patch) | |
tree | 1eacaadaa4869e8f74ccf65c684c2a80f90787f9 /vendor/gitlab.com/golang-commonmark/markdown/parser_inline.go | |
parent | aba86855b5f71c9809d892a7eebc6b69872fcd5b (diff) | |
download | matterbridge-msglm-0917dc876613fd71c9726a34bf0138b4f5121be9.tar.gz matterbridge-msglm-0917dc876613fd71c9726a34bf0138b4f5121be9.tar.bz2 matterbridge-msglm-0917dc876613fd71c9726a34bf0138b4f5121be9.zip |
Update markdown parsing library to github.com/gomarkdown/markdown (#944)
Diffstat (limited to 'vendor/gitlab.com/golang-commonmark/markdown/parser_inline.go')
-rw-r--r-- | vendor/gitlab.com/golang-commonmark/markdown/parser_inline.go | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/vendor/gitlab.com/golang-commonmark/markdown/parser_inline.go b/vendor/gitlab.com/golang-commonmark/markdown/parser_inline.go deleted file mode 100644 index 5e976ebd..00000000 --- a/vendor/gitlab.com/golang-commonmark/markdown/parser_inline.go +++ /dev/null @@ -1,106 +0,0 @@ -// 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 - -import "unicode/utf8" - -type ParserInline struct { -} - -type ( - InlineRule func(*StateInline, bool) bool - PostprocessRule func(*StateInline) -) - -var ( - inlineRules []InlineRule - postprocessRules []PostprocessRule -) - -func (i ParserInline) Parse(src string, md *Markdown, env *Environment) []Token { - if src == "" { - return nil - } - - var s StateInline - s.Src = src - s.Md = md - s.Env = env - s.PosMax = len(src) - s.Tokens = s.bootstrap[:0] - - i.Tokenize(&s) - - for _, r := range postprocessRules { - r(&s) - } - - return s.Tokens -} - -func (ParserInline) Tokenize(s *StateInline) { - end := s.PosMax - src := s.Src - maxNesting := s.Md.MaxNesting - ok := false - - for s.Pos < end { - if s.Level < maxNesting { - for _, rule := range inlineRules { - ok = rule(s, false) - if ok { - break - } - } - } - - if ok { - if s.Pos >= end { - break - } - continue - } - - r, size := utf8.DecodeRuneInString(src[s.Pos:]) - s.Pending.WriteRune(r) - s.Pos += size - } - - if s.Pending.Len() > 0 { - s.PushPending() - } -} - -func (ParserInline) SkipToken(s *StateInline) { - pos := s.Pos - if s.Cache != nil { - if newPos, ok := s.Cache[pos]; ok { - s.Pos = newPos - return - } - } else { - s.Cache = make(map[int]int) - } - - ok := false - if s.Level < s.Md.MaxNesting { - for _, r := range inlineRules { - s.Level++ - ok = r(s, true) - s.Level-- - if ok { - break - } - } - } else { - s.Pos = s.PosMax - } - - if !ok { - _, size := utf8.DecodeRuneInString(s.Src[s.Pos:]) - s.Pos += size - } - s.Cache[pos] = s.Pos -} |