#include <stdio.h>
|
|
#include "markdown.h"
|
|
|
|
struct flagnames {
|
|
DWORD flag;
|
|
char *name;
|
|
};
|
|
|
|
static struct flagnames flagnames[] = {
|
|
{ MKD_NOLINKS, "!LINKS" },
|
|
{ MKD_NOIMAGE, "!IMAGE" },
|
|
{ MKD_NOPANTS, "!PANTS" },
|
|
{ MKD_NOHTML, "!HTML" },
|
|
{ MKD_STRICT, "STRICT" },
|
|
{ MKD_TAGTEXT, "TAGTEXT" },
|
|
{ MKD_NO_EXT, "!EXT" },
|
|
{ MKD_CDATA, "CDATA" },
|
|
{ MKD_NOSUPERSCRIPT, "!SUPERSCRIPT" },
|
|
{ MKD_NORELAXED, "!RELAXED" },
|
|
{ MKD_NOTABLES, "!TABLES" },
|
|
{ MKD_NOSTRIKETHROUGH,"!STRIKETHROUGH" },
|
|
{ MKD_TOC, "TOC" },
|
|
{ MKD_1_COMPAT, "MKD_1_COMPAT" },
|
|
{ MKD_AUTOLINK, "AUTOLINK" },
|
|
{ MKD_SAFELINK, "SAFELINK" },
|
|
{ MKD_NOHEADER, "!HEADER" },
|
|
{ MKD_TABSTOP, "TABSTOP" },
|
|
{ MKD_NODIVQUOTE, "!DIVQUOTE" },
|
|
{ MKD_NOALPHALIST, "!ALPHALIST" },
|
|
{ MKD_NODLIST, "!DLIST" },
|
|
{ MKD_EXTRA_FOOTNOTE, "FOOTNOTE" },
|
|
{ MKD_NOSTYLE, "!STYLE" },
|
|
};
|
|
#define NR(x) (sizeof x/sizeof x[0])
|
|
|
|
|
|
void
|
|
mkd_flags_are(FILE *f, DWORD flags, int htmlplease)
|
|
{
|
|
int i;
|
|
int not, set, even=1;
|
|
char *name;
|
|
|
|
if ( htmlplease )
|
|
fprintf(f, "<table class=\"mkd_flags_are\">\n");
|
|
for (i=0; i < NR(flagnames); i++) {
|
|
set = flags & flagnames[i].flag;
|
|
name = flagnames[i].name;
|
|
if ( not = (*name == '!') ) {
|
|
++name;
|
|
set = !set;
|
|
}
|
|
|
|
if ( htmlplease ) {
|
|
if ( even ) fprintf(f, " <tr>");
|
|
fprintf(f, "<td>");
|
|
}
|
|
else
|
|
fputc(' ', f);
|
|
|
|
if ( !set )
|
|
fprintf(f, htmlplease ? "<s>" : "!");
|
|
|
|
fprintf(f, "%s", name);
|
|
|
|
if ( htmlplease ) {
|
|
if ( !set )
|
|
fprintf(f, "</s>");
|
|
fprintf(f, "</td>");
|
|
if ( !even ) fprintf(f, "</tr>\n");
|
|
}
|
|
even = !even;
|
|
}
|
|
if ( htmlplease ) {
|
|
if ( even ) fprintf(f, "</tr>\n");
|
|
fprintf(f, "</table>\n");
|
|
}
|
|
}
|
|
|
|
void
|
|
mkd_mmiot_flags(FILE *f, MMIOT *m, int htmlplease)
|
|
{
|
|
if ( m )
|
|
mkd_flags_are(f, m->flags, htmlplease);
|
|
}
|