#include #include #include #include "tokens.h" #include "opts.h" void printashtml(token t) { char *start, *end; switch (t.type) { case HEADING: start = "

"; end = "

\n"; break; case DATE: start = "

"; end = "

\n"; break; case TODO: start = "

"; end = "

\n"; break; case BULLET: start = "

"; end = "

\n"; break; } printf("%s%s%s", start, t.data, end); } void printasgn(token t) { char *start, *end; bool p = (m & PRETTY) == PRETTY; switch (t.type) { case HEADING: start = (p) ? "\e[1m*" : "*"; end = (p) ? "* \e[0m" : " *"; break; case DATE: start = (p) ? "\e[4m[" : "["; end = (p) ? "]\e[0m " : "] "; break; case TODO: if (strcmp(t.data, "done") == 0) { start = (p) ? "\x1B[32m\e[2m{" : "{"; end = (p) ? "}\n\x1B[31m\e[0m\e[0m" : "}\n"; } else { start = (p) ? "\x1B[31m\e[2m{" : "{"; end = (p) ? "}\n\x1B[31m\e[0m\e[0m" : "}\n"; } break; case BULLET: start = (p) ? "\e[3m- " : "- "; end = (p) ? "\n\e[0m" : "\n"; break; } printf("%s%s%s", start, t.data, end); } void printasgroff(token t) { char *start, *end; switch (t.type) { case HEADING: start = ".NH\n"; end = "\n"; break; case DATE: start = ".LP\n"; end = "\n"; break; case TODO: start = ".LP\n"; end = "\n"; break; case BULLET: start = ".PP\n"; end = "\n"; break; } printf("%s%s%s", start, t.data, end); } void printastext(token t) { char *start, *end; switch (t.type) { case HEADING: start = " "; end = " "; break; case DATE: start = " "; end = " "; break; case TODO: start = " "; end = " \n"; break; case BULLET: start = " "; end = " \n"; break; } printf("%s%s%s", start, t.data, end); }