Added initial support for MermaidJS include diagrams

This commit is contained in:
Bartek Kryza
2023-09-09 01:46:08 +02:00
parent ee998e7a38
commit cfc0a42320
8 changed files with 265 additions and 6 deletions

View File

@@ -20,4 +20,8 @@ diagrams:
- "' t40001 test diagram of type {{ diagram.type }}"
after:
- 'note right of {{ alias("include/lib1") }}: This is a lib1 include dir'
- 'note right of {{ alias("include/t40001_include1.h") }}: This is a t40001_include1.h include file'
- 'note right of {{ alias("include/t40001_include1.h") }}: This is a t40001_include1.h include file'
mermaid:
after:
- 'N_00001(This is a lib1 include dir)-.-{{ alias("include/lib1") }}'
- 'N_00002(This is a lib1 include dir)-.-{{ alias("include/t40001_include1.h") }}'

View File

@@ -79,4 +79,10 @@ TEST_CASE("t40001", "[test-case][include]")
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto mmd = generate_include_mermaid(diagram, *model);
save_mermaid(config.output_directory(), diagram->name + ".mmd", mmd);
}
}

View File

@@ -110,4 +110,10 @@ TEST_CASE("t40002", "[test-case][include]")
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto mmd = generate_include_mermaid(diagram, *model);
save_mermaid(config.output_directory(), diagram->name + ".mmd", mmd);
}
}

View File

@@ -74,4 +74,10 @@ TEST_CASE("t40003", "[test-case][include]")
save_json(config.output_directory(), diagram->name + ".json", j);
}
{
auto mmd = generate_include_mermaid(diagram, *model);
save_mermaid(config.output_directory(), diagram->name + ".mmd", mmd);
}
}

View File

@@ -251,6 +251,14 @@ std::string generate_package_mermaid(
config, model);
}
std::string generate_include_mermaid(
std::shared_ptr<clanguml::config::diagram> config,
clanguml::include_diagram::model::diagram &model)
{
return detail::generate_diagram_mermaid<clanguml::config::include_diagram>(
config, model);
}
template <typename T>
void save_diagram(const std::filesystem::path &path, const T &diagram)
{