Commit Graph

202 Commits

Author SHA1 Message Date
Yuri Sizov a287276ef0 Make cross-link generation more reliable in RST documentation 2022-08-26 19:13:41 +03:00
Yuri Sizov 03dc8c5d6f
Merge pull request #63635 from asmaloney/add-python-type-hints
Add Python PEP 484/526 type hints to doc/tools/doc_status.py
2022-08-18 13:02:53 +03:00
Yuri Sizov d953d9590b Improve the `make_rst.py` parser for BBCode tags 2022-08-15 17:45:10 +03:00
Yuri Sizov c5d7115038 Rename the argument tag to param in XML documentation 2022-08-08 22:34:31 +03:00
Yuri Sizov 35c1eae8d7 Add support for [param foo] syntax in valid documentation contexts 2022-08-08 22:18:38 +03:00
Yuri Sizov beceba85da Add checks for empty/unnamed arguments to make_rst.py 2022-08-08 16:36:01 +03:00
Andy Maloney 2748220133 [make_rst] Remove (fake) return types on annotations
Based on discussion in #63561, Yuri mentioned that the return types are not necessary here, so remove the fake "void" return types on annotations.
2022-08-04 20:10:32 -04:00
Andy Maloney a1428ca3c8 Convert Python type hints in tools/make_rst.py
Since Python 3.5+ is required, we can use proper type hints based on PEP 484. Because we are working on contributor tooling we can assume 3.6+ and use PEP 526 for variable declarations as well.
2022-08-03 13:06:50 -04:00
Andy Maloney 5036dfb0b6 Add Python PEP 484/526 type hints to doc/tools/doc_status.py
Also removes the first divider string which cleans up the extraneous dashes at the top of the page.
2022-07-29 13:27:48 -04:00
Jcrespo d9b4ece093 Patch the make_rst.py utility to handle specially operators with '<'
When generating rst files from xml class reference, unknown references
to operators were generated, as something like:

:ref:`operator <<class_Vector2_operator_lt_bool>`

was rendered in html as:

operator ( Vector2 right )

-it just needed escaping.

The small addendum checks for operator names containing '<' and
substitutes it with '\<', escaping at rst level and generating
instead the right rendered html:

operator < ( Vector2 right )

This affected mostly the reference pages of the VectorX family of
classes. If in the future more types need escaping, a more
general solution will be needed.
2022-07-28 12:37:30 +02:00
Rémi Verschelde f66527ddc3 doc: Fix relative paths in `make_rst.py` generated comment
Follow-up to #63495.
2022-07-27 13:52:46 +02:00
Rémi Verschelde 1bb56d9298
Merge pull request #63495 from YuriSizov/docs-improve-autogen-note 2022-07-27 13:24:03 +02:00
Yuri Sizov f3561696da Improve the autogenerated note in RST docs for class reference 2022-07-27 13:43:06 +03:00
Andy Maloney 4b3d6f04a8 Add missing Python type hints in tools/make_rst.py 2022-07-26 16:26:47 -04:00
Rémi Verschelde 635d447a69
Merge pull request #62713 from YuriSizov/docs-scripting-annotations 2022-07-06 15:31:19 +02:00
reduz 5ac42cf576 Implement a BitField hint
Allows to specify the binder that an enum must be treated as a bitfield.
2022-07-05 22:13:37 +02:00
Yuri Sizov a9098e6147 Add support for documenting built-in annotations 2022-07-04 20:21:39 +03:00
Hugo Locurcio 49f94b94c7
makerst: Fix file name not appearing in error message 2022-06-22 12:17:15 +02:00
Rémi Verschelde 126e4d0a5b
Merge pull request #61920 from Calinou/makerst-print-color 2022-06-11 11:42:18 +02:00
Hugo Locurcio d45351f413
makerst: Print colored output for easier visual grepping
This is automatically enabled on all platforms including
Windows 10 and later, whenever a TTY environment is detected.

