From e7e2d7e6bb8a5a54f1efe049858526392168ba30 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Thu, 30 Apr 2020 12:34:19 -0400 Subject: Nest elements for increased levels of quotation --- default.html | 6 ++++++ html.c | 22 ++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/default.html b/default.html index 7059e61..9190086 100644 --- a/default.html +++ b/default.html @@ -98,6 +98,12 @@ pre q::before, pre q::after { pre q { color: navy; } +pre q q { + color: teal; +} +pre q q q { + color: purple; +} pre del { text-decoration: none; color: red; diff --git a/html.c b/html.c index ee9e966..12f3ff0 100644 --- a/html.c +++ b/html.c @@ -253,6 +253,23 @@ static int htmlMarkupURLs(FILE *file, char *buf) { return escapeXML(file, ptr); } +static int htmlMarkupQuote(FILE *file, char *buf) { + int error; + size_t level = 0; + for (char *ch = buf; *ch == '>' || *ch == ' '; level += (*ch++ == '>')); + for (size_t i = 0; i < level; ++i) { + error = templateRender(file, TEMPLATE(), NULL, NULL); + if (error) return error; + } + error = htmlMarkupURLs(file, buf); + if (error) return error; + for (size_t i = 0; i < level; ++i) { + error = templateRender(file, TEMPLATE(), NULL, NULL); + if (error) return error; + } + return 0; +} + static int htmlMarkup(FILE *file, const char *content) { int error = 0; size_t cap = 0; @@ -299,10 +316,7 @@ static int htmlMarkup(FILE *file, const char *content) { } else if (patch) { error = escapeXML(file, buf); } else if (buf[0] == '>') { - error = 0 - || templateRender(file, TEMPLATE(), NULL, NULL) - || htmlMarkupURLs(file, buf) - || templateRender(file, TEMPLATE(), NULL, NULL); + error = htmlMarkupQuote(file, buf); } else { error = htmlMarkupURLs(file, buf); } -- cgit 1.4.1