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& targetDirstd::string& htmlDirstd::string& contentDirstd::string& fileDirstd::string& styleDir);
19 void GenerateStyleSheet(const std::string& styleDirstd::string& styleDirNamestd::string& styleFileName);
20 void GenerateModuleHtml(const std::u32string& projectNameconst std::u32string& parentProjectNameconst std::u32string& prevProjectconst std::u32string& nextProject
21     const std::std::vector<std::u32string>&childProjectsconststd::std::vector<std::u32string>&childProjectNames
22     sngxml::dom::Document* contentXmlconst std::string& contentDirconst std::string& styleDirNameconst std::string& styleFileName
23     const std::std::vector<sngcpp::ast::SourceFileNode*>&sourceFilesconststd::string&contentXmlFilePathboolverboseboolrebuildbool& upToDate
24     HtmlContentFilePathResolver* contentFilePathResolverconst std::u32string& topLinkconst std::string& documentationXmlFileNamesngxml::dom::Document* documentationXml
25     const std::std::vector<Grammar>&grammars);
26 void GenerateContent(const std::u32string& projectNamesngxml::dom::Document* contentXmlconst std::string& contentDirconst std::string& styleDirNameconst std::string& styleFileName
27     std::std::unordered_map<std::u32stringstd::std::unique_ptr<sngxml::dom::Element>>&inlineCodeMapconststd::string&contentXmlFilePathboolverboseboolrebuildbool&upToDate
28     HtmlContentFilePathResolver* contentFilePathResolverconst std::u32string& topLinkconst std::string& documentationXmlFileNamesngxml::dom::Document* documentationXml);
29 void GenerateHtmlCodeFiles(const std::u32string& projectNameconst std::std::vector<sngcpp::ast::SourceFileNode*>&sourceFilesconststd::string&styleDirNameconststd::string&styleFileName
30     sngcpp::symbols::SymbolTable& symbolTableint inlineCodeLimitstd::std::unordered_map<std::u32stringstd::std::unique_ptr<sngxml::dom::Element>>&inlineCodeMapboolverboseboolrebuild
31     bool& upToDateHtmlContentFilePathResolver* contentFilePathResolver);
32 
33 } } // namespace gendoc::html
34 
35 #endif // GENDOC_HTML_HTML_INCLUDED