diff options
Diffstat (limited to 'output.c')
-rw-r--r-- | output.c | 32 |
1 files changed, 25 insertions, 7 deletions
@@ -1,9 +1,9 @@ #include <stdio.h> +#include <stdbool.h> +#include <string.h> #include "tokens.h" - -extern token tokens[1024]; -extern int tokcount; +#include "opts.h" void printashtml(token t) { char *start, *end; @@ -18,11 +18,29 @@ void printashtml(token t) { void printasgn(token t) { char *start, *end; + bool p = (m & PRETTY) == PRETTY; 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; + 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); } |