add hyperlink templating and rename some functions
This commit is contained in:
parent
b369ba3a62
commit
89ef84cdbc
1 changed files with 29 additions and 2 deletions
31
main.c
31
main.c
|
@ -105,6 +105,31 @@ int fpportal(FILE* f, Lexicon* l, char* s, int head) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int fphref(FILE* f, char* s) {
|
||||||
|
char href[1024] = {0};
|
||||||
|
char txt[1024] = {0};
|
||||||
|
|
||||||
|
char* c = s;
|
||||||
|
int i = 0;
|
||||||
|
while (i < 2) {
|
||||||
|
if (*c == '|' || !(*c)) {
|
||||||
|
i++;
|
||||||
|
c++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
switch (i) {
|
||||||
|
case 0:
|
||||||
|
ccat(href, *c++);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
ccat(txt, *c++);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf(f, "<a href='%s'>%s</a>", href, txt);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int fpimg(FILE* f, char* s) {
|
int fpimg(FILE* f, char* s) {
|
||||||
char id[1024] = {0};
|
char id[1024] = {0};
|
||||||
char src[1024] = {0};
|
char src[1024] = {0};
|
||||||
|
@ -137,7 +162,7 @@ int fpimg(FILE* f, char* s) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fpimgl(FILE* f, char* s) {
|
int fphimg(FILE* f, char* s) {
|
||||||
char id[1024] = {0};
|
char id[1024] = {0};
|
||||||
char href[1024] = {0};
|
char href[1024] = {0};
|
||||||
char src[1024] = {0};
|
char src[1024] = {0};
|
||||||
|
@ -184,10 +209,12 @@ int fptemplate(FILE* f, Lexicon* l, char* s) {
|
||||||
int target;
|
int target;
|
||||||
if (s[0] == '/')
|
if (s[0] == '/')
|
||||||
return fpportal(f, l, s + 1, 1);
|
return fpportal(f, l, s + 1, 1);
|
||||||
|
if (s[0] == '*')
|
||||||
|
return fphref(f, s + 1);
|
||||||
if (s[0] == ':')
|
if (s[0] == ':')
|
||||||
return fpimg(f, s + 1);
|
return fpimg(f, s + 1);
|
||||||
if (s[0] == '?')
|
if (s[0] == '?')
|
||||||
return fpimgl(f, s + 1);
|
return fphimg(f, s + 1);
|
||||||
if (s[0] == '_')
|
if (s[0] == '_')
|
||||||
return fpaudio(f, s + 1);
|
return fpaudio(f, s + 1);
|
||||||
target = findf(l, s);
|
target = findf(l, s);
|
||||||
|
|
Loading…
Reference in a new issue