commit 05a39aecefbfc7ef340800c14123c89afcdcedde
parent 49343dc73c9ee5bd12dca00b8bace3dbc1734aac
Author: gottox@rootkit.lan <gottox@rootkit.lan>
Date: Fri, 14 Dec 2007 17:40:20 +0100
<pre><code> instead of </pre>
Diffstat:
M | cmarkdown.c | | | 48 | ++++++++++++++++++++++++------------------------ |
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/cmarkdown.c b/cmarkdown.c
@@ -19,7 +19,7 @@ typedef unsigned int (*Parser)(const char *, const char *, int);
struct Tag {
char *search;
int process;
- char *tag;
+ char *before, *after;
};
@@ -53,27 +53,27 @@ Parser parsers[] = { dounderline, dohtml, dolineprefix, dolist, doparagraph,
FILE *source;
unsigned int bsize = 0, nohtml = 0;
struct Tag lineprefix[] = {
- { " ", 0, "pre" },
- { "\t", 0, "pre" },
- { "> ", 2, "blockquote" },
- { "###### ", 1, "h6" },
- { "##### ", 1, "h5" },
- { "#### ", 1, "h4" },
- { "### ", 1, "h3" },
- { "## ", 1, "h2" },
- { "# ", 1, "h1" },
+ { " ", 0, "<pre><code>", "</code></pre>" },
+ { "\t", 0, "<pre><code>", "</code></pre>" },
+ { "> ", 2, "<blockquote>", "</blockquote>" },
+ { "###### ", 1, "<h6>", "</h6>" },
+ { "##### ", 1, "<h5>", "</h5>" },
+ { "#### ", 1, "<h4>", "</h4>" },
+ { "### ", 1, "<h3>", "</h3>" },
+ { "## ", 1, "<h2>", "</h2>" },
+ { "# ", 1, "<h1>", "</h1>" },
};
struct Tag underline[] = {
- { "=", 1, "<h1>" },
- { "-", 1, "<h2>" },
+ { "=", 1, "<h1>", "</h1>" },
+ { "-", 1, "<h2>", "</h2>" },
};
struct Tag surround[] = {
- { "``", 0, "code" },
- { "`", 0, "code" },
- { "__", 1, "strong" },
- { "**", 1, "strong" },
- { "*", 1, "em" },
- { "_", 1, "em" },
+ { "``", 0, "<code>", "</code>" },
+ { "`", 0, "<code>", "</code>" },
+ { "__", 1, "<strong>", "</strong>" },
+ { "**", 1, "<strong>", "</strong>" },
+ { "*", 1, "<em>", "</em>" },
+ { "_", 1, "<em>", "</em>" },
};
char * replace[][2] = {
{ "\n- - -\n", "\n<hr />\n" },
@@ -174,7 +174,7 @@ dolineprefix(const char *begin, const char *end, int newblock) {
if(!(buffer = malloc(BUFFERSIZE)))
eprint("Malloc failed.");
buffer[0] = '\0';
- printf("<%s>\n",lineprefix[i].tag);
+ puts(lineprefix[i].before);
for(j = 0, p += l; p != end; p++, j++) {
ADDC(buffer,j) = *p;
if(*p == '\n') {
@@ -188,7 +188,7 @@ dolineprefix(const char *begin, const char *end, int newblock) {
process(buffer,buffer+strlen(buffer), lineprefix[i].process >= 2);
else
hprint(buffer,buffer+strlen(buffer));
- printf("</%s>\n",lineprefix[i].tag);
+ puts(lineprefix[i].after);
free(buffer);
return -(p - begin);
}
@@ -407,14 +407,14 @@ dosurround(const char *begin, const char *end, int newblock) {
} while(p && p[-1] == '\\');
if(!p || p > end)
continue;
- printf("<%s>",surround[i].tag);
+ fputs(surround[i].before,stdout);
for(q = begin + strlen(surround[i].search); *q == ' '; q++);
for(qend = p-1; *qend == ' '; qend--);
if(surround[i].process)
process(q, qend+1,0);
else
hprint(q, qend+1);
- printf("</%s>",surround[i].tag);
+ fputs(surround[i].after,stdout);
return p - begin + l;
}
return 0;
@@ -435,12 +435,12 @@ dounderline(const char *begin, const char *end, int newblock) {
for(i = 0; i < LENGTH(underline); i++) {
for(j = 0; p[j] != '\n' && p[j] == underline[i].search[0] && p+j != end; j++);
if(j >= l) {
- printf("<%s>",underline[i].tag);
+ fputs(underline[i].before,stdout);
if(underline[i].process)
process(begin, begin + l, 0);
else
hprint(begin, begin + l);
- printf("</%s>\n",underline[i].tag);
+ fputs(underline[i].after,stdout);
return -(j + p - begin);
}
}