aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/markdown_translator.hpp36
-rw-r--r--src/markdown_translator.cpp32
2 files changed, 36 insertions, 32 deletions
diff --git a/include/markdown_translator.hpp b/include/markdown_translator.hpp
index 6a3b91f..6eb32f8 100644
--- a/include/markdown_translator.hpp
+++ b/include/markdown_translator.hpp
@@ -36,7 +36,41 @@ private:
void generateSideBar(std::stringstream& output, const std::vector<std::string>& headers);
std::string createAnchorId(const std::string& text);
// Utility functions
- std::string getCurrentDateTime();
+
+ std::string getCurrentDateTime() {
+ std::time_t now = std::time(nullptr);
+ std::tm* localTime = std::localtime(&now);
+
+ char buffer[80];
+ std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", localTime);
+
+ return std::string(buffer);
+ }
+
+ // HTML builders
+ std::string buildHTMLHeader(const std::string& title, const std::string& cssPath){
+ return R"(<!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>)" + title + R"(</title>
+ <link rel="stylesheet" href=")" + cssPath + R"(">
+ </head>
+ <body>
+ )";
+ }
+
+ std::string buildHTMLFooter(){
+ return R"( <div class="article-meta">
+ <p>Last updated: )" + getCurrentDateTime() + R"(</p>
+ </div>
+ </div>
+ </div>
+ </body>
+ </html>
+ )";
+ }
// Member variables
std::string title;
diff --git a/src/markdown_translator.cpp b/src/markdown_translator.cpp
index 9ec37a6..3c97874 100644
--- a/src/markdown_translator.cpp
+++ b/src/markdown_translator.cpp
@@ -62,22 +62,10 @@ std::string MarkdownTranslator::translate(const std::string& markdownContent, co
}
}
}
-
markdownStream.clear();
markdownStream.str(markdownContent);
- // Start with basic HTML structure
- htmlOutput << R"(<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>)" << title << R"(</title>
- <link rel="stylesheet" href=")" << cssPath << R"(">
-</head>
-<body>
-)";
-
+ htmlOutput << buildHTMLHeader(title, cssPath);
// Add navigation sidebar
generateSideBar(htmlOutput, headers);
@@ -111,15 +99,7 @@ std::string MarkdownTranslator::translate(const std::string& markdownContent, co
htmlOutput << " " << processLine(line);
}
- // Add article meta information section
- htmlOutput << " <div class=\"article-meta\">\n";
- htmlOutput << " <p>Last updated: " << getCurrentDateTime() << "</p>\n";
- htmlOutput << " </div>\n";
- htmlOutput << " </div>\n";
- htmlOutput << " </div>\n";
- htmlOutput << "</body>\n";
- htmlOutput << "</html>\n";
return htmlOutput.str();
}
@@ -182,16 +162,6 @@ std::string MarkdownTranslator::createAnchorId(const std::string& text) {
return id;
}
-std::string MarkdownTranslator::getCurrentDateTime() {
- std::time_t now = std::time(nullptr);
- std::tm* localTime = std::localtime(&now);
-
- char buffer[80];
- std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", localTime);
-
- return std::string(buffer);
-}
-
std::string MarkdownTranslator::processLine(const std::string& line) {
std::string processed = line;
processed = processHeaders(processed);
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage