Skip to content

Conversation

@Nelson-numerical-software
Copy link
Collaborator

@Nelson-numerical-software Nelson-numerical-software commented Oct 20, 2025

This commit significantly improves Nelson's help documentation system:

  • Replaces the deprecated help_browser module with a modern help tools implementation.
  • Transitions help files from .qch (Qt Compiled Help) to .nhz (Nelson Help Zip) format.
  • Adds complete French (fr_FR) documentation for the following modules:
  • Enhances English documentation better chapter descriptions.
  • Updates build configuration and installation scripts to reflect the new help system.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request significantly reworks and improves Nelson's help documentation system. It replaces the help browser module with a more modern help tools implementation and transitions from .qch (Qt Compiled Help) format to .nhz (Nelson Help Zip) format. The PR also adds comprehensive French (fr_FR) translations for multiple modules including control_system, constructors_functions, console, and com_engine, along with improvements to English documentation.

Key changes:

  • Removes the help_browser module dependency and replaces help file format from .qch to .nhz
  • Adds complete French documentation for control system, constructor functions, console, and COM engine modules
  • Enhances English documentation with runnable example attributes and improved chapter descriptions
  • Updates build configuration and installation scripts to reflect new help system

Reviewed Changes

Copilot reviewed 279 out of 3118 changed files in this pull request and generated 23 comments.

Show a summary per file
File Description
modules/control_system/help/fr_FR/xml/*.xml New French documentation for 30+ control system functions
modules/control_system/help/en_US/xml/*.xml Enhanced English docs with runnable example attributes and typo fixes
modules/constructors_functions/help/fr_FR/xml/*.xml New French documentation for constructor functions
modules/constructors_functions/help/en_US/xml/*.xml Enhanced English docs with runnable attributes
modules/console/help/fr_FR/xml/*.xml New French documentation for console module
modules/console/help/en_US/xml/*.xml Enhanced English docs with runnable attributes
modules/com_engine/help/fr_FR/xml/*.xml New French documentation for COM engine
modules/com_engine/help/en_US/xml/*.xml Enhanced English docs with runnable attributes
modules/*/CMakeLists.txt Updated to install .nhz instead of .qch files
modules/*/module.iss Updated installer scripts for new help format
modules/commons/src/include/nlsBuildConfig.h.* Removed help_browser module dependency
modules/CMakeLists.txt Removed HELP_BROWSER from module list

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@Nelson-numerical-software Nelson-numerical-software changed the title rework - improve help of Nelson feat(help): rework help system and add French translations Oct 20, 2025
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 279 out of 3118 changed files in this pull request and generated no new comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 279 out of 3126 changed files in this pull request and generated 1 comment.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 279 out of 3126 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (3)

modules/control_system/help/en_US/xml/bode.xml:40

  • The description text is in English but appears in a French translation context. This is likely a copy-paste error that wasn't corrected during translation.
            <param_description>Phase: size 1 x 1 x k (SISO).</param_description>

modules/control_system/help/en_US/xml/bode.xml:44

  • Similar to phase parameter, this description is in English within what should be French translation context based on file structure patterns.
            <param_description>Frequencies: a vector: 1 x k.</param_description>

modules/control_system/help/en_US/xml/bode.xml:1

  • The entire description block (lines 50-57) is in English in what appears to be the en_US file, which is correct. However, this English text was not translated in the fr_FR version of this file.
<?xml version="1.0" encoding="UTF-8" ?>

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 279 out of 3126 changed files in this pull request and generated no new comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.


//=============================================================================
static void
addRawXml(xmlNodePtr parent, const std::string& rawxml)

Check notice

Code scanning / CodeQL

Unused static function Note

Static function addRawXml is unreachable

Copilot Autofix

AI 5 days ago

To resolve this issue, we should remove the entire definition of the unused static void addRawXml function from this file. Specifically, delete lines 229 through 243 of XmlDocMergeSummary.cpp, which include the function's signature, body, and trailing comment-delineated separator. No other changes or imports are needed elsewhere; simply deleting this function is safe and maintains existing functionality.


Suggested changeset 1
modules/help_tools/src/cpp/XmlDocMergeSummary.cpp

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/modules/help_tools/src/cpp/XmlDocMergeSummary.cpp b/modules/help_tools/src/cpp/XmlDocMergeSummary.cpp
--- a/modules/help_tools/src/cpp/XmlDocMergeSummary.cpp
+++ b/modules/help_tools/src/cpp/XmlDocMergeSummary.cpp
@@ -226,22 +226,6 @@
 }
 
 //=============================================================================
-static void
-addRawXml(xmlNodePtr parent, const std::string& rawxml)
-{
-
-    xmlNodePtr list = nullptr;
-
-    int ret = xmlParseInNodeContext(parent, rawxml.c_str(), (int)rawxml.size(), 0, &list);
-
-    if (ret == 0 && list) {
-        for (xmlNodePtr cur = list; cur; cur = cur->next) {
-            xmlAddChild(parent, xmlCopyNode(cur, 1));
-        }
-        xmlFreeNodeList(list);
-    }
-}
-//=============================================================================
 static bool
 CreateMergedXmlDocument(const std::vector<SectionInfo>& sections, const std::string& mainPage,
     const std::filesystem::path& outputPath, std::wstring& errorMessage)
EOF
@@ -226,22 +226,6 @@
}

//=============================================================================
static void
addRawXml(xmlNodePtr parent, const std::string& rawxml)
{

xmlNodePtr list = nullptr;

int ret = xmlParseInNodeContext(parent, rawxml.c_str(), (int)rawxml.size(), 0, &list);

if (ret == 0 && list) {
for (xmlNodePtr cur = list; cur; cur = cur->next) {
xmlAddChild(parent, xmlCopyNode(cur, 1));
}
xmlFreeNodeList(list);
}
}
//=============================================================================
static bool
CreateMergedXmlDocument(const std::vector<SectionInfo>& sections, const std::string& mainPage,
const std::filesystem::path& outputPath, std::wstring& errorMessage)
Copilot is powered by AI and may make mistakes. Always verify output.
- html and md generation working
- local help indexing working
- some cleanup of helptools module
- removed qch/qhcp generation (not used anymore)
- removed hoedown (replaced by cmark)
- fixed some issues with special characters in markdown
- added crc32 builtin function (used for help indexing)
- updated changelogs
- help_browser module removed
- theme support for html/md help (light/dark)
- added images generation for examples

TODO:
- add more tests
- update documentation
- refactor some code
- Updated XSLT files to apply templates for parameter descriptions in HTML output, improving the rendering of complex descriptions.
- Introduced a new template for rendering inline links in both HTML and Markdown formats, enhancing navigation within documentation.
- Added emoji icons to various text labels in the Markdown output for better visual appeal and clarity.
- Improved test scripts to skip tests if XML documentation is missing, ensuring robustness in test execution.
- Created a new script to check XML documentation integrity across modules, enhancing documentation quality assurance.
- Refactored existing XML documentation files for consistency and clarity, including translations and formatting adjustments.
@Nelson-numerical-software Nelson-numerical-software force-pushed the help_v2 branch 7 times, most recently from 13f8715 to f3ec522 Compare October 26, 2025 16:32
@Nelson-numerical-software Nelson-numerical-software merged commit 91e296a into master Oct 26, 2025
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant