Compare commits

..

No commits in common. "a0b221f103d22768e939cd6c8b58fc084902eb01" and "e787b94ae1c4e553972608410dfa488294f49104" have entirely different histories.

7 changed files with 18 additions and 22 deletions

View file

@ -1,4 +1,4 @@
if(NOT TARGET pugixml-static) if(NOT TARGET pugixml)
include(FetchContent) include(FetchContent)
FetchContent_Declare( FetchContent_Declare(

View file

@ -12,7 +12,7 @@ target_link_libraries(Kanimaji
KVGToolsCommon KVGToolsCommon
PRIVATE PRIVATE
pugixml-static pugixml
) )
target_include_directories(Kanimaji target_include_directories(Kanimaji

View file

@ -17,7 +17,7 @@ target_link_libraries(Tablegen
KVGToolsCommon KVGToolsCommon
PRIVATE PRIVATE
pugixml-static pugixml
) )
target_sources(Tablegen target_sources(Tablegen

View file

@ -4,6 +4,7 @@
#include <Common/RGB.hpp> #include <Common/RGB.hpp>
#include <string> #include <string>
#include <vector>
namespace Tablegen namespace Tablegen
{ {
@ -48,6 +49,7 @@ namespace Tablegen
std::size_t CharactersPerRow; std::size_t CharactersPerRow;
std::string ImageFormat; std::string ImageFormat;
std::string AnimationFormat; std::string AnimationFormat;
std::vector<CharacterInfo> Characters;
static Settings Default(); static Settings Default();
}; };

View file

@ -8,21 +8,17 @@
#endif #endif
#include <string> #include <string>
#include <vector>
namespace Tablegen namespace Tablegen
{ {
std::string GeneratePage(std::vector<CharacterInfo> characters, std::string GeneratePage(const Settings& settings = Settings::Default());
const Settings& settings = Settings::Default());
void GeneratePage(const std::string& path, std::vector<CharacterInfo> characters, void GeneratePage(const std::string& path, const Settings& settings = Settings::Default());
const Settings& settings = Settings::Default());
# ifdef TABLEGEN_EXPOSE_XML # ifdef TABLEGEN_EXPOSE_XML
void GenerateAsChild(pugi::xml_node& node, std::vector<CharacterInfo> characters, void GenerateAsChild(pugi::xml_node& node, const Settings& settings = Settings::Default());
const Settings& settings = Settings::Default());
pugi::xml_document GenerateDocument(std::vector<CharacterInfo> characters, const Settings& settings = Settings::Default()); pugi::xml_document GenerateDocument(const Settings& settings = Settings::Default());
# endif # endif
} }

View file

@ -32,6 +32,7 @@ namespace Tablegen
.CharactersPerRow = 3, .CharactersPerRow = 3,
.ImageFormat = "https://3011.io/Assets/Images/Kanji/Static/{}.png", .ImageFormat = "https://3011.io/Assets/Images/Kanji/Static/{}.png",
.AnimationFormat = "https://3011.io/Assets/Temp/{}.svg", .AnimationFormat = "https://3011.io/Assets/Temp/{}.svg",
.Characters = {},
}; };
} }
} }

View file

@ -95,9 +95,9 @@ namespace Tablegen
} }
} }
std::string GeneratePage(std::vector<CharacterInfo> characters, const Settings& settings) std::string GeneratePage(const Settings& settings)
{ {
pugi::xml_document doc = GenerateDocument(characters, settings); pugi::xml_document doc = GenerateDocument(settings);
std::uint32_t formatOptions; std::uint32_t formatOptions;
formatOptions = pugi::format_indent | pugi::format_no_escapes | pugi::format_no_declaration; formatOptions = pugi::format_indent | pugi::format_no_escapes | pugi::format_no_declaration;
@ -106,18 +106,16 @@ namespace Tablegen
return str.str(); return str.str();
} }
void GeneratePage(const std::string& path, std::vector<CharacterInfo> characters, void GeneratePage(const std::string& path, const Settings& settings)
const Settings& settings)
{ {
pugi::xml_document doc = GenerateDocument(characters, settings); pugi::xml_document doc = GenerateDocument(settings);
std::uint32_t formatOptions; std::uint32_t formatOptions;
formatOptions = pugi::format_indent | pugi::format_no_escapes | pugi::format_no_declaration; formatOptions = pugi::format_indent | pugi::format_no_escapes | pugi::format_no_declaration;
doc.save_file("test.html", " ", formatOptions); doc.save_file("test.html", " ", formatOptions);
} }
void GenerateAsChild(pugi::xml_node& node, std::vector<CharacterInfo> characters, void GenerateAsChild(pugi::xml_node& node, const Settings& settings)
const Settings& settings)
{ {
pugi::xml_node tableRoot = node; pugi::xml_node tableRoot = node;
@ -153,7 +151,7 @@ namespace Tablegen
std::string tagIndent((indentLevel > 0 ? indentLevel - 1 : 0) * 4, ' '); std::string tagIndent((indentLevel > 0 ? indentLevel - 1 : 0) * 4, ' ');
pugi::xml_node tableBody = table.append_child("tbody"); pugi::xml_node tableBody = table.append_child("tbody");
for (pugi::xml_node row; const auto& [i, character] : vw::enumerate(characters)) { for (pugi::xml_node row; const auto& [i, character] : vw::enumerate(settings.Characters)) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// HTML // HTML
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -203,11 +201,10 @@ namespace Tablegen
script.append_child(pugi::node_pcdata).set_value(Script(indent, tagIndent, buttons)); script.append_child(pugi::node_pcdata).set_value(Script(indent, tagIndent, buttons));
} }
pugi::xml_document GenerateDocument(std::vector<CharacterInfo> characters, pugi::xml_document GenerateDocument(const Settings& settings)
const Settings& settings)
{ {
pugi::xml_document doc; pugi::xml_document doc;
GenerateAsChild(doc, characters, settings); GenerateAsChild(doc);
return doc; return doc;
} }
} }