From 29a0ab1f2b04a9b9a45282b6c9026136b1ed1f6d Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Tue, 28 Oct 2025 01:59:24 -0700 Subject: set CSS theme as a member variable --- src/markdown_translator.cpp | 43 ++++++++++++------------------------------- 1 file changed, 12 insertions(+), 31 deletions(-) (limited to 'src/markdown_translator.cpp') diff --git a/src/markdown_translator.cpp b/src/markdown_translator.cpp index 3c97874..5bd1cc4 100644 --- a/src/markdown_translator.cpp +++ b/src/markdown_translator.cpp @@ -3,7 +3,7 @@ #include #include -MarkdownTranslator::MarkdownTranslator() : title("Carbon") { +MarkdownTranslator::MarkdownTranslator() : title("WikiMD2HTML") { } @@ -25,50 +25,31 @@ void MarkdownTranslator::processMetadata(const std::vector& lines){ } } -std::string MarkdownTranslator::translate(const std::string& markdownContent, const std::string& cssPath) { +std::string MarkdownTranslator::translate(const std::string& markdownContent) { std::stringstream htmlOutput; std::stringstream markdownStream(markdownContent); std::string line; std::vector headers; - std::string currentLine; + // Parse metadata section if it exists bool metadataExists{false}; std::vector metadataLines; - while (std::getline(markdownStream, currentLine)) { - if(currentLine == "---"){ - if(metadataExists){ + if (std::getline(markdownStream, currentLine) && currentLine == "---") { + metadataExists = true; + while (std::getline(markdownStream, currentLine)) { + if (currentLine == "---") { break; - } else { - metadataExists = true; - continue; - } - } - if(!metadataExists){ - break; - } - metadataLines.push_back(currentLine); - } - processMetadata(metadataLines); - - while (std::getline(markdownStream, currentLine)) { - std::regex headerRegex("^(#{1,3})\\s+(.*)$"); - std::smatch matches; - if (std::regex_match(currentLine, matches, headerRegex)) { - int level = matches[1].length(); - std::string content = matches[2]; - if (level <= 3) { - headers.push_back(std::to_string(level) + ":" + content); } + metadataLines.push_back(currentLine); } } - markdownStream.clear(); - markdownStream.str(markdownContent); - htmlOutput << buildHTMLHeader(title, cssPath); - // Add navigation sidebar + // Process and apply metadata to curr object + if(metadataExists) + processMetadata(metadataLines); + htmlOutput << buildHTMLHeader(title); generateSideBar(htmlOutput, headers); - // Main content container htmlOutput << "
\n"; htmlOutput << "
\n"; -- cgit v1.2.3