I will need to use reflection into the astronomy.dll assembly,
along with the generated astronomy.xml, to generate Markdown
documentation. This is the start of that project.
I was going to write a Python program to parse the
xml file generated by the C# compiler.
The problem is it does not contain enough information
about types, as explained here:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/how-to-use-the-xml-documentation-features
"The XML file does not provide full information about the type and members
(for example, it does not contain any type information).
To get full information about a type or member, the documentation file
must be used together with reflection on the actual type or member."
So that means I will end up writing the documentation generator in C#
and using reflection along with the XML file to generate Markdown.
pydown.py now searches description text for internal links
and expands them properly for Markdown file README.md.
For example: "#Body" ==> "[`Body`](#Body)".
Fixed a couple of incorrect "Astronomy_..." names in Python docs.
Never use pound-signs inside documentation for Python return types.
Automatically create internal link just like for function parameter types.
Added special case logic in pydown.py for "Time or `None`".
Fixed minor documentation mistakes in JS version.
Also had to adjust a couple of error thresholds.
Windows version of Python calculates slightly different
numbers than Linux version. Perhaps a difference in
runtime libraries?
The Microsoft C compiler/runtime for Windows is generating
slightly larger floating point discrepancies in the unit
tests. Adjusted the thresholds upward so all the tests pass
in Windows also.
Separate the calculation of refraction angle from the Horizon function.
Added missing documentation for the parameters of the Horizon function.
Added definition of class Spherical. Not yet used, but soon will be.
Instead of having the same calculations duplicated in both
nutation() and nutation_rot(), I reworked nutation() in terms of
nutation_rot(). Use nutation_rot() to calculate the rotation matrix,
then multiply that matrix by the input vector to produce the output vector.