diff --git a/CHANGELOG.md b/CHANGELOG.md index 2658b920..085f0d9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # CHANGELOG + * Added JSON generator (#114) * Added diagram templates support (#105) * Added parents (base classes) diagram filter * Fixed namespace handling for nested template specializations diff --git a/README.md b/README.md index a0126b87..f3cc4753 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ YAML configuration files. The main idea behind the project is to easily maintain up-to-date diagrams within a code-base or document legacy code. The configuration file or files for `clang-uml` define the type and contents of each generated diagram. -Currently, the diagrams are generated in [PlantUML](https://plantuml.com) and JSON formats. +The diagrams can be generated in [PlantUML](https://plantuml.com) and JSON formats. `clang-uml` currently supports C++ up to version 17 and partial support for C++ 20. @@ -44,14 +44,16 @@ Main features supported so far include: * **Include graph diagram generation** * Show include graph for selected files -To see what `clang-uml` can do so far, checkout the diagrams generated for unit test cases [here](./docs/test_cases.md) -and examples in [clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository. +To see what `clang-uml` can do so far, checkout the diagrams generated for unit +test cases [here](./docs/test_cases.md) and examples in +[clang-uml-examples](https://github.com/bkryza/clang-uml-examples) repository. More comprehensive documentation can be found [here](./docs/README.md). ## Installation -Installation instructions for `Linux`, `macos` and `Windows` can be found [here](./docs/installation.md). +Installation instructions for `Linux`, `macos` and `Windows` can be found +[here](./docs/installation.md). ## Usage @@ -425,6 +427,7 @@ This project relies on the following great tools: * [CLI11](https://github.com/CLIUtils/CLI11) - command line parser for C++ * [inja](https://github.com/pantor/inja) - a template engine for modern C++ * [backward-cpp](https://github.com/bombela/backward-cpp) - stack trace pretty printer for C++ +* [yaml-cpp](https://github.com/jbeder/yaml-cpp) - YAML parser library for C++ ## Contributing diff --git a/docs/Makefile b/docs/Makefile index 66ae9e98..ed309583 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -22,6 +22,7 @@ toc: $(UPDATE_TOC) class_diagrams.md $(UPDATE_TOC) comment_decorators.md $(UPDATE_TOC) common_options.md + $(UPDATE_TOC) generator_types.md $(UPDATE_TOC) configuration_file.md $(UPDATE_TOC) diagram_filters.md $(UPDATE_TOC) doxygen_integration.md diff --git a/docs/README.md b/docs/README.md index 0fb0ae20..740fabc8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,7 +3,8 @@ * [Quick start](./quick_start.md) * [Installation](./installation.md) * Generating diagrams - * [Common options](./common_options.md) + * [Common options](./common_options.md) + * [Generator types](./generator_types.md) * [Class diagrams](./class_diagrams.md) * [Sequence diagrams](./sequence_diagrams.md) * [Package diagrams](./package_diagrams.md) diff --git a/docs/generator_types.md b/docs/generator_types.md new file mode 100644 index 00000000..ad6b0786 --- /dev/null +++ b/docs/generator_types.md @@ -0,0 +1,22 @@ +# Generator types + + + +* [PlantUML](#plantuml) +* [JSON](#json) + + + +Currently, there are 2 types of diagram generators: `plantuml` and `json`. + +## PlantUML + +Generates UML diagrams in textual PlantUML format, which can then +be converted to various image formats. + +## JSON + +Generates a JSON representation of the intermediate `clang-uml` model, which +can be used for scripting, integrations as well as analysing the code base +or even generating diagrams in other formats. + diff --git a/docs/quick_start.md b/docs/quick_start.md index 268c09ad..39971f86 100644 --- a/docs/quick_start.md +++ b/docs/quick_start.md @@ -56,7 +56,7 @@ To add an initial class diagram to your project, follow these steps: - another_diagram [sequence] - some_class_diagram [class] ``` -7. Generate only the new diagram: +7. Generate only the new diagram in JSON format: ```bash - clang-uml -n another_diagram + clang-uml -n another_diagram -g json ```