forked from lug/matterbridge
		
	Update dependencies (#1831)
This commit is contained in:
		
							
								
								
									
										90
									
								
								vendor/github.com/gomarkdown/markdown/parser/block.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								vendor/github.com/gomarkdown/markdown/parser/block.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -858,12 +858,9 @@ func isFenceLine(data []byte, syntax *string, oldmarker string) (end int, marker | ||||
| 		return 0, "" | ||||
| 	} | ||||
|  | ||||
| 	// TODO(shurcooL): It's probably a good idea to simplify the 2 code paths here | ||||
| 	// into one, always get the syntax, and discard it if the caller doesn't care. | ||||
| 	if syntax != nil { | ||||
| 		syn := 0 | ||||
| 	// if just read the beginning marker, read the syntax | ||||
| 	if oldmarker == "" { | ||||
| 		i = skipChar(data, i, ' ') | ||||
|  | ||||
| 		if i >= n { | ||||
| 			if i == n { | ||||
| 				return i, marker | ||||
| @@ -871,41 +868,15 @@ func isFenceLine(data []byte, syntax *string, oldmarker string) (end int, marker | ||||
| 			return 0, "" | ||||
| 		} | ||||
|  | ||||
| 		syntaxStart := i | ||||
|  | ||||
| 		if data[i] == '{' { | ||||
| 			i++ | ||||
| 			syntaxStart++ | ||||
|  | ||||
| 			for i < n && data[i] != '}' && data[i] != '\n' { | ||||
| 				syn++ | ||||
| 				i++ | ||||
| 			} | ||||
|  | ||||
| 			if i >= n || data[i] != '}' { | ||||
| 				return 0, "" | ||||
| 			} | ||||
|  | ||||
| 			// strip all whitespace at the beginning and the end | ||||
| 			// of the {} block | ||||
| 			for syn > 0 && isSpace(data[syntaxStart]) { | ||||
| 				syntaxStart++ | ||||
| 				syn-- | ||||
| 			} | ||||
|  | ||||
| 			for syn > 0 && isSpace(data[syntaxStart+syn-1]) { | ||||
| 				syn-- | ||||
| 			} | ||||
|  | ||||
| 			i++ | ||||
| 		} else { | ||||
| 			for i < n && !isSpace(data[i]) { | ||||
| 				syn++ | ||||
| 				i++ | ||||
| 			} | ||||
| 		syntaxStart, syntaxLen := syntaxRange(data, &i) | ||||
| 		if syntaxStart == 0 && syntaxLen == 0 { | ||||
| 			return 0, "" | ||||
| 		} | ||||
|  | ||||
| 		*syntax = string(data[syntaxStart : syntaxStart+syn]) | ||||
| 		// caller wants the syntax | ||||
| 		if syntax != nil { | ||||
| 			*syntax = string(data[syntaxStart : syntaxStart+syntaxLen]) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	i = skipChar(data, i, ' ') | ||||
| @@ -918,6 +889,47 @@ func isFenceLine(data []byte, syntax *string, oldmarker string) (end int, marker | ||||
| 	return i + 1, marker // Take newline into account. | ||||
| } | ||||
|  | ||||
| func syntaxRange(data []byte, iout *int) (int, int) { | ||||
| 	n := len(data) | ||||
| 	syn := 0 | ||||
| 	i := *iout | ||||
| 	syntaxStart := i | ||||
| 	if data[i] == '{' { | ||||
| 		i++ | ||||
| 		syntaxStart++ | ||||
|  | ||||
| 		for i < n && data[i] != '}' && data[i] != '\n' { | ||||
| 			syn++ | ||||
| 			i++ | ||||
| 		} | ||||
|  | ||||
| 		if i >= n || data[i] != '}' { | ||||
| 			return 0, 0 | ||||
| 		} | ||||
|  | ||||
| 		// strip all whitespace at the beginning and the end | ||||
| 		// of the {} block | ||||
| 		for syn > 0 && isSpace(data[syntaxStart]) { | ||||
| 			syntaxStart++ | ||||
| 			syn-- | ||||
| 		} | ||||
|  | ||||
| 		for syn > 0 && isSpace(data[syntaxStart+syn-1]) { | ||||
| 			syn-- | ||||
| 		} | ||||
|  | ||||
| 		i++ | ||||
| 	} else { | ||||
| 		for i < n && !isSpace(data[i]) { | ||||
| 			syn++ | ||||
| 			i++ | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	*iout = i | ||||
| 	return syntaxStart, syn | ||||
| } | ||||
|  | ||||
| // fencedCodeBlock returns the end index if data contains a fenced code block at the beginning, | ||||
| // or 0 otherwise. It writes to out if doRender is true, otherwise it has no side effects. | ||||
| // If doRender is true, a final newline is mandatory to recognize the fenced code block. | ||||
| @@ -1416,7 +1428,7 @@ gatherlines: | ||||
| 			// we need to add leadingWhiteSpaces + 1 spaces in the beginning of the chunk | ||||
| 			if indentIndex >= 4 && p.dliPrefix(chunk) <= 0 { | ||||
| 				leadingWhiteSpaces := skipChar(chunk, 0, ' ') | ||||
| 				chunk = data[ line+indentIndex - (leadingWhiteSpaces + 1) : i] | ||||
| 				chunk = data[line+indentIndex-(leadingWhiteSpaces+1) : i] | ||||
| 			} | ||||
|  | ||||
| 			// to be a nested list, it must be indented more | ||||
|   | ||||
							
								
								
									
										47
									
								
								vendor/github.com/gomarkdown/markdown/parser/inline.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/gomarkdown/markdown/parser/inline.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -131,7 +131,11 @@ func codeSpan(p *Parser, data []byte, offset int) (int, ast.Node) { | ||||
|  | ||||
| 	// find the next delimiter | ||||
| 	i, end := 0, 0 | ||||
| 	hasLFBeforeDelimiter := false | ||||
| 	for end = nb; end < len(data) && i < nb; end++ { | ||||
| 		if data[end] == '\n' { | ||||
| 			hasLFBeforeDelimiter = true | ||||
| 		} | ||||
| 		if data[end] == '`' { | ||||
| 			i++ | ||||
| 		} else { | ||||
| @@ -144,6 +148,18 @@ func codeSpan(p *Parser, data []byte, offset int) (int, ast.Node) { | ||||
| 		return 0, nil | ||||
| 	} | ||||
|  | ||||
| 	// If there are non-space chars after the ending delimiter and before a '\n', | ||||
| 	// flag that this is not a well formed fenced code block. | ||||
| 	hasCharsAfterDelimiter := false | ||||
| 	for j := end; j < len(data); j++ { | ||||
| 		if data[j] == '\n' { | ||||
| 			break | ||||
| 		} | ||||
| 		if !isSpace(data[j]) { | ||||
| 			hasCharsAfterDelimiter = true | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// trim outside whitespace | ||||
| 	fBegin := nb | ||||
| 	for fBegin < end && data[fBegin] == ' ' { | ||||
| @@ -155,14 +171,31 @@ func codeSpan(p *Parser, data []byte, offset int) (int, ast.Node) { | ||||
| 		fEnd-- | ||||
| 	} | ||||
|  | ||||
| 	// render the code span | ||||
| 	if fBegin != fEnd { | ||||
| 		code := &ast.Code{} | ||||
| 		code.Literal = data[fBegin:fEnd] | ||||
| 		return end, code | ||||
| 	if fBegin == fEnd { | ||||
| 		return end, nil | ||||
| 	} | ||||
|  | ||||
| 	return end, nil | ||||
| 	// if delimiter has 3 backticks | ||||
| 	if nb == 3 { | ||||
| 		i := fBegin | ||||
| 		syntaxStart, syntaxLen := syntaxRange(data, &i) | ||||
|  | ||||
| 		// If we found a '\n' before the end marker and there are only spaces | ||||
| 		// after the end marker, then this is a code block. | ||||
| 		if hasLFBeforeDelimiter && !hasCharsAfterDelimiter { | ||||
| 			codeblock := &ast.CodeBlock{ | ||||
| 				IsFenced: true, | ||||
| 				Info:     data[syntaxStart : syntaxStart+syntaxLen], | ||||
| 			} | ||||
| 			codeblock.Literal = data[i:fEnd] | ||||
| 			return end, codeblock | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	// render the code span | ||||
| 	code := &ast.Code{} | ||||
| 	code.Literal = data[fBegin:fEnd] | ||||
| 	return end, code | ||||
| } | ||||
|  | ||||
| // newline preceded by two spaces becomes <br> | ||||
| @@ -781,7 +814,7 @@ func entity(p *Parser, data []byte, offset int) (int, ast.Node) { | ||||
| 		codepoint, err = strconv.ParseUint(string(ent[2:len(ent)-1]), 10, 64) | ||||
| 	} | ||||
| 	if err == nil { // only if conversion was valid return here. | ||||
| 		return end, newTextNode([]byte(string(codepoint))) | ||||
| 		return end, newTextNode([]byte(string(rune(codepoint)))) | ||||
| 	} | ||||
|  | ||||
| 	return end, newTextNode(ent) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Wim
					Wim