In non-TTY environments such as CI, this can be forced using the
`--color` command line argument.
2022-06-11 00:19:36 +02:00
Hugo Locurcio 1163af1756
makerst: Fix duplicate `.xml` extension in some error messages
Previously, a file name could appear as e.g. `ProjectSettings.xml.xml`
when one of the 3 modified errors was reported.
2022-06-10 22:58:09 +02:00
Rémi Verschelde 826f5358a1
Merge pull request #60771 from snailrhymer/enum-indentation-doc-fix
Indent bullet points in enum descriptions
2022-05-12 21:13:21 +02:00
SnailRhymer 38cf07b768 Indent bullet points in enum descriptions
When converting doc xml files to rst, add an indenation level to bullet points in the text description of enum values.
Also add check to avoid out of bounds error in rstize_text.
2022-05-12 19:34:49 +01:00
Yuri Roubinsky dbd7a31507 Implement exponential operator (**) to GDScript/Expressions 2022-05-11 16:30:37 +03:00
Hugo Locurcio f0b860fbad
makerst: Improve error reporting
- List file names before error descriptions, as is common in linters.
- Print the number of errors reported at the end of the list.
- Use double quotes instead of single quotes in messages.
2022-04-11 02:34:37 +02:00
Rémi Verschelde 1bdb82c64e
Fix typos with codespell
Using codespell 2.2-dev from current git.

Added `misc/scripts/codespell.sh` to make it easier to run it once in a
while and update the skip and ignore lists.
2022-02-10 12:30:19 +01:00
Max Hilbrunner 26da72eb4b Fix make_rst.py on Windows 2022-01-24 10:30:07 +01:00
Hugo Locurcio 1b01cef301
Update doc_status script to support constructors and operators docs
- Reorder columns from highest number of items contained within
  to lowest number.
- Remove some obsolete code and fix a typo.
2022-01-07 23:50:10 +01:00
Rémi Verschelde 0905f81c0a
Merge pull request #56162 from akien-mga/i18n-make_rst-more-translatable
i18n: Make more `make_rst.py` strings translatable
2022-01-07 09:23:57 +01:00
Rémi Verschelde fd1d0c28c2
i18n: Make more `make_rst.py` strings translatable
For now we leave out the strings which could break rst table formatting.
2022-01-06 21:13:38 +01:00
Haoyu Qiu a07e2b71fc Fix `make_rst.py` missing escape in front of some links 2021-12-23 00:50:40 +08:00
Rémi Verschelde b98785309f
i18n: Add `--lang` option to `make_rst.py` to write translated headings
Add a few missing headings to the translation templates.
2021-12-21 13:47:11 +01:00
Haoyu Qiu 9844e36354 Update `make_rst.py` for non-latin texts 2021-12-21 16:35:47 +08:00
Yuri Sizov b3992f7e6e Make overridden properties link to parent definition
Co-authored-by: Josh DeGraw <joshmdegraw@gmail.com>
2021-12-03 17:47:22 +03:00
Rémi Verschelde 1a9e3d581b
doc: Fix `make_rst.py` hyperlinks for theme items
Fixup to #55092.
2021-11-19 10:41:17 +01:00
kobewi 6f929395d9 Add [theme_item] tag to editor help 2021-11-18 15:32:23 +01:00
Rémi Verschelde 5341e6010e
Allow dehardcoding documentation branch and URL in docs links
This makes it possible to change the branch of the documentation that
URLs are pointing to without having to modify all class reference
files.

In the XML class reference, the `$DOCS_URL` placeholder should be used,
and will be replaced automatically in the editor and when generating
the RST class reference.

