# - [x] Reference style links
# - [x] Emphasis *em*/**strong** (*Asterisk*, _Underscore_)
# - [x] `code`, also ``code containing `backticks` ``
-# - [ ] Images / reference style images
+# - [x] Images / reference style images
# - [x] <automatic links>
# - [x] backslash escapes
#
return "" substr(line, 1, len) inline( substr(line, len + 1) );
}
+ # inline images
+ } else if ( match(line, /^!\[([^]]+)\]\(([^"\)]+)([ \t]+"([^"]+)")?\)/) ) {
+ len = RLENGTH;
+ text = gensub(/^!\[([^]]+)\]\(([^"\)]+)([ \t]+"([^"]+)")?\)/, "\\1", "g", line);
+ href = gensub(/^!\[([^]]+)\]\(([^"\)]+)([ \t]+"([^"]+)")?\)/, "\\2", "g", line);
+ title = gensub(/^!\[([^]]+)\]\(([^"\)]+)([ \t]+"([^"]+)")?\)/, "\\4", "g", line);
+ if ( title ) {
+ return "<img src=\"" HTML(href) "\" alt=\"" HTML(text) "\" title=\"" HTML(title) "\" />" inline( substr( line, len + 1) );
+ } else {
+ return "<img src=\"" HTML(href) "\" alt=\"" HTML(text) "\" />" inline( substr( line, len + 1) );
+ }
+
+ # reference style images
+ } else if ( match(line, /^!\[([^]]+)\] ?\[([^]]*)\]/ ) ) {
+ len = RLENGTH;
+ text = gensub(/^!\[([^\n]+)\] ?\[([^\n]*)\].*/, "\\1", 1, line);
+ id = gensub(/^!\[([^\n]+)\] ?\[([^\n]*)\].*/, "\\2", 1, line);
+ if ( ! id ) id = text;
+ if ( rl_href[id] && rl_title[id] ) {
+ return "<img src=\"" rl_href[id] "\" alt=\"" HTML(text) "\" title=\"" rl_title[id] "\" />" inline( substr( line, len + 1) );
+ } else if ( rl_href[id] ) {
+ return "<img src=\"" rl_href[id] "\" alt=\"" HTML(text) "\" />" inline( substr( line, len + 1) );
+ } else {
+ return "" substr(line, 1, len) inline( substr(line, len + 1) );
+ }
+
# ~~strikeout~~ (pandoc)
} else if ( match(line, /^~~([[:graph:]]|[[:graph:]]([^~]|~[^~])*[[:graph:]])~~/) ) {
len = RLENGTH;