Implemented image links
This commit is contained in:
32
Render.go
32
Render.go
@ -279,6 +279,7 @@ func (r *renderer) writeText(markdown string) {
|
||||
searchStart = 0
|
||||
linkTextStart = -1
|
||||
linkTextEnd = -1
|
||||
linkIsImage = false
|
||||
emStart = -1
|
||||
strongStart = -1
|
||||
strikeStart = -1
|
||||
@ -286,7 +287,7 @@ func (r *renderer) writeText(markdown string) {
|
||||
|
||||
begin:
|
||||
for {
|
||||
i := strings.IndexAny(markdown[searchStart:], "[]()`*_~")
|
||||
i := strings.IndexAny(markdown[searchStart:], "[]()`*_~!")
|
||||
|
||||
if i == -1 {
|
||||
r.WriteString(html.EscapeString(markdown[tokenStart:]))
|
||||
@ -332,11 +333,19 @@ begin:
|
||||
linkText := markdown[linkTextStart+1 : linkTextEnd]
|
||||
linkURL := markdown[i+1 : urlEnd]
|
||||
|
||||
r.WriteString("<a href=\"")
|
||||
r.WriteString(sanitizeURL(linkURL))
|
||||
r.WriteString("\">")
|
||||
r.WriteString(html.EscapeString(linkText))
|
||||
r.WriteString("</a>")
|
||||
if linkIsImage {
|
||||
r.WriteString("<img src=\"")
|
||||
r.WriteString(sanitizeURL(linkURL))
|
||||
r.WriteString("\" alt=\"")
|
||||
r.WriteString(html.EscapeString(linkText))
|
||||
r.WriteString("\">")
|
||||
} else {
|
||||
r.WriteString("<a href=\"")
|
||||
r.WriteString(sanitizeURL(linkURL))
|
||||
r.WriteString("\">")
|
||||
r.WriteString(html.EscapeString(linkText))
|
||||
r.WriteString("</a>")
|
||||
}
|
||||
|
||||
linkTextStart = -1
|
||||
linkTextEnd = -1
|
||||
@ -402,6 +411,17 @@ begin:
|
||||
tokenStart = i
|
||||
strikeStart = i + 2
|
||||
}
|
||||
|
||||
case '!':
|
||||
if i+1 >= len(markdown) || markdown[i+1] != '[' {
|
||||
continue
|
||||
}
|
||||
|
||||
r.WriteString(html.EscapeString(markdown[tokenStart:i]))
|
||||
tokenStart = i
|
||||
linkTextStart = i + 1
|
||||
searchStart++
|
||||
linkIsImage = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user