The documentation branch string is set in `version.py`.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-11-15 13:02:21 +01:00
Yuri Sizov 51b251e889 Restore constructor/operator information in online docs 2021-11-02 22:33:55 +03:00
Aaron Franke 8f05e26198
Rename "makerst.py" to "make_rst.py" 2021-10-24 01:58:59 -05:00
Rémi Verschelde 20b56f557c
makerst: Disable making refs for operator methods
As this requires more work to ensure that the refs are valid and unique.
2021-10-05 19:13:24 +02:00
Rémi Verschelde 1e36f5f524
makerst: Make external links anonymous
Otherwise we get errors if we use the same title for different links in a given class.
2021-10-05 19:13:24 +02:00
Rémi Verschelde e87f3dd4d0
makerst: Add substitution for static qualifier 2021-10-05 19:13:24 +02:00
reduz 44d62a9f4b Implement NativeExtension pointer arguments
* Allows calling into native extensions directly with a pointer
* Makes it easier to implement some APIs more efficiently
* Appears with a "*" in the documentation for the argument.
* Implementing the pointer handling is entirely up to the implementation, although the extension API provides some hint.
* AudioStream has been implemented as an example, allowing to create NativeExtension based AudioStreams.
2021-08-23 19:58:40 -03:00
Max Hilbrunner 5161c97c9c Remove underscore hacks
Way less cruft. :)

Co-authored-by: Ignacio Roldán Etcheverry <neikeq@users.noreply.github.com>
2021-08-17 16:10:28 +02:00
Yuri Sizov 1352a087b3 Fix minor code style issues in the RST generator 2021-08-06 18:18:22 +03:00
Yuri Sizov bf2839ea3e Add theme item descriptions to the online documentation 2021-08-04 22:27:10 +03:00
merumelu b8752d91dc makerst: use link titles for external tutorials 2021-07-29 21:55:39 +02:00
Johannes Witt fa573efa1c
Makerst: Remove redundant GDScript from code blocks 2021-07-12 12:57:31 +02:00
Hugo Locurcio f05aa9cc01
Make makerst.py create folders automatically, print a message when done 2021-07-09 00:55:45 +02:00
Andrii Doroshenko (Xrayez) 679d038043 makerst: Fix generation of overridden properties in child classes
This only affects `Object` classes, not `Variant`.
2021-04-06 17:26:18 +03:00
Andrii Doroshenko (Xrayez) 7fcdd15f0c makerst: Add an option to filter which XML classes to output
Usage:
```
# Output `VisualScript` classes only (found in `modules/visual_script`)
python doc/tools/makerst.py "doc/classes" "modules" --filter "visual_script"

# Output CSG classes only (found in `modules/csg`)
python doc/tools/makerst.py "doc/classes" "modules" --filter "csg"
```
2021-02-15 14:28:11 +02:00
Rémi Verschelde 34cad0d020
doc: Fixups to #43419 which added operators in the docs
- Escape the method names as e.g. `operator <` is invalid XML.
- Add a hack to merge all String % operator definitions for each Variant type
  as a single one with `Variant` argument type.
- Add support for the new qualifiers in makerst.py.
- Drop unused `doc_merge.py`, seems to date back to when we had all the
  documentation in a single `classes.xml`.
2020-11-10 15:00:07 +01:00
Rémi Verschelde d435537f7e
makerst: Add missing newline at EOF 2020-09-15 10:47:35 +02:00
Rémi Verschelde 5d880bf7db
Merge pull request #40613 from HaSa1002/multi-lang-docs
Add multiple programming language support to class reference
2020-07-31 14:51:33 +02:00
Hugo Locurcio c162a39c7b
makerst: Add descriptions to method qualifiers
This closes https://github.com/godotengine/godot-docs/issues/1753.
2020-07-30 22:11:02 +02:00
HaSa1002 5b51ae1c5d Add multiple programming language support to class reference 2020-07-23 15:19:09 +02:00
Hugo Locurcio 9065b7ed4e
makerst: Print status messages to make the CI output clearer
This also removes an unused method.
2020-05-27 22:24:33 +02:00
Rémi Verschelde 41af228b76
Merge pull request #36960 from pycbouh/docs-improve-shortcuts
Improve shortcut formatting in docs
2020-04-29 09:40:52 +02:00
Rémi Verschelde d567c15aed doc: Fix parsing typed arrays in makerst.py
`Type[]` typed arrays will link to `Type`, as it's likely the most
interesting information for the user.

