apply img and anchor support written by Hiltjo Posthuma. Thanks mate!
This commit is contained in:
parent
0121dd058d
commit
913a387aff
2 changed files with 49 additions and 7 deletions
38
smu.c
38
smu.c
|
@ -234,8 +234,9 @@ dolineprefix(const char *begin, const char *end, int newblock) {
|
|||
|
||||
int
|
||||
dolink(const char *begin, const char *end, int newblock) {
|
||||
int img;
|
||||
int img, len, sep;
|
||||
const char *desc, *link, *p, *q, *descend, *linkend;
|
||||
const char *title = NULL, *titleend = NULL;
|
||||
|
||||
if(*begin == '[')
|
||||
img = 0;
|
||||
|
@ -251,24 +252,49 @@ dolink(const char *begin, const char *end, int newblock) {
|
|||
return 0;
|
||||
descend = p;
|
||||
link = p + 2;
|
||||
if(!(p = strstr(link, ")")) || p > end)
|
||||
if(!(q = strchr(link, ')')) || q > end)
|
||||
return 0;
|
||||
linkend = p;
|
||||
if((p = strpbrk(link, "\"'")) && p < end && q > p) {
|
||||
sep = p[0]; /* separator: can be " or ' */
|
||||
title = p + 1;
|
||||
/* strip trailing whitespace */
|
||||
for(linkend = p; linkend > link && isspace(*(linkend - 1)); linkend--);
|
||||
if(!(p = strchr(title, sep)) || q > end || p > q)
|
||||
return 0;
|
||||
titleend = p;
|
||||
len = p + 2 - begin;
|
||||
}
|
||||
else {
|
||||
linkend = q;
|
||||
len = q + 1 - begin;
|
||||
}
|
||||
if(img) {
|
||||
fputs("<img src=\"", stdout);
|
||||
hprint(link, linkend);
|
||||
fputs("\" alt=\"", stdout);
|
||||
hprint(desc, descend);
|
||||
fputs("\" />", stdout);
|
||||
fputs("\" ", stdout);
|
||||
if(title && titleend) {
|
||||
fputs("title=\"", stdout);
|
||||
hprint(title, titleend);
|
||||
fputs("\" ", stdout);
|
||||
}
|
||||
fputs("/>", stdout);
|
||||
}
|
||||
else {
|
||||
fputs("<a href=\"", stdout);
|
||||
hprint(link, linkend);
|
||||
fputs("\">", stdout);
|
||||
fputs("\"", stdout);
|
||||
if(title && titleend) {
|
||||
fputs(" title=\"", stdout);
|
||||
hprint(title, titleend);
|
||||
fputs("\"", stdout);
|
||||
}
|
||||
fputs(">", stdout);
|
||||
process(desc, descend, 0);
|
||||
fputs("</a>", stdout);
|
||||
}
|
||||
return p + 1 - begin;
|
||||
return len;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
18
testdoc
18
testdoc
|
@ -54,7 +54,23 @@ code:
|
|||
links
|
||||
-----
|
||||
|
||||
[suckless](http://suckless.org)
|
||||
link: [suckless](http://suckless.org/)
|
||||
|
||||
link with title: [suckless](http://suckless.org/ "software that sucks less")
|
||||
|
||||
link with title (single quote): [suckless](http://suckless.org/ 'software that sucks less')
|
||||
|
||||
|
||||
images
|
||||
------
|
||||
|
||||
image: 
|
||||
|
||||
image with alt text: 
|
||||
|
||||
image with title: 
|
||||
|
||||
image with title (single quote): 
|
||||
|
||||
inline html
|
||||
-----------
|
||||
|
|
Loading…
Add table
Reference in a new issue