diff options
author | thing1 <thing1@seacrossedlovers.xyz> | 2025-04-08 09:53:29 +0100 |
---|---|---|
committer | thing1 <thing1@seacrossedlovers.xyz> | 2025-04-08 09:53:29 +0100 |
commit | 2ebbe89ddf64a1cdaea65b4d49ffe668c6577e00 (patch) | |
tree | 45f0b0d95d8959c951fe614ccb81e35e33291a95 /output.c | |
parent | 39b1d95bcdb6f6dfe17186a05798084234d0cc24 (diff) |
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); } |