vendor/github.com/russross/blackfriday/v2/esc.go
changeset 256 6d9efbef00a9
child 260 445e01aede7e
equal deleted inserted replaced
255:4f153a23adab 256:6d9efbef00a9
       
     1 package blackfriday
       
     2 
       
     3 import (
       
     4 	"html"
       
     5 	"io"
       
     6 )
       
     7 
       
     8 var htmlEscaper = [256][]byte{
       
     9 	'&': []byte("&"),
       
    10 	'<': []byte("&lt;"),
       
    11 	'>': []byte("&gt;"),
       
    12 	'"': []byte("&quot;"),
       
    13 }
       
    14 
       
    15 func escapeHTML(w io.Writer, s []byte) {
       
    16 	var start, end int
       
    17 	for end < len(s) {
       
    18 		escSeq := htmlEscaper[s[end]]
       
    19 		if escSeq != nil {
       
    20 			w.Write(s[start:end])
       
    21 			w.Write(escSeq)
       
    22 			start = end + 1
       
    23 		}
       
    24 		end++
       
    25 	}
       
    26 	if start < len(s) && end <= len(s) {
       
    27 		w.Write(s[start:end])
       
    28 	}
       
    29 }
       
    30 
       
    31 func escLink(w io.Writer, text []byte) {
       
    32 	unesc := html.UnescapeString(string(text))
       
    33 	escapeHTML(w, []byte(unesc))
       
    34 }