MINIFICPP-2712 Generate modular docs#2097
Conversation
There was a problem hiding this comment.
Pull request overview
This PR refactors the documentation generation code to support modular documentation in addition to the existing monolithic documentation. The refactoring moves procedural code into two classes (MonolithDocumentation and ModularDocumentation) to better separate concerns and introduce the new modular documentation feature.
Changes:
- Refactored documentation generation from procedural to class-based approach with MonolithDocumentation and ModularDocumentation classes
- Added support for generating per-module documentation files in a
modules/subdirectory - Applied code formatting improvements (brace placement, range-based for loop spacing) to comply with .clang-format settings
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| static void writeModule(const std::filesystem::path& docs_dir, const std::string_view module_name, const minifi::Components& components) { | ||
| const auto dir_creation_result = minifi::utils::file::create_dir(docs_dir / "modules"); | ||
| gsl_Assert(dir_creation_result == 0); | ||
| std::ofstream os(docs_dir / "modules" / (std::string(module_name) + ".md")); |
There was a problem hiding this comment.
Could we check beforehand if the component contains any processors, controller services, or parameter providers? Currently we generate an empty markdown file with only an apache license and a Table of Contents header if nothing is available in the extension like prometheus or python script extension. I think those could be omitted.
With this PR, ./minifi --docs <output_dir> will generate additional md files one per extension <output_dir>/modules Closes #2097 Signed-off-by: Martin Zink <martinzink@apache.org>
With this PR, ./minifi --docs <output_dir> will generate additional md files one per extension <output_dir>/modules Closes #2097 Signed-off-by: Martin Zink <martinzink@apache.org>
With this PR, ./minifi --docs <output_dir> will generate additional md files one per extension <output_dir>/modules
Thank you for submitting a contribution to Apache NiFi - MiNiFi C++.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:
Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?
Does your PR title start with MINIFICPP-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.
Has your PR been rebased against the latest commit within the target branch (typically main)?
Is your initial contribution a single, squashed commit?
For code changes:
For documentation related changes:
Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI results for build issues and submit an update to your PR as soon as possible.