And sync classref with current source.
2020-04-24 17:50:20 +02:00
Yuri Sizov 1ea7295bd2 Improve shortcut formatting in docs 2020-04-10 18:42:11 +03:00
Rémi Verschelde f33bba15b1
Merge pull request #37426 from pycbouh/docs-override-properties
Add more verbosity for property overrides in RST documentation
2020-04-10 12:25:47 +02:00
PouleyKetchoupp 619354fb2c Fixed errors in makerst pre-commit hook 2020-03-31 00:02:11 +02:00
Yuri Sizov 38821dc6d7 Add more verbosity for property overrides in RST documentation 2020-03-30 14:18:43 +03:00
Rémi Verschelde cd4e46ee65 SCons: Format buildsystem files with psf/black
Configured for a max line length of 120 characters.

psf/black is very opinionated and purposely doesn't leave much room for
configuration. The output is mostly OK so that should be fine for us,
but some things worth noting:

- Manually wrapped strings will be reflowed, so by using a line length
  of 120 for the sake of preserving readability for our long command
  calls, it also means that some manually wrapped strings are back on
  the same line and should be manually merged again.

- Code generators using string concatenation extensively look awful,
  since black puts each operand on a single line. We need to refactor
  these generators to use more pythonic string formatting, for which
  many options are available (`%`, `format` or f-strings).

- CI checks and a pre-commit hook will be added to ensure that future
  buildsystem changes are well-formatted.
2020-03-30 09:05:53 +02:00
Hugo Locurcio 7c3f6b2870
Improve the `doc_status.py` console output
- Duplicate the header when the `-a` flag is enabled. Since lots of
  items are displayed in this case, this helps the user remember
  which column is which without having to scroll back to the top.
- Bolden the overall percentages for easier visual grepping.
2020-02-01 00:24:39 +01:00
Rémi Verschelde 2d20fc39aa doc: Drop unused 'category' property from header
We already removed it from the online docs with #35132.

Currently it can only be "Built-In Types" (Variant types) or "Core"
(everything else), which is of limited use.

We might also want to consider dropping it from `ClassDB` altogether
in Godot 4.0.
2020-01-26 16:02:39 +01:00
Tomasz Chabora 25ea912d96 Count theme items in doc_status.py 2020-01-24 14:23:58 +01:00
Rémi Verschelde 97cc2e53f6 makerst: Escape reST markup after enums
Fixes #35501.
2020-01-24 13:08:36 +01:00
Rémi Verschelde c0595206dd makerst: Use code markup for default values/overrides
Fixes godotengine/godot-docs#3071.
2020-01-20 12:38:08 +01:00
Hugo Locurcio 3c8abbc4bf
doc: Move the class description to be just below the brief description
- Drop the "Brief description" header as it became redundant
  with this change.
- Fix a bug in the editor help where an extraneous newline was added
  after the header if the class isn't inherited by any others.
- Remove the Category line in the rST markup as it's not useful
  for API users.
