I see. The system should be able to see links between classes and what not. I will confirm to see if this is actually the case when I wake up tomorrow.
We can. It works interchangeably with google and numpy style. I just picked google, because it seemed like google would have less boilerplate, but I'll use whatever the standard is.
Very interesting. I'll look into these examples. I have a horrible feeling the answer is: "By manually writing documentation, at great expense to sanity."vocx wrote: ↑Sun Mar 29, 2020 7:15 am Ideally we would specify the Python workbenches to run through Sphinx, and the rest of the C++ workbenches to run through Doxygen. The problem is you can also include Python commands in C++ workbenches without much problem. For example, see src/Mod/PartDesign/WizardShaft, FeatureHole, InvoluteGearFeature, etc., these are Gui Commands and classes to create scripted objects in Python. So, how to tie the two worlds would be interesting.
Currently it all works through bash scripts. All the bash scripts can probably just as easily be .bat scripts.vocx wrote: ↑Sun Mar 29, 2020 7:15 am Ideally we can run the documentation generation script through "make DevDoc", just like we do right now. Or how do you intend to generate it? Also, why would it only work in Linux and MacOS?
Do you mean you are running some scripts with Bash? Could you write an equivalent .bat file, or powershell script to run the right commands in Windows? This should be set through the initial cmake. If we are on Windows cmake should set the proper script to run when doing "make DevDoc".
The way it currently builds is the following process:
- FreeCAD gets built.
- Doxygen scrapes the c++ code, and spits out XML that sphinx reads.
- Sphinx imports FreeCAD and FreeCADGui, and thus has access to all the docstrings that the FreeCAD python interpreter has access to, and best mimics the Python environment at runtime.
- Sphinx builds the documentation.
The part that I believe won't work on windows is entr. Entr is just the part that allows for the automatic rebuilding. If you don't have it, the only consequence is you have to run the build manually after you make a change. I wouldn't be surprised if a window's equivalent exists, however. I just think it's important, as I think automatic rebuilding is an important part of creating any graphical product.