Moved some logic to make_url in an attempt to reuse it in the parser,
but it proved too complex so I ended up not using it. I kept it as a
separate method nevertheless.
Enum reference resolving will now search in the @GlobalScope if no class is specified and the enum cannot be resolved in the current class.
Added support for constant references in EditorHelp, e.g.: [constant KEY_ENTER] or [constant Control.FOCUS_CLICK]. It supports enum constants (the enum name must not be included).
It's now smart and keeps track of every entity in the doc files. Now it can pick up on broken references and such inside the doc files.
Eventually we'll be able to run it on Travis and check for errors automatically.
General file cleanup.
References to elements of classes now have a prefix for their type. class_Control_minimum_size_changed becomes class_Control_method_minimum_size_changed, or signal_, because the reason I did this was to fix reference conflicts.
You can also reference constants now with BBCode.
Also made it use argparse, adding an --output and a --dry-run argument.
I did not fix all the errors it's reporting in the documentation files, there's about 150+ of them but that's outside of the scope of this commit.
Man this file even had some semicolons in it.
I cleaned up the entire file, while it's still pretty ugly it's much better now.
I also added type checks so it passes mypy --strict.
make_type now throws a warning on unresolved type references, which there are a bunch of. I'm not responsible for fixing those though.
Also some more hardening against crashes. For example XML tags without content won't cause crashes now.
Functionality has not been modified as far as I can tell.
Update Makefile for Python 3
Fix ordering issues related to enums & constants
There is now an overview table with hyperlinks, and further down a detailed
list of properties with their setter/getter and description.
Theme items are now also included in the rst output.
Refactored make_method() a bit.
We were not consistently applying .lower() every time we construct
an hyperlink, so there would be case mismatch. It works fine to keep
the natural case for those links.
The rst-generator gives you now a hint what's going on:
Bad reference: 'method.RegEx.search_all' in file: ../modules/regex/doc_classes/RegExMatch.xml
grep 'method.RegEx.search_all' ../modules/regex/doc_classes/RegExMatch.xml
Contains the results of a single regex match returned by [method RegEx.search]
and [method.RegEx.search_all]. It can be used to find the position and range of the match
and its capturing groups, and it can extract its sub-string for you.
Previous code expected only one XML per module, which is not the case for
e.g. mono or gdnative.
Also add newline after signal description to fix rst warning, and make the
script Python 3-compatible.
[ci skip]
It allows to define a multiline space-indented code block that will be properly parsed by the reST converter for the online docs.
The in-editor help understand the [codeblock] tag as it supposedly understand [code] already (i.e. it just seems to discard it, though the code was supposed to switch it to a monospace font, but that's likely another issue.
Fixes a number of issues:
- Headings underliners now have the correct length
- Newline+Tabs in descriptions are replaced by two newlines to make a proper paragraph
- [br] are replaced by two newlines, making a proper paragraph
- Properly parse internal hyperlinks in constants description
- Fix broken internal links due to missing newlines
- Show method header even when it has no description, to have something to reference in hyperlinks