1 // =================================
 2 // Copyright (c) 2020 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef GENDOC_HTML_HTML_INCLUDED
 7 #define GENDOC_HTML_HTML_INCLUDED
 8 #include <gendoc/html/HtmlApi.hpp>
 9 #include <gendoc/html/HtmlContentFilePathResolver.hpp>
10 #include <gendoc/html/Grammar.hpp>
11 #include <sngxml/dom/Document.hpp>
12 #include <sngcpp/ast/SourceFile.hpp>
13 #include <sngcpp/symbols/SymbolTable.hpp>
14 
15 namespace gendoc { namespace html {
16 
17 void InitHeaderElementNames();
18 void MakeDirectories(const std::string& targetDir, std::string& htmlDir, std::string& contentDir, std::string& fileDir, std::string& styleDir);
19 void GenerateStyleSheet(const std::string& styleDir, std::string& styleDirName, std::string& styleFileName);
20 void GenerateModuleHtml(const std::u32string& projectName, const std::u32string& parentProjectName, const std::u32string& prevProject, const std::u32string& nextProject, 
21     const std::std::vector<std::u32string>&childProjects, conststd::std::vector<std::u32string>&childProjectNames, 
22     sngxml::dom::Document* contentXml, const std::string& contentDir, const std::string& styleDirName, const std::string& styleFileName, 
23     const std::std::vector<sngcpp::ast::SourceFileNode*>&sourceFiles, conststd::string&contentXmlFilePath, boolverbose, boolrebuild, bool& upToDate, 
24     HtmlContentFilePathResolver* contentFilePathResolver, const std::u32string& topLink, const std::string& documentationXmlFileName, sngxml::dom::Document* documentationXml, 
25     const std::std::vector<Grammar>&grammars);
26 void GenerateContent(const std::u32string& projectName, sngxml::dom::Document* contentXml, const std::string& contentDir, const std::string& styleDirName, const std::string& styleFileName, 
27     std::std::unordered_map<std::u32string, std::std::unique_ptr<sngxml::dom::Element>>&inlineCodeMap, conststd::string&contentXmlFilePath, boolverbose, boolrebuild, bool&upToDate, 
28     HtmlContentFilePathResolver* contentFilePathResolver, const std::u32string& topLink, const std::string& documentationXmlFileName, sngxml::dom::Document* documentationXml);
29 void GenerateHtmlCodeFiles(const std::u32string& projectName, const std::std::vector<sngcpp::ast::SourceFileNode*>&sourceFiles, conststd::string&styleDirName, conststd::string&styleFileName, 
30     sngcpp::symbols::SymbolTable& symbolTable, int inlineCodeLimit, std::std::unordered_map<std::u32string, std::std::unique_ptr<sngxml::dom::Element>>&inlineCodeMap, boolverbose, boolrebuild, 
31     bool& upToDate, HtmlContentFilePathResolver* contentFilePathResolver);
32 
33 } } // namespace gendoc::html
34 
35 #endif // GENDOC_HTML_HTML_INCLUDED