2020-01-15 00:05:34 +01:00
Hugo Locurcio 17add2dc86
Add a pre-commit hook to check the class reference syntax
This also makes documentation helper scripts executable.
2019-12-06 23:40:19 +01:00
Hugo Locurcio bc4dbcf793
Travis CI: Run `makerst.py` to check for documentation errors 2019-12-04 08:51:32 +01:00
Rémi Verschelde 55676b16da makerst: Escape default values using reST markup
Otherwise the docs would complain about values like "godot_"
which reST tries to interpret as an identifier.
2019-11-29 14:25:37 +01:00
Hugo Locurcio c2e5ef4cec
makerst: Separate signals/enums/properties/methods with a line 2019-10-24 19:06:09 +02:00
SamuelDeboni 35d22e414f Fixed AttributeError on doc_status.py 2019-10-08 11:29:59 -03:00
Yeongho Kim d4a55fb639 Print errors when tab indent found in [codeblock] 2019-10-01 23:39:45 +09:00
Bojidar Marinov 6c4407bae4
Add overriden properties to the documentation
Fixes #31855
2019-09-04 15:21:40 +03:00
StraToN d83b8881ae Adds a meta on top of every generated class to hide 'Edit on Github' link
Linked docs issue https://github.com/godotengine/godot-docs/pull/2656
2019-07-25 15:57:43 +02:00
Bojidar Marinov 0c4c36d823
Add default values to the editor help, docs, and generated RST
Also, make spacing of "=" in the editor help a bit more consistent.
Closes #16086
2019-06-27 18:29:35 +03:00
Rémi Verschelde c7246d8e1e makerst: Fix format of [url] links in reST
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.
2019-06-11 10:51:10 +02:00
Stanislav 102f73b88a Add support for [url=] tag to makerst.py
Fixes #28904
2019-05-16 16:13:42 +03:00
Rémi Verschelde 6af69f851a doc: Drop unused <demos> tag 2019-04-19 11:03:46 +02:00
Hendrikto 49a81308c0 Remove unused imports 2019-04-06 18:05:05 +02:00
Ignacio Etcheverry d80bc5cbba ClassRef: Replace [code]CurrentClass[/code] with [CurrentClass]
Modified makerst to generate code tags for these to avoid hyperlinks to the same class.
2019-03-29 23:47:35 +01:00
Ignacio Etcheverry c8aa85189a EditorHelp, makerst: Improve enum ref resolving and constant ref support
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).
2019-03-29 23:40:31 +01:00
Rémi Verschelde 61771ad39b doc: Fix style for vararg in makerst 2019-03-10 11:31:27 +01:00
merumelu 4d9b7b9803 makerst: make vararg methods look the same as in editor help 2019-03-05 20:42:09 +01:00
Pieter-Jan Briers 685dffb1d5 makerst.py refactor.
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.
2018-12-28 16:55:51 +01:00
Pieter-Jan Briers 15a3d16d08 Clean up & improve makerst.py
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
2018-12-27 13:57:08 +01:00
João Álvaro Ferreira a720993cc8 Enabled rst files to escape for parentheses after brackets 2018-12-11 12:58:57 +00:00
Rémi Verschelde 5f8af252e8 doc: Use HTTPS for docs.godotengine.org and point to latest branch
Fixes #23509.
2018-11-05 08:46:27 +01:00
lupoDharkael edcca5f7ad Dont use equality operators with None singleton in python files 2018-10-27 01:18:15 +02:00
LikeLakers2 0d6546ed44 Add extra newline after enum members and constants, to ensure they'll format properly after a multi-line description 2018-10-02 16:48:40 -04:00
Rémi Verschelde 0cc3aff8ed doc: Drop obsolete makemd.py, dates back to GitHub Wiki days
It has not been kept in sync with makerst.py, so it does not serve
much purpose nowadays.
2018-10-02 12:28:08 +02:00
Rémi Verschelde d26c6b28a6 doc: Fixes to rst converter 2018-09-21 09:50:21 +02:00
LikeLakers2 268ae71fae Fix the weird method linking issue when the previous method's description ends with a code block 2018-09-20 18:14:47 -04:00
Rémi Verschelde 4e0f415c83 doc: Make property sections in rst similar to editor docs
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.
2018-09-13 02:13:19 +02:00
Rémi Verschelde a923eff9a4 Doc: Use PascalCase names in hyperlinks
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.
2018-09-13 01:55:56 +02:00
Rémi Verschelde ba64ea2283 Doc: Use same headers and order in-editor and online 2018-09-12 17:12:23 +02:00
robojumper 98b59cf2a3 Add support for tutorial links to makerst.py
Also change the <tutorials> structure to make use of individual <link> tags
2018-06-12 17:40:24 +02:00