From 539ef6568697c9dc1712fc7a2a379d4e3fb9235c Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Tue, 7 Oct 2025 13:47:34 -0700 Subject: Initial commit --- src/markdown_translator.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/markdown_translator.h (limited to 'src/markdown_translator.h') diff --git a/src/markdown_translator.h b/src/markdown_translator.h new file mode 100644 index 0000000..6d24ac7 --- /dev/null +++ b/src/markdown_translator.h @@ -0,0 +1,35 @@ +#ifndef MARKDOWN_TRANSLATOR_H +#define MARKDOWN_TRANSLATOR_H + +#include +#include +#include +#include + +class MarkdownTranslator { +public: + // Constructor + MarkdownTranslator(); + // Destructor + ~MarkdownTranslator(); + // Main translation function - takes markdown content and returns HTML + std::string translate(const std::string& markdownContent, const std::string& cssPath = "styles/ffxiv-style.css", const std::string& title = "Title"); + std::string processLine(const std::string& line); + +private: + // Helper functions for different markdown elements + std::string processHeaders(const std::string& line); + std::string processBold(const std::string& text); + std::string processItalic(const std::string& text); + std::string processLinks(const std::string& text); + std::string processParagraph(const std::string& text); + std::string processSingleFigure(const std::string& text); + std::string processFigureBlock(const std::vector& lines); + // Navigation and table of contents + void generateSideBar(std::stringstream& output, const std::vector& headers, const std::string& title); + std::string createAnchorId(const std::string& text); + // Utility functions + std::string getCurrentDateTime(); +}; + +#endif // MARKDOWN_TRANSLATOR_H -- cgit v1.2.3