05-07-2023, 04:56 PM
A couple weeks ago I wondered if it was possible to take IW's online help content and convert it to the Windows help format using the product Help&Manual. It was possible and mostly straight forward. I was able to combine the web help, version history, recent blog posts, and demos into a single organized chm file with a tree structure and search capabilty. This is current documentation but there's no real way to determine the actual coverage of the product, i.e. what new things have been added without docs yet etc.
![[Image: IW_Help_0005.png]](https://mjs.us/Docs/IW_Help_0005.png)
By parsing the .hpp files delivered with the install you can get all the latest public methods, properties, and events of the classes so this is a way to create placeholders in the help project for any missing or undocumented additions.
![[Image: IW_Help_0007.png]](https://mjs.us/Docs/IW_Help_0007.png)
By separating methods, properties, and events it also makes the help more granular: currently TIWServerControllerBase is all on one page and requires a bit of scrolling/reading to get to the topic. By separating properties etc. as nodes you can display just what you are seeking. As for back filling the hpp generated entries with existing help that was done by storing everything in an SQLite database and writing a few queries and updates (who needs ChatGPT when you have SQLite and it's FTS extension, right?).
![[Image: IW_Help_0006.png]](https://mjs.us/Docs/IW_Help_0006.png)
After some research on documentation tools for component / api developers it looks like all help originates as xml comments in the source. The developer immediately documents the new code and then the tools parse it out and create the various help formats and links. Seems almost too easy.
So a high quality, comprehensive IW help file is possible.
![[Image: IW_Help_0005.png]](https://mjs.us/Docs/IW_Help_0005.png)
By parsing the .hpp files delivered with the install you can get all the latest public methods, properties, and events of the classes so this is a way to create placeholders in the help project for any missing or undocumented additions.
![[Image: IW_Help_0007.png]](https://mjs.us/Docs/IW_Help_0007.png)
By separating methods, properties, and events it also makes the help more granular: currently TIWServerControllerBase is all on one page and requires a bit of scrolling/reading to get to the topic. By separating properties etc. as nodes you can display just what you are seeking. As for back filling the hpp generated entries with existing help that was done by storing everything in an SQLite database and writing a few queries and updates (who needs ChatGPT when you have SQLite and it's FTS extension, right?).
![[Image: IW_Help_0006.png]](https://mjs.us/Docs/IW_Help_0006.png)
After some research on documentation tools for component / api developers it looks like all help originates as xml comments in the source. The developer immediately documents the new code and then the tools parse it out and create the various help formats and links. Seems almost too easy.
So a high quality, comprehensive IW help file is possible.