فهرست منبع

Standardize RST header syntax

tetrapod00 7 ماه پیش
والد
کامیت
c4d3aa134a
100فایلهای تغییر یافته به همراه689 افزوده شده و 688 حذف شده
  1. 2 2
      about/docs_changelog.rst
  2. 1 1
      contributing/development/compiling/compiling_for_linuxbsd.rst
  3. 8 8
      contributing/development/compiling/compiling_with_dotnet.rst
  4. 2 2
      contributing/development/compiling/optimizing_for_size.rst
  5. 2 2
      contributing/development/core_and_modules/custom_platform_ports.rst
  6. 21 21
      contributing/development/core_and_modules/internal_rendering_architecture.rst
  7. 4 4
      contributing/development/cpp_usage_guidelines.rst
  8. 3 3
      contributing/development/debugging/using_cpp_profilers.rst
  9. 1 1
      contributing/development/debugging/using_sanitizers.rst
  10. 2 2
      contributing/documentation/building_the_manual.rst
  11. 9 9
      contributing/documentation/docs_image_guidelines.rst
  12. 5 5
      contributing/documentation/editor_and_docs_localization.rst
  13. 3 3
      contributing/workflow/bisecting_regressions.rst
  14. 10 10
      contributing/workflow/pr_review_guidelines.rst
  15. 4 4
      contributing/workflow/testing_pull_requests.rst
  16. 1 1
      getting_started/first_2d_game/01.project_setup.rst
  17. 2 2
      getting_started/first_2d_game/02.player_scene.rst
  18. 2 2
      getting_started/first_2d_game/03.coding_the_player.rst
  19. 2 2
      getting_started/first_2d_game/04.creating_the_enemy.rst
  20. 3 3
      getting_started/first_2d_game/05.the_main_game_scene.rst
  21. 5 5
      getting_started/first_2d_game/06.heads_up_display.rst
  22. 4 4
      getting_started/first_2d_game/07.finishing-up.rst
  23. 3 3
      tutorials/2d/2d_lights_and_shadows.rst
  24. 9 9
      tutorials/2d/custom_drawing_in_2d.rst
  25. 5 5
      tutorials/2d/introduction_to_2d.rst
  26. 11 11
      tutorials/2d/using_tilemaps.rst
  27. 4 4
      tutorials/2d/using_tilesets.rst
  28. 6 6
      tutorials/3d/3d_text.rst
  29. 22 22
      tutorials/3d/environment_and_post_processing.rst
  30. 8 8
      tutorials/3d/global_illumination/introduction_to_global_illumination.rst
  31. 14 14
      tutorials/3d/global_illumination/using_lightmap_gi.rst
  32. 17 17
      tutorials/3d/introduction_to_3d.rst
  33. 10 10
      tutorials/3d/lights_and_shadows.rst
  34. 7 7
      tutorials/3d/occlusion_culling.rst
  35. 6 6
      tutorials/3d/physical_light_and_camera_units.rst
  36. 6 6
      tutorials/3d/procedural_geometry/index.rst
  37. 5 5
      tutorials/3d/resolution_scaling.rst
  38. 9 9
      tutorials/3d/using_decals.rst
  39. 12 12
      tutorials/3d/using_multi_mesh_instance.rst
  40. 2 2
      tutorials/3d/variable_rate_shading.rst
  41. 4 4
      tutorials/3d/visibility_ranges.rst
  42. 1 1
      tutorials/3d/volumetric_fog.rst
  43. 8 8
      tutorials/animation/animation_tree.rst
  44. 10 10
      tutorials/animation/creating_movies.rst
  45. 10 10
      tutorials/animation/playing_videos.rst
  46. 9 9
      tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst
  47. 8 8
      tutorials/assets_pipeline/importing_3d_scenes/node_type_customization.rst
  48. 7 7
      tutorials/assets_pipeline/importing_audio_samples.rst
  49. 23 23
      tutorials/assets_pipeline/importing_images.rst
  50. 2 1
      tutorials/audio/text_to_speech.rst
  51. 1 1
      tutorials/best_practices/version_control_systems.rst
  52. 2 2
      tutorials/editor/external_editor.rst
  53. 6 6
      tutorials/editor/script_editor.rst
  54. 2 2
      tutorials/export/one-click_deploy.rst
  55. 3 3
      tutorials/i18n/internationalizing_games.rst
  56. 2 2
      tutorials/i18n/localization_using_gettext.rst
  57. 10 10
      tutorials/inputs/controllers_gamepads_joysticks.rst
  58. 34 34
      tutorials/io/binary_serialization_api.rst
  59. 10 10
      tutorials/migrating/upgrading_to_godot_4.1.rst
  60. 8 8
      tutorials/migrating/upgrading_to_godot_4.2.rst
  61. 18 18
      tutorials/migrating/upgrading_to_godot_4.3.rst
  62. 12 12
      tutorials/migrating/upgrading_to_godot_4.rst
  63. 5 5
      tutorials/networking/webrtc.rst
  64. 3 3
      tutorials/networking/websocket.rst
  65. 4 4
      tutorials/performance/cpu_optimization.rst
  66. 10 10
      tutorials/performance/general_optimization.rst
  67. 6 6
      tutorials/performance/gpu_optimization.rst
  68. 3 3
      tutorials/performance/optimizing_3d_performance.rst
  69. 10 10
      tutorials/physics/interpolation/physics_interpolation_introduction.rst
  70. 1 1
      tutorials/physics/large_world_coordinates.rst
  71. 10 10
      tutorials/platform/android/android_in_app_purchases.rst
  72. 3 3
      tutorials/platform/android/android_library.rst
  73. 9 9
      tutorials/platform/android/android_plugin.rst
  74. 3 3
      tutorials/platform/web/html5_shell_classref.rst
  75. 9 9
      tutorials/plugins/editor/making_plugins.rst
  76. 7 7
      tutorials/rendering/jitter_stutter.rst
  77. 8 8
      tutorials/rendering/multiple_resolutions.rst
  78. 3 3
      tutorials/scripting/c_sharp/c_sharp_collections.rst
  79. 6 6
      tutorials/scripting/c_sharp/c_sharp_differences.rst
  80. 3 3
      tutorials/scripting/c_sharp/c_sharp_exports.rst
  81. 1 1
      tutorials/scripting/debug/output_panel.rst
  82. 17 17
      tutorials/scripting/debug/overview_of_debugging_tools.rst
  83. 5 5
      tutorials/scripting/debug/the_profiler.rst
  84. 3 3
      tutorials/scripting/gdextension/gdextension_file.rst
  85. 2 2
      tutorials/scripting/gdextension/what_is_gdextension.rst
  86. 17 17
      tutorials/shaders/converting_glsl_to_godot_shaders.rst
  87. 3 3
      tutorials/shaders/introduction_to_shaders.rst
  88. 8 8
      tutorials/shaders/screen-reading_shaders.rst
  89. 7 7
      tutorials/shaders/shader_reference/canvas_item_shader.rst
  90. 3 3
      tutorials/shaders/shader_reference/fog_shader.rst
  91. 7 7
      tutorials/shaders/shader_reference/particle_shader.rst
  92. 13 13
      tutorials/shaders/shader_reference/shader_preprocessor.rst
  93. 4 4
      tutorials/shaders/shader_reference/sky_shader.rst
  94. 6 6
      tutorials/shaders/shader_reference/spatial_shader.rst
  95. 6 6
      tutorials/shaders/visual_shaders.rst
  96. 3 3
      tutorials/shaders/your_first_shader/your_first_2d_shader.rst
  97. 11 11
      tutorials/ui/gui_containers.rst
  98. 15 15
      tutorials/ui/gui_using_fonts.rst
  99. 8 8
      tutorials/xr/openxr_hand_tracking.rst
  100. 5 5
      tutorials/xr/openxr_settings.rst

+ 2 - 2
about/docs_changelog.rst

@@ -27,7 +27,7 @@ New pages since version 4.3
 - :ref:`doc_spring_arm`
 
 Debug
-^^^^^
+~~~~~
 
 - :ref:`doc_output_panel`
 
@@ -42,7 +42,7 @@ Performance
 - :ref:`doc_pipeline_compilations`
 
 Physics
-^^^^^^^
+~~~~~~~
 
 - :ref:`doc_physics_interpolation`
 - :ref:`doc_physics_interpolation_quick_start_guide`

+ 1 - 1
contributing/development/compiling/compiling_for_linuxbsd.rst

@@ -39,7 +39,7 @@ required:
 .. _doc_compiling_for_linuxbsd_oneliners:
 
 Distro-specific one-liners
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. tabs::
 

+ 8 - 8
contributing/development/compiling/compiling_with_dotnet.rst

@@ -83,7 +83,7 @@ More details about this directory in
 :ref:`Data directory<compiling_with_dotnet_data_directory>`.
 
 Build Platform
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Provide the ``--godot-platform=<platform>`` argument to control for which
 platform specific the libraries are built. Omit this argument to build for the
@@ -93,7 +93,7 @@ This currently only controls the inclusion of the support for Visual Studio as
 an external editor, the libraries are otherwise identical.
 
 NuGet packages
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 The API assemblies, source generators, and custom MSBuild project SDK are
 distributed as NuGet packages. This is all transparent to the user, but it can
@@ -130,7 +130,7 @@ cache. It's recommended to always use this option when building the C# solutions
 during development to avoid mistakes.
 
 Building without depending on deprecated features (NO_DEPRECATED)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 When building Godot without deprecated classes and functions, i.e. the ``deprecated=no``
 argument for scons, the managed libraries must also be built without dependencies to deprecated code.
@@ -140,7 +140,7 @@ This is done by passing the ``--no-deprecated`` argument:
     ./modules/mono/build_scripts/build_assemblies.py --godot-output-dir ./bin --push-nupkgs-local <my_local_source> --no-deprecated
 
 Double Precision Support (REAL_T_IS_DOUBLE)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 When building Godot with double precision support, i.e. the ``precision=double``
 argument for scons, the managed libraries must be adjusted to match by passing
@@ -154,7 +154,7 @@ Examples
 --------
 
 Example (Windows)
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 ::
 
@@ -171,7 +171,7 @@ Example (Windows)
 
 
 Example (Linux, \*BSD)
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 ::
 
@@ -196,7 +196,7 @@ enabled. It contains important files for the correct functioning of Godot. It
 must be distributed together with the Godot executable.
 
 Editor
-^^^^^^
+~~~~~~
 
 The name of the data directory for the Godot editor will always be
 ``GodotSharp``. This directory contains an ``Api`` subdirectory with the Godot
@@ -208,7 +208,7 @@ directory may be placed in the ``<bundle_name>.app/Contents/Resources/``
 directory inside the bundle.
 
 Export templates
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 The data directory for exported projects is generated by the editor during the
 export. It is named ``data_<APPNAME>_<ARCH>``, where ``<APPNAME>`` is the

+ 2 - 2
contributing/development/compiling/optimizing_for_size.rst

@@ -271,7 +271,7 @@ Optimizing the distribution of your project
 -------------------------------------------
 
 Desktop
-^^^^^^^
+~~~~~~~
 
 .. note::
 
@@ -303,7 +303,7 @@ command:
     7z a -mx9 my_project.zip folder_containing_executable_and_pck
 
 Web
-^^^
+~~~
 
 Enabling gzip or Brotli compression for all file types from the web export
 (especially the ``.wasm`` and ``.pck``) can reduce the download size

+ 2 - 2
contributing/development/core_and_modules/custom_platform_ports.rst

@@ -63,7 +63,7 @@ knowledge of the platform's SDKs. Depending on what features you need, the
 amount of work needed varies:
 
 Required features of a platform port
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 At the very least, a platform port must have methods from the :ref:`class_OS`
 singleton implemented to be buildable and usable for headless operation.
@@ -109,7 +109,7 @@ All methods should be implemented within ``detect.py`` as follows:
   options depending on SCons options chosen.
 
 Optional features of a platform port
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 In practice, headless operation doesn't suffice if you want to see anything on
 screen and handle input devices. You may also want audio output for most

+ 21 - 21
contributing/development/core_and_modules/internal_rendering_architecture.rst

@@ -32,7 +32,7 @@ Rendering methods
 -----------------
 
 Forward+
-^^^^^^^^
+~~~~~~~~
 
 This is a forward renderer that uses a *clustered* approach to lighting.
 
@@ -45,7 +45,7 @@ This approach can greatly speed up rendering performance on desktop hardware,
 but is substantially less efficient on mobile.
 
 Mobile
-^^^^^^
+~~~~~~
 
 This is a forward renderer that uses a traditional single-pass approach to lighting.
 Internally, it is called **Forward Mobile**.
@@ -104,7 +104,7 @@ post-processing effects are also not available.
 .. _doc_internal_rendering_architecture_compatibility:
 
 Compatibility
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 .. note::
 
@@ -139,7 +139,7 @@ rendering features (even less so compared to Mobile). Most
 post-processing effects are not available.
 
 Why not deferred rendering?
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Forward rendering generally provides a better tradeoff for performance versus
 flexibility, especially when a clustered approach to lighting is used. While
@@ -161,7 +161,7 @@ Rendering drivers
 Godot 4 supports the following graphics APIs:
 
 Vulkan
-^^^^^^
+~~~~~~
 
 This is the main driver in Godot 4, with most of the development focus going
 towards this driver.
@@ -185,7 +185,7 @@ Vulkan driver.
 - `drivers/d3d12/d3d12_context.cpp <https://github.com/godotengine/godot/blob/master/drivers/d3d12/d3d12_context.cpp>`__
 
 Direct3D 12
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 Like Vulkan, the Direct3D 12 driver targets modern platforms only. It is
 designed to target both Windows and Xbox (whereas Vulkan can't be used directly on Xbox).
@@ -206,7 +206,7 @@ See the `pull request that introduced Direct3D 12 support <https://github.com/go
 for more information.
 
 Metal
-^^^^^
+~~~~~
 
 Godot supports Metal rendering via `MoltenVK <https://github.com/KhronosGroup/MoltenVK>`__,
 as macOS and iOS do not support Vulkan natively.
@@ -224,7 +224,7 @@ A native Metal driver is planned in the future for better performance and
 compatibility.
 
 OpenGL
-^^^^^^
+~~~~~~
 
 This driver uses OpenGL ES 3.0 and targets legacy and low-end devices that don't
 support Vulkan. OpenGL 3.3 Core Profile is used on desktop platforms to run this
@@ -246,7 +246,7 @@ Many advanced features are not supported with this driver, as it targets low-end
 devices first and foremost.
 
 Summary of rendering drivers/methods
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The following rendering API + rendering method combinations are currently possible:
 
@@ -447,14 +447,14 @@ used to calculate particle collisions in 2D.
 -----------------------
 
 Batching and instancing
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 In the Forward+ renderer, Vulkan instancing is used to group rendering
 of identical objects for performance. This is not as fast as static mesh
 merging, but it still allows instances to be culled individually.
 
 Light, decal and reflection probe rendering
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -497,7 +497,7 @@ Clustering is also used for reflection probes and decal rendering in the
 Forward+ renderer.
 
 Shadow mapping
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Both Forward+ and Mobile methods use
 :abbr:`PCF (Percentage Closer Filtering)` to filter shadow maps and create a
@@ -517,7 +517,7 @@ The Compatibility renderer supports shadow mapping for DirectionalLight3D,
 OmniLight3D, and SpotLight3D lights.
 
 Temporal antialiasing
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -549,7 +549,7 @@ RenderingDevice abstraction as opposed to using AMD's reference code directly.
 - `thirdparty/amd-fsr2/ <https://github.com/godotengine/godot/tree/master/thirdparty/amd-fsr2>`__
 
 Global illumination
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -600,7 +600,7 @@ This would allow baking lightmaps while using the Compatibility renderer.
 - `modules/lightmapper_rd/lm_blendseams.glsl <https://github.com/godotengine/godot/blob/4.2/modules/lightmapper_rd/lm_blendseams.glsl>`__
 
 Depth of field
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 .. note::
 
@@ -629,7 +629,7 @@ when temporal antialiasing is enabled.
 - `servers/rendering/renderer_rd/shaders/effects/bokeh_dof_raster.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/effects/bokeh_dof_raster.glsl>`__
 
 Screen-space effects (SSAO, SSIL, SSR, SSS)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -678,7 +678,7 @@ SSR is always performed at half resolution to improve performance.
 - `servers/rendering/renderer_rd/shaders/effects/subsurface_scattering.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/effects/subsurface_scattering.glsl>`__
 
 Sky rendering
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 .. seealso::
 
@@ -705,7 +705,7 @@ article.
 **Sky rendering GLSL shader:**
 
 Volumetric fog
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 .. note::
 
@@ -740,7 +740,7 @@ article.
 - `servers/rendering/renderer_rd/shaders/environment/volumetric_fog_process.glsl <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_rd/shaders/environment/volumetric_fog_process.glsl>`__
 
 Occlusion culling
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 While modern GPUs can handle drawing a lot of triangles, the number of draw
 calls in complex scenes can still be a bottleneck (even with Vulkan and Direct3D 12).
@@ -782,7 +782,7 @@ RendererSceneOcclusionCull.
 - `servers/rendering/renderer_scene_occlusion_cull.cpp <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_scene_occlusion_cull.cpp>`__
 
 Visibility range (LOD)
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 Godot supports manually authored hierarchical level of detail (HLOD), with
 distances specified by the user in the inspector.
@@ -796,7 +796,7 @@ same mesh with different LODs (to allow for split screen rendering to look corre
 - `servers/rendering/renderer_scene_cull.cpp <https://github.com/godotengine/godot/blob/4.2/servers/rendering/renderer_scene_cull.cpp>`__
 
 Automatic mesh LOD
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 The ImporterMesh class is used for the 3D mesh import workflow in the editor.
 Its ``generate_lods()`` function handles generating using the

+ 4 - 4
contributing/development/cpp_usage_guidelines.rst

@@ -46,7 +46,7 @@ use of modern C++ features conservative. Their use needs to serve a real
 purpose, such as improving code readability or performance.
 
 Standard Template Library
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 We don't allow using the `STL <https://en.wikipedia.org/wiki/Standard_Template_Library>`__
 as Godot provides its own data types (among other things).
@@ -67,7 +67,7 @@ This means that pull requests should **not** use ``std::string``,
     and Array. Therefore, List should be avoided in new code unless necessary.
 
 ``auto`` keyword
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 Please don't use the ``auto`` keyword for type inference. While it can avoid
 repetition, it can also lead to confusing code:
@@ -88,14 +88,14 @@ We chose to forbid ``auto`` instead of allowing it on a case-by-case basis to
 avoid having to decide on difficult edge cases. Thank you for your understanding.
 
 Lambdas
-^^^^^^^
+~~~~~~~
 
 Lambdas should be used conservatively when they make code effectively faster or
 simpler, and do not impede readability. Please ask before using lambdas in a
 pull request.
 
 ``#pragma once`` directive
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To follow the existing style, please use standard ``#ifdef``-based include
 guards instead of ``#pragma once`` in new files.

+ 3 - 3
contributing/development/debugging/using_cpp_profilers.rst

@@ -59,7 +59,7 @@ Profiler-specific instructions
 ------------------------------
 
 VerySleepy
-^^^^^^^^^^
+~~~~~~~~~~
 
 - Start the Godot editor or your project first.
   If you start the Project Manager, make sure to edit or run a project first.
@@ -81,7 +81,7 @@ VerySleepy
 .. image:: img/cpp_profiler_verysleepy_results_filtered.png
 
 HotSpot
-^^^^^^^
+~~~~~~~
 
 - Open HotSpot. Click **Record Data**:
 
@@ -128,7 +128,7 @@ HotSpot
     This process attachment-based workflow is similar to the one used by VerySleepy.
 
 Xcode Instruments
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 - Open Xcode. Select **Open Developer Tool** - **Instruments** from the **Xcode** app menu:
 - Double-click on **Time Profiler** in the **Instruments** window:

+ 1 - 1
contributing/development/debugging/using_sanitizers.rst

@@ -197,7 +197,7 @@ Platform-specific sanitizers
 ----------------------------
 
 Web
-^^^
+~~~
 
 When :ref:`compiling for the Web <doc_compiling_for_web>`,
 there are 2 additional sanitizer SCons options available:

+ 2 - 2
contributing/documentation/building_the_manual.rst

@@ -134,7 +134,7 @@ Hints for performance
 ---------------------
 
 RAM usage
-^^^^^^^^^
+~~~~~~~~~
 
 Building the documentation requires at least 8 GB of RAM to run without disk swapping,
 which slows it down.
@@ -160,7 +160,7 @@ threads, ``-j auto`` (which corresponds to ``-j 32`` here) can require 20+ GB of
 RAM for Sphinx alone.
 
 Specifying a list of files
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 You can specify a list of files to build, which can greatly speed up compilation:
 

+ 9 - 9
contributing/documentation/docs_image_guidelines.rst

@@ -11,7 +11,7 @@ Images
 ------
 
 Capturing an image
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 To take a picture of something in Godot, a screen capture tool can be used.
 
@@ -37,7 +37,7 @@ resolution screen the screenshot should be scaled down. There are instructions
 on how to do this later on this page.
 
 Format conversion
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 The current format for images in Godot's documentation is WebP (``.webp``).
 While some Linux programs will support saving screenshots in this format, macOS
@@ -60,7 +60,7 @@ it may have the ability to open an image then save it as a WebP file.
     a 256-color palette with 1-bit transparency.
 
 Cropping
-^^^^^^^^
+~~~~~~~~
 
 For a screenshot of a 2D or 3D scene in the editor, the above steps will be enough.
 But for most UI images some extra work should be done, specifically cropping to
@@ -95,7 +95,7 @@ Krita and can be adjusted. Click on the image with your cropping tool still sele
 and the controls will return.
 
 Scaling down an image
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 As explained earlier on this page, all images taken on a screen that is a higher resolution
 than 1080p should be scaled down. To do this in Krita click on **Image** on the top bar, and
@@ -107,7 +107,7 @@ sure the **Constrain Proportions** box at the bottom of the menu is checked so y
 to change 1 value.
 
 Saving as WebP in Krita
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 To save an image as webp if it isn't already one, Go to **File > Save As**. Select **webp** from the
 **Save as type:** dropdown, then choose wherever you want to save it. After clicking **Save** a menu
@@ -120,7 +120,7 @@ If it's still over 300KB change to lossy compression and slowly increase the com
 size is bigger.
 
 Outlines, arrows and text
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Sometimes an image needs something extra to properly direct the readers
 attention, or make something clear. Outlines and arrows can be used
@@ -145,7 +145,7 @@ be used if appropriate. For example, if yellow blends into the image, or if ther
 multiple outlines in multiple colors.
 
 Adding an image to a documentation page
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Once you've finished working on your image, it can be added to the documentation.
 All images are stored in folders named ``img`` next to the page they are used in.
@@ -164,7 +164,7 @@ Videos
 ------
 
 Capturing a video
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 To record a video of something in Godot, a screen capture tool can be used.
 Operating systems generally don't come with tools that are flexible enough
@@ -188,7 +188,7 @@ use a resolution of 1280×720.
     recording on a slow device), but it's less flexible.
 
 Compressing the captured video
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The recommendation is to record your video in the highest quality possible
 (without dropping frames due to excessive CPU/GPU utilization), then re-encode

+ 5 - 5
contributing/documentation/editor_and_docs_localization.rst

@@ -59,7 +59,7 @@ as an example) to find the list of all languages:
     more details.
 
 Adding a new language
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 If your language is already listed, click on its name to access the overview,
 and skip the rest of this section.
@@ -92,7 +92,7 @@ to translate to:
     ``pt_PT``).
 
 Translation interface
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 Once a language has been selected, you will see an overview of the translation
 status, including how many strings are left to translate or review. Each item
@@ -208,7 +208,7 @@ having some notions on the markup language used for each resource is important
 to avoid creating syntax errors in your translations.
 
 Editor interface (C++)
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 The editor translations originate from C++ strings, and may use:
 
@@ -246,7 +246,7 @@ The editor translations originate from C++ strings, and may use:
   specifiers may be displayed as ``s%``.
 
 Online documentation (RST)
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The documentation translations originate from reStructuredText (RST) files,
 which also use their own markup syntax to style text, create internal and
@@ -296,7 +296,7 @@ external links, etc. Here are some examples::
     and the internal and external hyperlink markup.
 
 Class reference (BBCode)
-^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 The class reference is documented in the main Godot repository using XML files,
 and with BBCode-like markup for styling and internal references.

+ 3 - 3
contributing/workflow/bisecting_regressions.rst

@@ -77,7 +77,7 @@ reproduce the bug.
     another contributor can continue bisecting from there.
 
 Determine the commit hashes
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To start bisecting, you must first determine the commit hashes (identifiers) of
 the "bad" and "good" build. "bad" refers to the build that exhibits the bug,
@@ -138,7 +138,7 @@ instead of a commit hash. Note that unlike tagged releases or snapshot commit
 hashes, ``master`` is a perpetually moving target.
 
 Build the engine
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 :ref:`Get Godot's source code using Git <doc_getting_source>`. Once this
 is done, in the terminal window, use ``cd`` to reach the Godot repository
@@ -159,7 +159,7 @@ Compile Godot. This assumes you've set up a build environment:
     scons
 
 Run the engine
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Run the binary located in the ``bin/`` folder and try to reproduce the bug.
 

+ 10 - 10
contributing/workflow/pr_review_guidelines.rst

@@ -70,7 +70,7 @@ do to conduct a substantive code review of a pull request.
   code only and have not tested the changes locally.
 
 1. Confirm that the problem exists
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 PRs need to solve problems and problems need to be documented. Make sure that
 the pull request links and closes (or at least addresses) a bug or a proposal.
@@ -83,7 +83,7 @@ the PR to explain the problem that the PR aims to solve in more detail.
   helps contributors in the future understand why the code is the way it is.
 
 2. Test the PR and look for regressions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 While strict code review and CI help to ensure that all pull requests work as
 intended, mistakes happen and sometimes contributors push code that creates a
@@ -99,7 +99,7 @@ the code, look for suspicious changes in other parts of the engine. Sometimes
 during rebasing changes slip through that contributors are not aware of.
 
 3. Do a code review
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 Code reviews are usually done by people who are already experienced in a given
 area. They may be able to provide ideas to make code faster, more organized, or
@@ -137,7 +137,7 @@ Here are some things to think about and look out for as you review the code:
   problem.
 
 4. Iterate with the contributor and improve the PR
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Maintainers should provide feedback and suggestions for improvement if they spot
 things in the code that they would like changed. Preferably, suggestions should
@@ -194,7 +194,7 @@ Other teams may already be tagged for review, so you can also wait or ask for
 their assistance.
 
 5. Approve the pull request
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 After reviewing the code, if you think that the code is ready to be merged into
 the engine, then go ahead and "approve" it. Make sure to also comment and
@@ -270,7 +270,7 @@ As a contributor you can help move a pull request forward by doing some of these
 steps yourself.
 
 1. Get feedback from the right people/teams
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Production team members should ensure that the right people look at a pull
 request before it is merged. In some cases this may require multiple people to
@@ -301,7 +301,7 @@ Godot organization left a review without having the relevant expertise.
     <https://github.com/godotengine/godot/pulls?q=is%3Apr+is%3Aopen+review%3Aapproved+sort%3Aupdated-desc>`_.
 
 2. Get feedback from the community
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If a pull request is having trouble attracting reviewers, you may need to reach
 out more broadly to ask for help reviewing. Consider asking:
@@ -311,7 +311,7 @@ out more broadly to ask for help reviewing. Consider asking:
 * a more experienced maintainer from another area if they could provide feedback.
 
 3. Git checklist
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 * **Make sure that the PR comes in one commit.**
 
@@ -358,7 +358,7 @@ out more broadly to ask for help reviewing. Consider asking:
   page in the main Godot repository.
 
 4. GitHub checklist
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 * **Validate the target branch of the PR.**
 
@@ -413,7 +413,7 @@ out more broadly to ask for help reviewing. Consider asking:
   milestone for the closed issue.
 
 5. Merge the pull request
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If it is appropriate for you to be merging a pull request (i.e. you are on the
 production team or you are the team leader for that area), you are confident

+ 4 - 4
contributing/workflow/testing_pull_requests.rst

@@ -27,7 +27,7 @@ depending on whether you have a GitHub account or not.
     instead.
 
 If you have a GitHub account
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 - Open the pull request page. Click the **Checks** tab near the top of the page:
 
@@ -50,7 +50,7 @@ If you have a GitHub account
   On macOS, see :ref:`doc_running_on_macos` for instructions on bypassing Gatekeeper.
 
 If you don't have a GitHub account
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you don't have a GitHub account and can't sign up for one,
 you can use the third-party `nightly.link <https://nightly.link>`__ service
@@ -91,7 +91,7 @@ This approach may be needed for pull requests that were last updated more than
 by Godot's GitHub Actions setup.
 
 Downloading a zipped pull request branch
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 - Open the pull request page. Click the *fork*'s branch name near the top of the page:
 
@@ -106,7 +106,7 @@ Downloading a zipped pull request branch
   for your operating system.
 
 Checking out a pull request branch with git
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Alternatively, you can checkout the pull request directly with git:
 

+ 1 - 1
getting_started/first_2d_game/01.project_setup.rst

@@ -51,7 +51,7 @@ This ensures that the game scales consistently on different sized screens.
 .. image:: img/setting-stretch-mode.webp
 
 Organizing the project
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
 
 In this project, we will make 3 independent scenes: ``Player``, ``Mob``, and
 ``HUD``, which we will combine into the game's ``Main`` scene.

+ 2 - 2
getting_started/first_2d_game/02.player_scene.rst

@@ -11,7 +11,7 @@ creating a separate Player scene is that we can test it separately, even before
 we've created other parts of the game.
 
 Node structure
-~~~~~~~~~~~~~~
+--------------
 
 To begin, we need to choose a root node for the player object. As a general
 rule, a scene's root node should reflect the object's desired functionality -
@@ -60,7 +60,7 @@ or :kbd:`Cmd + S` on macOS.
 
 
 Sprite animation
-~~~~~~~~~~~~~~~~
+----------------
 
 Click on the ``Player`` node and add (:kbd:`Ctrl + A` on Windows/Linux or
 :kbd:`Cmd + A` on macOS) a child node :ref:`AnimatedSprite2D

+ 2 - 2
getting_started/first_2d_game/03.coding_the_player.rst

@@ -260,7 +260,7 @@ the player around the screen in all directions.
             the name you see in the scene tree.
 
 Choosing animations
-~~~~~~~~~~~~~~~~~~~
+-------------------
 
 Now that the player can move, we need to change which animation the
 AnimatedSprite2D is playing based on its direction. We have the "walk" animation,
@@ -341,7 +341,7 @@ When you're sure the movement is working correctly, add this line to
     Hide();
 
 Preparing for collisions
-~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------
 
 We want ``Player`` to detect when it's hit by an enemy, but we haven't made any
 enemies yet! That's OK, because we're going to use Godot's *signal*

+ 2 - 2
getting_started/first_2d_game/04.creating_the_enemy.rst

@@ -11,7 +11,7 @@ We'll create a ``Mob`` scene, which we can then *instance* to create any number
 of independent mobs in the game.
 
 Node setup
-~~~~~~~~~~
+----------
 
 Click Scene -> New Scene from the top menu and add the following nodes:
 
@@ -60,7 +60,7 @@ to ``90`` (under "Transform" in the Inspector).
 Save the scene.
 
 Enemy script
-~~~~~~~~~~~~
+------------
 
 Add a script to the ``Mob`` like this:
 

+ 3 - 3
getting_started/first_2d_game/05.the_main_game_scene.rst

@@ -35,7 +35,7 @@ In addition, set the ``One Shot`` property of ``StartTimer`` to "On" and set
 ``Position`` of the ``StartPosition`` node to ``(240, 450)``.
 
 Spawning mobs
-~~~~~~~~~~~~~
+-------------
 
 The Main node will be spawning new mobs, and we want them to appear at a random
 location on the edge of the screen. Add a :ref:`Path2D <class_Path2D>` node
@@ -70,7 +70,7 @@ Your scene should look like this:
 .. image:: img/main_scene_nodes.webp
 
 Main script
-~~~~~~~~~~~
+-----------
 
 Add a script to ``Main``. At the top of the script, we use
 ``@export var mob_scene: PackedScene`` to allow us to choose the Mob scene we want
@@ -257,7 +257,7 @@ Note that a new instance must be added to the scene using ``add_child()``.
                convert between the two.
 
 Testing the scene
-~~~~~~~~~~~~~~~~~
+-----------------
 
 Let's test the scene to make sure everything is working. Add this ``new_game``
 call to ``_ready()``:

+ 5 - 5
getting_started/first_2d_game/06.heads_up_display.rst

@@ -56,14 +56,14 @@ use "Anchor Presets".
 .. image:: img/ui_anchor.webp
 
 ScoreLabel
-~~~~~~~~~~
+----------
 
 1. Add the text ``0``.
 2. Set the "Horizontal Alignment" and "Vertical Alignment" to ``Center``.
 3. Choose the "Anchor Preset" ``Center Top``.
 
 Message
-~~~~~~~~~~~~
+-------
 
 1. Add the text ``Dodge the Creeps!``.
 2. Set the "Horizontal Alignment" and "Vertical Alignment" to ``Center``.
@@ -72,7 +72,7 @@ Message
 5. Choose the "Anchor Preset" ``Center``.
 
 StartButton
-~~~~~~~~~~~
+-----------
 
 1. Add the text ``Start``.
 2. Under "Control - Layout/Transform", set "Size X" to ``200`` and "Size Y" to ``100``
@@ -213,7 +213,7 @@ signal of ``MessageTimer`` to the ``HUD`` node, and add the following code to th
     }
 
 Connecting HUD to Main
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
 
 Now that we're done creating the ``HUD`` scene, go back to ``Main``. Instance
 the ``HUD`` scene in ``Main`` like you did the ``Player`` scene. The scene tree
@@ -276,7 +276,7 @@ with the changing score:
 Now you're ready to play! Click the "Play the Project" button.
 
 Removing old creeps
-~~~~~~~~~~~~~~~~~~~
+-------------------
 
 If you play until "Game Over" and then start a new game right away, the creeps
 from the previous game may still be on the screen. It would be better if they

+ 4 - 4
getting_started/first_2d_game/07.finishing-up.rst

@@ -9,7 +9,7 @@ remaining steps to add a bit more "juice" to improve the game experience.
 Feel free to expand the gameplay with your own ideas.
 
 Background
-~~~~~~~~~~
+----------
 
 The default gray background is not very appealing, so let's change its color.
 One way to do this is to use a :ref:`ColorRect <class_ColorRect>` node. Make it
@@ -21,7 +21,7 @@ You could also add a background image, if you have one, by using a
 :ref:`TextureRect <class_TextureRect>` node instead.
 
 Sound effects
-~~~~~~~~~~~~~
+-------------
 
 Sound and music can be the single most effective way to add appeal to the game
 experience. In your game's **art** folder, you have two sound files: "House In a
@@ -73,7 +73,7 @@ Finally, add ``$DeathSound.play()`` in the ``game_over()`` function.
 
 
 Keyboard shortcut
-~~~~~~~~~~~~~~~~~
+-----------------
 
 Since the game is played with keyboard controls, it would be convenient if we
 could also start the game by pressing a key on the keyboard. We can do this with
@@ -123,7 +123,7 @@ And when you're ready, you can move on to :ref:`doc_your_first_3d_game` to learn
 to create a complete 3D game from scratch, in Godot.
 
 Sharing the finished game with others
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------------
 
 If you want people to try out your game without having to install Godot, you'll
 need to export the project for each operating system you want the game to be

+ 3 - 3
tutorials/2d/2d_lights_and_shadows.rst

@@ -200,7 +200,7 @@ LightOccluder2D nodes have 2 properties:
 There are two ways to create light occluders:
 
 Automatically generating a light occluder
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Occluders can be created automatically from Sprite2D nodes by selecting the
 node, clicking the **Sprite2D** menu at the top of the 2D editor then choosing
@@ -213,7 +213,7 @@ edges), adjust **Grow (pixels)** and **Shrink (pixels)**, then click **Update
 Preview**. Repeat this operation until you get satisfactory results.
 
 Manually drawing a light occluder
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Create a LightOccluder2D node, then select the node and click the "+" button at
 the top of the 2D editor. When asked to create a polygon resource, answer
@@ -256,7 +256,7 @@ The following properties can be adjusted on 2D lights that have shadows enabled:
    Soft shadows with streaking artifacts due to Filter Smooth being too high (PCF5, Filter Smooth 4)
 
 Occluder draw order
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 **LightOccluder2Ds follows the usual 2D drawing order.** This is important for 2D
 lighting, as this is how you control whether the occluder should occlude the

+ 9 - 9
tutorials/2d/custom_drawing_in_2d.rst

@@ -259,7 +259,7 @@ You will have to code a function to perform this and draw it yourself.
     to adjust the project to a higher resolution (a 2 or 4 scale tends to work well).
 
 Drawing a custom polygon shape
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 While there is a dedicated node to draw custom polygons (
 :ref:`Polygon2D <class_Polygon2D>`), we will use in this case exclusively lower
@@ -394,7 +394,7 @@ Polygons will always **connect its last defined point to its first
 one** in order to have a closed shape.
 
 Drawing connected lines
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 Drawing a sequence of connected lines that don't close down to form a polygon
 is very similar to the previous method. We will use a connected set of lines to
@@ -499,7 +499,7 @@ code or a predefined color name. Check the class :ref:`Color <class_Color>` for
 constants and ways to define Colors.
 
 Drawing circles
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 To create the eyes, we are going to add 4 additional calls to draw the eye
 shapes, in different sizes, colors and positions.
@@ -555,7 +555,7 @@ arbitrary angles), you can use the method
 :ref:`draw_arc <class_CanvasItem_method_draw_arc>`.
 
 Drawing lines
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 To draw the final shape (the nose) we will use a line to approximate it.
 
@@ -610,7 +610,7 @@ you may get additional performance by drawing all of them in a single call, usin
 the :ref:`draw_multiline <class_CanvasItem_method_draw_multiline>` method.
 
 Drawing text
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 While using the :ref:`Label <class_Label>` Node is the most common way to add
 text to your application, the low-level `_draw` function includes functionality
@@ -680,7 +680,7 @@ can be found on the :ref:`CanvasItem <class_CanvasItem>` class reference.
 .. _doc_draw_show_drawing_while_editing_example:
 
 Show the drawing while editing
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 While the code so far is able to draw the logo on a running window, it will
 not show up on the ``2D view`` on the editor. In certain cases you would
@@ -710,7 +710,7 @@ to refresh the current node in the ``2D`` view the first time you add or remove
 the ``@tool`` annotation.
 
 Animation
-^^^^^^^^^
+~~~~~~~~~
 
 If we wanted to make the custom shape change at runtime, we could modify the
 methods called or its arguments at execution time, or apply a transform.
@@ -870,7 +870,7 @@ will see how to draw a dynamic line whose coordinates are not known beforehand,
 and are affected by the user's input.
 
 Drawing a straight line between 2 points
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Let's assume we want to draw a straight line between 2 points, the first one
 will be fixed on the upper left corner ``(0, 0)`` and the second will be defined
@@ -943,7 +943,7 @@ It should look like this when run:
 .. image:: img/draw_line_between_2_points.webp
 
 Drawing an arc between 2 points
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The above example works, but we may want to join those 2 points with a
 different shape or function, other than a straight line.

+ 5 - 5
tutorials/2d/introduction_to_2d.rst

@@ -20,7 +20,7 @@ This page will show you the 2D workspace and how you can get to know it.
 .. tip:: If you would like to get an introduction to 3D, see :ref:`doc_introduction_to_3d`.
 
 2D workspace
-~~~~~~~~~~~~
+------------
 
 You will use the 2D workspace to work with 2D scenes, design levels, or create user 
 interfaces.
@@ -47,7 +47,7 @@ applicable.
 
 
 Main toolbar
-------------
+~~~~~~~~~~~~
 
 Some buttons in the main toolbar are the same as those in the 3D workspace. A brief explanation
 is given with the shortcut if the mouse cursor is hovered over a button for one second. 
@@ -182,7 +182,7 @@ provides buttons to add, modify, or remove points.
 
 
 Coordinate system
------------------
+~~~~~~~~~~~~~~~~~
 
 In the 2D editor, unlike 3D, there are only two axes: ``x`` and ``y``. Also, the viewing 
 angle is fixed.
@@ -206,7 +206,7 @@ Dragging in a negative direction flips the node horizontally or vertically.
 .. _doc_introduction_to_2d_the_viewport:
 
 2D Viewport
------------
+~~~~~~~~~~~
 
 The viewport will be the area you spend the most time if you plan to design levels or user 
 interfaces visually:
@@ -298,7 +298,7 @@ Viewport has a **View** menu which provides several options to change the look o
 
 
 Node2D and Control node
-~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------
 
 :ref:`CanvasItem <class_CanvasItem>` is the base node for 2D. :ref:`Node2D <class_Node2D>` is the base node
 for 2D game objects, and :ref:`Control <class_Control>` is the base node 

+ 11 - 11
tutorials/2d/using_tilemaps.rst

@@ -55,7 +55,7 @@ Each TileMapLayer node has several properties you can adjust:
 - **TileSet** The tileset used by the TileMapLayer node.
 
 Rendering
-^^^^^^^^^
+~~~~~~~~~
 
 - **Y Sort Origin:** The vertical offset to use for Y-sorting on each tile (in pixels).
   Only effective if **Y Sort Enabled** under CanvasItem settings is ``true``.
@@ -67,7 +67,7 @@ Rendering
   TileMapLayer since tiles are grouped by Y position in that case.
 
 Physics
-^^^^^^^
+~~~~~~~
 - **Collision Enabled** Enables or disables collision.
 - **Use Kinematic Bodies** When true TileMapLayer collision shapes will be instantiated
   as kinematic bodies.
@@ -75,7 +75,7 @@ Physics
   visible. If set to default, then it depends on the show collision debug settings.
 
 Navigation
-^^^^^^^^^^
+~~~~~~~~~~
 
 - **Navigation Enabled** Whether or not navigation regions are enabled.
 - **Navigation Visible** Whether or not the TileMapLayer's navigation meshes are
@@ -91,7 +91,7 @@ Navigation
     2D navigation meshes can not be "layered" or stacked on top of each other like visuals or physic shapes. Attempting to stack navigation meshes on the same navigation map will result in merge and logical errors that break the pathfinding.
 
 Reordering layers
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 You can reorder layers by drag-and-dropping their node in the Scene tab. You can
 also switch between which TileMapLayer node you're working on by using the buttons
@@ -195,7 +195,7 @@ the 2D editor, **not** the TileMap panel itself.
 From left to right, the painting modes and tools you can choose are:
 
 Selection
-^^^^^^^^^
+~~~~~~~~~
 
 Select tiles by clicking a single tile, or by holding down the left mouse button to
 select multiple with a rectangle in the 2D editor. Note that empty space cannot be
@@ -221,7 +221,7 @@ then performing a selection.
     Right-click or press :kbd:`Escape` to cancel pasting.
 
 Paint
-^^^^^
+~~~~~
 
 The standard Paint mode allows you to place tiles by clicking or holding
 down the left mouse button.
@@ -250,7 +250,7 @@ the left mouse button.
     This is identical to using the Picker tool described below.
 
 Line
-^^^^
+~~~~
 
 After selecting Line Paint mode, you can draw in a line that is
 always 1 tile thick (no matter its orientation).
@@ -270,7 +270,7 @@ You can toggle this mode temporarily while in Paint or Eraser mode by holding
    Using the line tool after selecting two tiles to draw platforms diagonally
 
 Rectangle
-^^^^^^^^^
+~~~~~~~~~
 
 After selecting Rectangle Paint mode, you can draw in an axis-aligned
 rectangle.
@@ -285,7 +285,7 @@ You can toggle this mode temporarily while in Paint or Eraser mode by holding
 :kbd:`Ctrl` and :kbd:`Shift` then drawing.
 
 Bucket Fill
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 After selecting Bucket Fill mode, you can choose whether painting should be
 limited to contiguous areas only by toggling the **Contiguous** checkbox that
@@ -313,7 +313,7 @@ you can place them in a repeating pattern within the filled area.
    Using the Bucket Fill tool
 
 Picker
-^^^^^^
+~~~~~~
 
 After selecting Picker mode, you can pick existing tiles in the 2D editor by
 holding :kbd:`Ctrl` then clicking on a tile. This will switch the currently
@@ -325,7 +325,7 @@ You can toggle this mode temporarily while in Paint mode by holding :kbd:`Ctrl`
 then clicking or dragging the mouse.
 
 Eraser
-^^^^^^
+~~~~~~
 
 This mode is combined with any other painting mode (Paint, Line, Rectangle,
 Bucket Fill). When eraser mode is enabled, tiles will be replaced by empty tiles

+ 4 - 4
tutorials/2d/using_tilesets.rst

@@ -31,7 +31,7 @@ Creating a new TileSet
 .. _doc_creating_tilesets_using_tilesheet:
 
 Using a tilesheet
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 This demonstration will use the following tiles taken from
 `Kenney's "Abstract Platformer" pack <https://kenney.nl/assets/abstract-platformer>`__.
@@ -155,7 +155,7 @@ three vertical dots menu button at the top of the TileSet editor and choose
    Recreating tiles automatically after changing atlas properties
 
 Using a collection of scenes
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Since Godot 4.0, you can place actual *scenes* as tiles. This allows you to use
 any collection of nodes as a tile. For example, you could use scene tiles to
@@ -522,7 +522,7 @@ There are two ways to assign properties to multiple tiles at once.
 Depending on your use cases, one method may be faster than the other:
 
 Using multiple tile selection
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you wish to configure various properties on several tiles at once,
 choose the **Select** mode at the top of the TileSet editor:
@@ -550,7 +550,7 @@ property's value on all tiles in the atlas after editing a property:
 .. _doc_using_tilemaps_using_tile_property_painting:
 
 Using tile property painting
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you wish to apply a single property to several tiles at once,
 you can use the *property painting* mode for this purpose.

+ 6 - 6
tutorials/3d/3d_text.rst

@@ -36,7 +36,7 @@ remains customizable and uses the same font subresource as Control nodes
 rendering).
 
 Advantages
-^^^^^^^^^^
+~~~~~~~~~~
 
 - Label3D is faster to generate than TextMesh. While both use a caching
   mechanism to only render new glyphs once, Label3D will still be faster to
@@ -52,7 +52,7 @@ Advantages
     See :ref:`doc_gui_using_fonts` for guidelines on configuring font imports.
 
 Limitations
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 By default, Label3D has limited interaction with a 3D environment. It can be
 occluded by geometry and lit by light sources if the **Shaded** flag is enabled.
@@ -94,7 +94,7 @@ the texture below as a reference for the generated mesh's UV map:
 .. image:: img/text_mesh_textured.png
 
 Advantages
-^^^^^^^^^^
+~~~~~~~~~~
 
 TextMesh has a few advantages over Label3D:
 
@@ -103,7 +103,7 @@ TextMesh has a few advantages over Label3D:
 - TextMesh can use custom shaders, unlike Label3D.
 
 Limitations
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 There are some limitations to TextMesh:
 
@@ -133,7 +133,7 @@ See the `3D waypoints <https://github.com/godotengine/godot-demo-projects/tree/m
 demo for an example of this.
 
 Advantages
-^^^^^^^^^^
+~~~~~~~~~~
 
 - Any Control node can be used, including Label, RichTextLabel or even nodes such
   as Button. This allows for powerful formatting and GUI interaction.
@@ -144,7 +144,7 @@ Advantages
   applies to the project.
 
 Limitations
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 - Projected Controls cannot be occluded by 3D geometry in any way. You can use a
   RayCast to fully hide the control if its target position is occluded by a

+ 22 - 22
tutorials/3d/environment_and_post_processing.rst

@@ -26,7 +26,7 @@ but you can enable it by using it in one of the following locations, in order
 of priority:
 
 Camera3D node (high priority)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 An Environment can be set to a Camera3D node. It will have priority over any
 other setting.
@@ -37,7 +37,7 @@ This is mostly useful when you want to override an existing environment,
 but in general it's a better idea to use the option below.
 
 WorldEnvironment node (medium priority, recommended)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The WorldEnvironment node can be added to any scene, but only one can exist per
 active scene tree. Adding more than one will result in a warning.
@@ -49,7 +49,7 @@ Any Environment added has higher priority than the default Environment
 which makes it quite useful.
 
 Preview environment and sun (low priority)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -130,7 +130,7 @@ The following is a detailed description of all environment options and how
 they are intended to be used.
 
 Background
-^^^^^^^^^^
+~~~~~~~~~~
 
 The Background section contains settings on how to fill the background (parts of
 the screen where objects were not drawn). The background not only serves the
@@ -160,7 +160,7 @@ There are several background modes available:
   "hall of mirrors" visual glitch if the sky is visible at any time.
 
 Sky materials
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 When using the **Sky** background mode (or the ambient/reflected light mode is
 set to **Sky**), a Sky subresource becomes available to edit in the Environment
@@ -201,7 +201,7 @@ If you need a custom sky material (e.g. for procedural clouds), you can
 create a custom :ref:`sky shader <doc_sky_shader>`.
 
 Ambient light
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 Ambient light (as defined here) is a type of light that affects every piece of
 geometry with the same intensity. It is global and independent of lights that
@@ -255,7 +255,7 @@ Using one of the methods described above will replace constant ambient
 lighting with ambient lighting from the probes.
 
 Reflected light
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Reflected light (also called specular light) is the other of the two components
 of image-based lighting.
@@ -271,7 +271,7 @@ Reflected light can be set to one of 3 modes:
   behaves identically to **Background**.
 
 Fog
-^^^
+~~~
 
 .. note::
 
@@ -308,7 +308,7 @@ In practice, it makes light stand out more across the fog.
     for guidance on reducing banding.
 
 Volumetric Fog
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Volumetric fog provides a realistic fog effect to the scene, with fog color
 being affected by the lights that traverse the fog.
@@ -318,7 +318,7 @@ being affected by the lights that traverse the fog.
   See :ref:`doc_volumetric_fog` for documentation on setting up volumetric fog.
 
 Tonemap
-^^^^^^^
+~~~~~~~
 
 Tonemap selects the tonemapping curve that will be applied to the scene, from a
 list of standard curves used in the film and game industries. Tonemapping operators
@@ -369,7 +369,7 @@ The Environment resource supports many popular mid- and post-processing effects.
     distracting changes during gameplay.
 
 Screen-Space Reflections (SSR)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 *This feature is only available when using the Forward+ renderer, not
 Mobile or Compatibility.*
@@ -411,7 +411,7 @@ This also applies to shaders that use ``hint_screen_texture`` or ``hint_depth_te
 uniforms.
 
 Screen-Space Ambient Occlusion (SSAO)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 *This feature is only available when using the Forward+ renderer, not
 Mobile or Compatibility.*
@@ -485,7 +485,7 @@ parameters:
 .. _doc_environment_and_post_processing_ssil:
 
 Screen-Space Indirect Lighting (SSIL)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 *This feature is only available when using the Forward+ renderer, not
 Mobile or Compatibility.*
@@ -531,7 +531,7 @@ Tweaking :abbr:`SSIL (Screen-Space Indirect Lighting)` is possible with several
 .. image:: img/environment_ssil.webp
 
 Signed Distance Field Global Illumination (SDFGI)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 *This feature is only available when using the Forward+ renderer, not
 Mobile or Compatibility.*
@@ -550,7 +550,7 @@ illumination for off-screen elements (unlike :abbr:`SSIL (Screen-Space Indirect
 .. _doc_environment_and_post_processing_glow:
 
 Glow
-^^^^
+~~~~
 
 .. note::
 
@@ -641,7 +641,7 @@ There are 2 main use cases for a glow map texture:
 .. _doc_environment_and_post_processing_using_glow_in_2d:
 
 Using glow in 2D
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 There are 2 ways to use glow in 2D:
 
@@ -689,7 +689,7 @@ There are 2 ways to use glow in 2D:
 .. _doc_environment_and_post_processing_using_glow_to_blur_the_screen:
 
 Using glow to blur the screen
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Glow can be used to blur the whole viewport, which is useful for background blur
 when a menu is open. Only 3D rendering will be affected unless the environment's
@@ -715,7 +715,7 @@ To use glow as a blurring solution:
    Example of using glow to blur the 2D rendering in the menu's background
 
 Adjustments
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 At the end of processing, Godot offers the possibility to do some standard
 image adjustments.
@@ -797,7 +797,7 @@ Camera attribute options
 ------------------------
 
 Depth of Field / Far Blur
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This effect simulates focal distance on cameras. It blurs objects behind
 a given range. It has an initial **Distance** with a **Transition** region
@@ -810,7 +810,7 @@ the depth of field quality in the advanced project settings may be needed to
 avoid artifacts.
 
 Depth of Field / Near Blur
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This effect simulates focal distance on cameras. It blurs objects close
 to the camera (acts in the opposite direction as far blur).
@@ -834,13 +834,13 @@ given object, or create a so-called
     distance, focal length, and aperture.
 
 Exposure
-^^^^^^^^
+~~~~~~~~
 
 This multiplies the overall scene brightness visible from the camera. Higher
 values result in a visually brighter scene.
 
 Auto Exposure
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 *This feature is only available when using the Forward+ renderer, not
 Mobile or Compatibility.*

+ 8 - 8
tutorials/3d/global_illumination/introduction_to_global_illumination.rst

@@ -24,7 +24,7 @@ being reflected back onto the rest of the scene.
 Global illumination is composed of several key concepts:
 
 Indirect diffuse lighting
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This is the lighting that does not change depending on the camera's angle.
 There are two main sources of indirect diffuse lighting:
@@ -64,7 +64,7 @@ it when targeting low-end hardware.
     limitations documentation for ways to reduce this effect.
 
 Specular lighting
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 Specular lighting is also referred to as *reflections*.
 This is the lighting that changes in intensity depending on the camera's angle.
@@ -112,7 +112,7 @@ there are several criteria to keep in mind:
 Here's a comparison of all the global illumination techniques available in Godot:
 
 Performance
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 In order of performance from fastest to slowest:
 
@@ -158,7 +158,7 @@ In order of performance from fastest to slowest:
     **Not available** *when using the Mobile or Compatibility renderers.*
 
 Visuals
-^^^^^^^
+~~~~~~~
 
 For comparison, here's a 3D scene with no global illumination options used:
 
@@ -242,7 +242,7 @@ Here's how Godot's various global illumination techniques compare:
        ReflectionProbe in action (without any other GI technique). Notice the reflective sphere.
 
 Real-time ability
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 - **VoxelGI:** |good| Fully real-time.
 
@@ -290,7 +290,7 @@ Real-time ability
     This makes ReflectionProbes viable for procedurally generated levels.
 
 User work needed
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 - **VoxelGI:** One or more VoxelGI nodes need to be created and baked.
 
@@ -325,7 +325,7 @@ User work needed
 .. |bad| image:: img/score_bad.webp
 
 Summary
-^^^^^^^
+~~~~~~~
 
 If you are unsure about which GI technique to use:
 
@@ -349,7 +349,7 @@ If you are unsure about which GI technique to use:
 .. _doc_introduction_to_global_illumination_gi_mode_recommendations:
 
 Which global illumination mode should I use on meshes and lights?
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Regardless of which global illumination technique you use, there is no
 universally "better" global illumination mode. Still, here are some

+ 14 - 14
tutorials/3d/global_illumination/using_lightmap_gi.rst

@@ -95,7 +95,7 @@ not share pixels in the texture.
 There are a few ways to ensure your object has a unique UV2 layer and texture size:
 
 Unwrap on scene import (recommended)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 In most scenarios, this is the best approach to use. The only downside is that,
 on large models, unwrapping can take a while on import. Nonetheless, Godot will
@@ -137,7 +137,7 @@ their UV2 maps properly generated.
     and engine versions.
 
 Unwrap from within Godot
-^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. warning::
 
@@ -154,7 +154,7 @@ This will generate a second set of UV2 coordinates which can be used for baking.
 It will also set the texture size automatically.
 
 Unwrap from your 3D modeling software
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The last option is to do it from your favorite 3D app. This approach is
 generally **not recommended**, but it's explained so that you know it exists.
@@ -177,7 +177,7 @@ to work quickly. You will mostly need to use seams or other techniques to create
 better unwrapping.
 
 Generating UV2 for primitive meshes
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -203,7 +203,7 @@ lightmap texture, which varies depending on the mesh's size properties and the
 any modifications will be lost when the scene is reloaded.
 
 Generating UV2 for CSG nodes
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Since Godot 4.4, you can
 :ref:`convert a CSG node and its children to a MeshInstance3D <doc_csg_tools_converting_to_mesh_instance_3d>`.
@@ -222,7 +222,7 @@ This can be used to bake lightmaps on a CSG node by following these steps:
     again.
 
 Checking UV2
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 In the **Mesh** menu mentioned before, the UV2 texture coordinates can be visualized.
 If something is failing, double-check that the meshes have these UV2 coordinates:
@@ -244,7 +244,7 @@ inconsistent lightmap texel scaling, make sure to respect the rule about mesh
 scaling mentioned before.
 
 Setting up meshes
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 For a **MeshInstance3D** node to take part in the baking process, it needs to have
 its bake mode set to **Static**. Meshes that have their bake mode set to **Disabled**
@@ -255,7 +255,7 @@ or **Dynamic** will be ignored by the lightmapper.
 When auto-generating lightmaps on scene import, this is enabled automatically.
 
 Setting up lights
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 Lights are baked with indirect light only by default. This means that shadowmapping
 and lighting are still dynamic and affect moving objects, but light bounces from
@@ -269,7 +269,7 @@ can be controlled from the **Bake Mode** menu in lights:
 The modes are:
 
 Disabled
-^^^^^^^^
+~~~~~~~~
 
 The light is ignored when baking lightmaps. This is the mode to use for dynamic
 lighting effects such as explosions and weapon effects.
@@ -281,7 +281,7 @@ lighting effects such as explosions and weapon effects.
     disabling its **Visible** property.
 
 Dynamic
-^^^^^^^
+~~~~~~~
 
 This is the default mode, and is a compromise between performance and real-time
 friendliness. Only indirect lighting will be baked. Direct light and shadows are
@@ -292,7 +292,7 @@ position while still looking fairly correct. For example, you can use this
 to create flickering static torches that have their indirect light baked.
 
 Static
-^^^^^^
+~~~~~~
 
 Both indirect and direct lighting will be baked. Since static surfaces can skip
 lighting and shadow computations entirely, this mode provides the best
@@ -343,7 +343,7 @@ method and quality selected.
     set to a high enough value.
 
 Tweaks
-^^^^^^
+~~~~~~
 
 - **Quality:** Four bake quality modes are provided: Low, Medium, High, and
   Ultra. Higher quality takes more time, but result in a better-looking lightmap
@@ -433,7 +433,7 @@ noise and softens them while attempting to best preserve detail.
 Godot offers two denoising algorithms:
 
 JNLM (Non-Local Means with Joint Filtering)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 JNLM is the default denoising method and is included in Godot. It uses a simple
 but efficient denoising algorithm known as *non-local means*. JNLM runs on the
@@ -451,7 +451,7 @@ removing noise, at the cost of suppressing shadow detail for static shadows.
    Comparison between JNLM denoiser strength values. Higher values can reduce detail.
 
 OIDN (Open Image Denoise)
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Unlike JNLM, OIDN uses a machine learning approach to denoising lightmaps. It
 features a model specifically trained to remove noise from lightmaps while

+ 17 - 17
tutorials/3d/introduction_to_3d.rst

@@ -24,7 +24,7 @@ relevant math written for game developers, not mathemeticians or engineers,
 check out :ref:`doc_vector_math` and :ref:`doc_using_transforms`.
 
 3D workspace
-~~~~~~~~~~~~
+------------
 
 Editing 3D scenes is done in the 3D workspace. This workspace can be selected
 manually, but it will be automatically selected when a Node3D node is
@@ -40,7 +40,7 @@ Below the scene selector, the main toolbar is visible, and beneath the main tool
 is the 3D viewport.
 
 Main toolbar
-------------
+~~~~~~~~~~~~
 
 Some buttons in the main toolbar are the same as those in the 2D workspace. A brief explanation
 is given with the shortcut if the mouse cursor is hovered over a button for one second. 
@@ -125,7 +125,7 @@ MeshInstance3D is selected. This menu provides some quick actions or tools to
 work on a specific node or selection.
 
 View menu of viewport
----------------------
+~~~~~~~~~~~~~~~~~~~~~
 
 Below the *Select* tool, in the 3D viewport, clicking on the three dots opens the
 **View menu** for the viewport.
@@ -141,7 +141,7 @@ nodes within the viewport.
 .. _doc_introduction_to_3d_coordinate_system:
 
 Coordinate system
------------------
+~~~~~~~~~~~~~~~~~
 
 Godot uses the `metric <https://en.wikipedia.org/wiki/Metric_system>`__
 system for everything in 3D, with 1 unit being equal to 1 meter.
@@ -176,7 +176,7 @@ See this chart for comparison with other 3D software:
 .. _doc_introduction_to_3d_space_and_manipulation:
 
 Space and manipulation gizmos
------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Moving, rotating, and scaling objects in the 3D view is done through the
 manipulator gizmos.
@@ -202,7 +202,7 @@ If the transform mode is changed from *Select Mode* to *Scale Mode*, the arrows
 replaced by cubes, which can be dragged to scale an object as if the object is being moved.
 
 Navigating the 3D environment
------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 In 3D environments, it is often important to adjust the viewpoint or angle
 from which you are viewing the scene.
@@ -251,7 +251,7 @@ In orthogonal mode, holding the right mouse button will pan the view instead.
 Use :kbd:`Keypad 5` to toggle between perspective and orthogonal view.
 
 Using Blender-style transform shortcuts
----------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Since Godot 4.2, you can enable Blender-style shortcuts for translating,
 rotating and scaling nodes. In Blender, these shortcuts are:
@@ -284,7 +284,7 @@ To use Blender-style transform shortcuts in Godot, go to the Editor Settings'
   :ref:`doc_default_key_mapping_shortcuts_spatial_editor` page.
 
 Node3D node
-~~~~~~~~~~~
+-----------
 
 :ref:`Node2D <class_Node2D>` is the base node for 2D.
 :ref:`Control <class_Control>` is the base node for everything GUI.
@@ -303,7 +303,7 @@ scale.
 .. image:: img/tuto_3d2.webp
 
 3D content
-~~~~~~~~~~
+----------
 
 Unlike 2D, where loading image content and drawing is straightforward, 3D is a
 little more difficult. The content needs to be created with special 3D tools
@@ -312,7 +312,7 @@ exchange file format to be imported in Godot. This is required since 3D formats
 are not as standardized as images.
 
 Manually authored models (using 3D modeling software)
------------------------------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. FIXME: Needs update to properly description Godot 3.x workflow
    (used to reference a non existing doc_importing_3d_meshes importer).
@@ -325,7 +325,7 @@ as simple resources.
 .. seealso:: See :ref:`doc_importing_3d_scenes` for more on importing.
 
 Generated geometry
-------------------
+~~~~~~~~~~~~~~~~~~
 
 It is possible to create custom geometry by using the
 :ref:`ArrayMesh <class_ArrayMesh>` resource directly. Simply create your arrays
@@ -343,7 +343,7 @@ submitting them to the 3D API has a significant performance cost.
 
 
 Immediate geometry
-------------------
+~~~~~~~~~~~~~~~~~~
 
 If, instead, you need to generate simple geometry that will be updated often,
 Godot provides a special :ref:`ImmediateMesh <class_ImmediateMesh>` resource
@@ -352,7 +352,7 @@ This provides an OpenGL 1.x-style immediate-mode API to create points, lines,
 triangles, etc.
 
 2D in 3D
---------
+~~~~~~~~
 
 While Godot packs a powerful 2D engine, many types of games use 2D in a
 3D environment. By using a fixed camera (either orthogonal or
@@ -367,7 +367,7 @@ performance in comparison to plain 2D, as well as the lack of reference
 of working in pixels.
 
 Environment
-~~~~~~~~~~~
+-----------
 
 Besides editing a scene, it is often common to edit the environment.
 Godot provides a :ref:`WorldEnvironment <class_WorldEnvironment>`
@@ -378,7 +378,7 @@ Environments can also be overridden in the Camera.
 .. _doc_introduction_to_3d_preview_environment_light:
 
 Preview environment and light
------------------------------
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 By default, any 3D scene that doesn't have a :ref:`WorldEnvironment <class_WorldEnvironment>`
 node, or a :ref:`DirectionalLight3D <class_DirectionalLight3D>`, will have
@@ -405,7 +405,7 @@ So only make adjustments that would apply to all of the scenes you will need a p
 light and environment for.
 
 Cameras
--------
+~~~~~~~
 
 No matter how many objects are placed in the 3D space, nothing will be
 displayed unless a :ref:`Camera3D <class_Camera3D>` is
@@ -435,7 +435,7 @@ each viewport:
    tree-order will take its place.
 
 Lights
-------
+~~~~~~
 
 The background environment emits some ambient light which appears on surfaces.
 Still, without any light sources placed in the scene, the scene will appear

+ 10 - 10
tutorials/3d/lights_and_shadows.rst

@@ -130,7 +130,7 @@ There is a list of generic shadow parameters, each also has a specific function:
 .. image:: img/lights_and_shadows_blur.webp
 
 Tweaking shadow bias
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 Below is an image of what tweaking bias looks like. Default values work for most
 cases, but in general, it depends on the size and complexity of geometry.
@@ -201,7 +201,7 @@ recommendations in :ref:`doc_lights_and_shadows_pcss_recommendations` if setting
 this value above ``0.0`` on lights with shadows enabled.
 
 Directional shadow mapping
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To compute shadow maps, the scene is rendered (only depth) from an orthogonal
 point of view that covers the whole scene (or up to the max distance). There is,
@@ -290,7 +290,7 @@ expensive, so check the recommendations in
 .. image:: img/lights_and_shadows_pcss.webp
 
 Omni shadow mapping
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 Omni light shadow mapping is relatively straightforward. The main issue that
 needs to be considered is the algorithm used to render it.
@@ -343,7 +343,7 @@ and add two extra parameters:
 - **Angle Attenuation:** The cone attenuation, which helps soften the cone borders.
 
 Spot shadow mapping
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 Spots feature the same parameters as omni lights for shadow mapping. Rendering
 spot shadow maps is significantly faster compared to omni lights, as only one
@@ -439,7 +439,7 @@ Positional (omni/spot) shadow quality settings can be changed at runtime on the
 root :ref:`class_Viewport`.
 
 Shadow map size
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 High shadow resolutions result in sharper shadows, but at a significant
 performance cost. It should also be noted that *sharper shadows are not always
@@ -454,7 +454,7 @@ fewer shadows. This will allow each shadow to be rendered at a higher resolution
 .. _doc_lights_and_shadows_shadow_filter_mode:
 
 Shadow filter mode
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 Several shadow map quality settings can be chosen here. The default **Soft Low**
 is a good balance between performance and quality for scenes with detailed
@@ -474,7 +474,7 @@ make use of the increased sample count.
 .. image:: img/lights_and_shadows_filter_quality.webp
 
 16-bits versus 32-bit
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 By default, Godot uses 16-bit depth textures for shadow map rendering. This is
 recommended in most cases as it performs better without a noticeable difference
@@ -486,7 +486,7 @@ enabled. However, the difference is often barely visible, yet this can have a
 significant performance cost.
 
 Light/shadow distance fade
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 OmniLight3D and SpotLight3D offer several properties to hide distant lights.
 This can improve performance significantly in large scenes with dozens of lights
@@ -509,7 +509,7 @@ or more.
 .. _doc_lights_and_shadows_pcss_recommendations:
 
 PCSS recommendations
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 Percentage-closer soft shadows (PCSS) provide a more realistic shadow mapping
 appearance, with the penumbra size varying depending on the distance between the
@@ -529,7 +529,7 @@ To avoid performance issues, it's recommended to:
   ``light_size`` property to ``0.0`` in a script.
 
 Projector filter mode
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 The way projectors are rendered also has an impact on performance. The
 **Rendering > Textures > Light Projectors > Filter** advanced project setting

+ 7 - 7
tutorials/3d/occlusion_culling.rst

@@ -115,7 +115,7 @@ There are two ways to set up occluders in a scene:
 .. _doc_occlusion_culling_baking:
 
 Automatically baking occluders (recommended)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -156,7 +156,7 @@ on the **VisualInstance3D > Layers** property, uncheck layer 1 then check layer
 following the above process.
 
 Manually placing occluders
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This approach is more suited for specialized use cases, such as creating occlusion
 for MultiMeshInstance3D setups or CSG nodes (due to the aforementioned limitation).
@@ -217,7 +217,7 @@ Performance considerations
 --------------------------
 
 Design your levels to take advantage of occlusion culling
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 **This is the most important guideline.** A good level design is not just about
 what the gameplay demands; it should also be built with occlusion in mind.
@@ -230,7 +230,7 @@ when possible. This provides the greatest culling opportunities compared to any
 other terrain shape.
 
 Avoid moving OccluderInstance3D nodes during gameplay
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This includes moving the parents of OccluderInstance3D nodes, as this will cause
 the nodes themselves to move in global space, therefore requiring the :abbr:`BVH
@@ -250,7 +250,7 @@ If you absolutely have to move an OccluderInstance3D node during gameplay, use a
 primitive Occluder3D shape for it instead of a complex baked shape.
 
 Use the simplest possible occluder shapes
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you notice low performance or stuttering in complex 3D scenes, it may mean
 that the CPU is overloaded as a result of rendering detailed occluders.
@@ -272,7 +272,7 @@ Troubleshooting
 ---------------
 
 My occludee isn't being culled when it should be
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 **On the occluder side:**
 
@@ -302,7 +302,7 @@ the occluder shapes for the occludee to be hidden.
 .. _doc_occlusion_culling_troubleshooting_false_negative:
 
 My occludee is being culled when it shouldn't be
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The most likely cause for this is that objects that were included in the
 occluder bake have been moved after baking occluders. For instance, this can

+ 6 - 6
tutorials/3d/physical_light_and_camera_units.rst

@@ -13,7 +13,7 @@ tradeoffs that aren't worth it for many games. As Godot favors ease of use by
 default, physical light units are disabled by default.
 
 Advantages of physical units
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you aim for photorealism in your project, using real world units as a basis
 can help make things easier to adjust. References for real world materials,
@@ -24,7 +24,7 @@ Using real world units in Godot can also be useful when porting a scene from
 other 3D software that uses physical light units (such as Blender).
 
 Disadvantages of physical units
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The biggest disadvantage of using physical light units is you will have to pay
 close attention to the dynamic range in use at a given time. You can run into
@@ -68,13 +68,13 @@ this performance impact, depth of field quality can be decreased in the advanced
 Project Settings.
 
 Enable the project setting
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Open the Project Settings, enable the **Advanced** toggle then enable
 **Rendering > Lights And Shadows > Use Physical Light Units**. Restart the editor.
 
 Configure the camera
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 .. warning::
 
@@ -136,7 +136,7 @@ for a description of CameraAttributesPhysical properties that are also available
 **not** using physical light units.
 
 Configure the environment
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. warning::
 
@@ -160,7 +160,7 @@ the :ref:`class_Environment` resource:
   is set, this energy is multiplied by the intensity.
 
 Configure the light nodes
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 After enabling physical light units, 2 new properties become available in Light3D nodes:
 

+ 6 - 6
tutorials/3d/procedural_geometry/index.rst

@@ -61,13 +61,13 @@ hidden from the user in the :ref:`RenderingServer <class_RenderingServer>`, but
 manually by passing in an array containing the surface information.
 
 Surfaces
-^^^^^^^^
+~~~~~~~~
 
 Each surface has its own material. Alternatively, you can override the material for all surfaces
 in the Mesh when you use a MeshInstance3D using the :ref:`material_override <class_GeometryInstance3D_property_material_override>` property.
 
 Surface array
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 The surface array is an array of length ``ArrayMesh.ARRAY_MAX``. Each position in the array is
 filled with a sub-array containing per-vertex information. For example, the array located at
@@ -89,7 +89,7 @@ Godot provides different ways of accessing and working with geometry. More infor
 be provided in the following tutorials.
 
 ArrayMesh
-^^^^^^^^^
+~~~~~~~~~
 
 The ArrayMesh resource extends Mesh to add a few different quality of life functions and, most
 importantly, the ability to construct a Mesh surface through scripting.
@@ -97,7 +97,7 @@ importantly, the ability to construct a Mesh surface through scripting.
 For more information about the ArrayMesh, please see the :ref:`ArrayMesh tutorial <doc_arraymesh>`.
 
 MeshDataTool
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 The MeshDataTool is a resource that converts Mesh data into arrays of vertices, faces, and edges that can
 be modified at runtime.
@@ -105,14 +105,14 @@ be modified at runtime.
 For more information about the MeshDataTool, please see the :ref:`MeshDataTool tutorial <doc_meshdatatool>`.
 
 SurfaceTool
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 The SurfaceTool allows the creation of Meshes using an OpenGL 1.x immediate mode style interface.
 
 For more information about the SurfaceTool, please see the :ref:`SurfaceTool tutorial <doc_surfacetool>`.
 
 ImmediateMesh
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 ImmediateMesh is a mesh that uses an immediate mode style interface (like
 SurfaceTool) to draw objects. The difference between ImmediateMesh and the

+ 5 - 5
tutorials/3d/resolution_scaling.rst

@@ -41,7 +41,7 @@ In the advanced Project Settings' **Rendering > Scaling 3D** section, you can
 find several options for 3D resolution scaling:
 
 Scaling mode
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 - **Bilinear:** Standard bilinear filtering (default).
 - **FSR 1.0:** `AMD FidelityFX Super Resolution 1.0 <https://gpuopen.com/fidelityfx-superresolution/>`__.
@@ -86,7 +86,7 @@ MSAA is enabled. However, FSR2 doesn't benefit much from enabling MSAA since it
 already performs temporal antialiasing.
 
 Rendering scale
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 The **Rendering > Scaling 3D > Scale** setting adjusts the resolution scale.
 ``1.0`` represents the full resolution scale, with the 3D rendering resolution
@@ -181,7 +181,7 @@ in each table.
 +--------------------------+-------------------------+-------------------------------+
 
 FSR Sharpness
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 When using the FSR1 or FSR2 scaling modes, the sharpness can be controlled using the
 **Rendering > Scaling 3D > FSR Sharpness** advanced project setting.
@@ -211,7 +211,7 @@ to oversharpening.
 .. _doc_resolution_scaling_mipmap_bias:
 
 Mipmap bias
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 Godot automatically uses a negative texture mipmap bias when the 3D resolution
 scale is set below ``1.0``. This allows for better preservation of texture
@@ -261,7 +261,7 @@ Troubleshooting
 ---------------
 
 Performance does not increase much when decreasing resolution scale
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If performance doesn't increase much when decreasing resolution scale to a value
 like ``0.5``, it likely means the performance bottleneck is elsewhere in your

+ 9 - 9
tutorials/3d/using_decals.rst

@@ -38,7 +38,7 @@ Use cases
 ---------
 
 Static decoration
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 Sometimes, the fastest way to add texture detail to a scene is to use decals.
 This is especially the case for organic detail, such as patches of dirt or sand
@@ -58,7 +58,7 @@ footprints or wet puddles.
    Dirt added on top of level geometry using decals
 
 Dynamic gameplay elements
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Decals can represent temporary or persistent gameplay effects such as bullet
 impacts and explosion scorches.
@@ -67,7 +67,7 @@ Using an AnimationPlayer node or a script, decals can be made to fade over time
 (and then be removed using ``queue_free()``) to improve performance.
 
 Blob shadows
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 Blob shadows are frequently used in mobile projects (or to follow a retro art
 style), as real-time lighting tends to be too expensive on low-end mobile
@@ -96,7 +96,7 @@ Quick start guide
 -----------------
 
 Creating decals in the editor
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 1. Create a Decal node in the 3D editor.
 2. In the inspector, expand the **Textures** section and load a texture in
@@ -121,7 +121,7 @@ Decal node properties
   culling opportunities, therefore improving performance.
 
 Textures
-^^^^^^^^
+~~~~~~~~
 
 - **Albedo:** The albedo (diffuse/color) map to use for the decal. In
   most situations, this is the texture you want to set first. If using a normal
@@ -141,7 +141,7 @@ Textures
   **Albedo**, this texture will appear to glow in the dark.
 
 Parameters
-^^^^^^^^^^
+~~~~~~~~~~
 
 - **Emission Energy:** The brightness of the emission texture.
 - **Modulate:** Multiplies the color of the albedo and emission textures. Use
@@ -160,7 +160,7 @@ Parameters
   added normal angle computations.
 
 Vertical Fade
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 - **Upper Fade:** The curve over which the decal will fade as the surface gets
   further from the center of the :abbr:`AABB (Axis-Aligned Bounding Box)`
@@ -170,7 +170,7 @@ Vertical Fade
   from the decal's projection angle). Only positive values are valid.
 
 Distance Fade
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 - **Enabled:** Controls whether distance fade (a form of :abbr:`LOD (Level of Detail)`)
   is enabled. The decal will fade out over **Begin + Length**, after which it
@@ -184,7 +184,7 @@ Distance Fade
   more suited when the camera moves fast.
 
 Cull Mask
-^^^^^^^^^
+~~~~~~~~~
 
 - **Cull Mask:** Specifies which VisualInstance3D layers this decal will project
   on. By default, decals affect all layers. This is used so you can specify which

+ 12 - 12
tutorials/3d/using_multi_mesh_instance.rst

@@ -3,10 +3,10 @@
 .. _doc_using_multi_mesh_instance:
 
 Using MultiMeshInstance3D
--------------------------
+=========================
 
 Introduction
-~~~~~~~~~~~~
+------------
 
 In a normal scenario, you would use a :ref:`MeshInstance3D <class_MeshInstance3D>`
 node to display a 3D mesh like a human model for the main character, but in some
@@ -22,7 +22,7 @@ MeshInstance over a surface of a specific mesh. An example would be having a
 tree mesh populate a landscape mesh with trees of random scales and orientations.
 
 Setting up the nodes
-~~~~~~~~~~~~~~~~~~~~
+--------------------
 
 The basic setup requires three nodes: the MultiMeshInstance3D node
 and two MeshInstance3D nodes.
@@ -50,48 +50,48 @@ Click it and select *Populate surface* in the dropdown menu. A new window titled
 .. image:: img/multimesh_settings.png
 
 MultiMesh settings
-~~~~~~~~~~~~~~~~~~
+------------------
 
 Below are descriptions of the options.
 
 Target Surface
-++++++++++++++
+~~~~~~~~~~~~~~
 
 The mesh used as the target surface on which to place copies of your
 source mesh.
 
 Source Mesh
-+++++++++++
+~~~~~~~~~~~
 
 The mesh you want duplicated on the target surface.
 
 Mesh Up Axis
-++++++++++++
+~~~~~~~~~~~~
 
 The axis used as the up axis of the source mesh.
 
 Random Rotation
-+++++++++++++++
+~~~~~~~~~~~~~~~
 
 Randomizing the rotation around the up axis of the source mesh.
 
 Random Tilt
-+++++++++++
+~~~~~~~~~~~
 
 Randomizing the overall rotation of the source mesh.
 
 Random Scale
-++++++++++++
+~~~~~~~~~~~~
 
 Randomizing the scale of the source mesh.
 
 Scale
-+++++
+~~~~~
 
 The scale of the source mesh that will be placed over the target surface.
 
 Amount
-++++++
+~~~~~~
 
 The amount of mesh instances placed over the target surface.
 

+ 2 - 2
tutorials/3d/variable_rate_shading.rst

@@ -111,7 +111,7 @@ For custom viewports, the VRS mode and texture must be set manually to the
     :ref:`command line argument <doc_command_line_tutorial>`.
 
 Creating a VRS density map
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If using the **Texture** VRS mode, you *must* set a texture to be used as a
 density map. Otherwise, no effect will be visible.
@@ -187,7 +187,7 @@ aspect ratio in your project (such as 16:9).
     low, or textures will appear grainy.
 
 Performance comparison
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 To give an idea of how much VRS can improve performance in theory, here's a
 performance comparison with the textured example scene shown at the top of this

+ 4 - 4
tutorials/3d/visibility_ranges.rst

@@ -97,7 +97,7 @@ the following properties in the GeometryInstance3D's **Visibility Range** sectio
 .. _doc_visibility_ranges_fade_mode:
 
 Fade mode
-^^^^^^^^^
+~~~~~~~~~
 
 .. note::
 
@@ -132,7 +132,7 @@ choose from:
 .. _doc_visibility_ranges_visibility_parent:
 
 Visibility parent
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 The **Visibility Parent** property makes it easier to set up
 :abbr:`HLOD (Hierarchical Level of Detail)`. It allows automatically hiding
@@ -194,7 +194,7 @@ Configuration tips
 ------------------
 
 Use simpler materials at a distance to improve performance
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 One way to further improve performance is to use simpler materials for distant
 LOD meshes. While using LOD meshes will reduce the number of vertices that need
@@ -223,7 +223,7 @@ expensive material features such as:
 - Proximity Fade
 
 Use dithering for LOD transitions
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Godot currently only supports alpha-based fading for visibility ranges. You can
 however use dithering instead by using several different materials for different

+ 1 - 1
tutorials/3d/volumetric_fog.rst

@@ -224,7 +224,7 @@ the following properties in FogMaterial:
   :ref:`changing its import type in the Import dock <doc_importing_images_changing_import_type>`.
 
 Using 3D noise density textures
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Since Godot 4.1, there is a NoiseTexture3D resource that can be used to
 procedurally generate 3D noise. This is well-suited to FogMaterial density

+ 8 - 8
tutorials/animation/animation_tree.rst

@@ -70,7 +70,7 @@ This will simply play back the animation. Make sure that the ``AnimationTree`` i
 Following is a short description of available nodes:
 
 Blend2 / Blend3
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 These nodes will blend between two or three inputs by a user-specified blend value:
 
@@ -84,7 +84,7 @@ This is very useful for layering animations on top of each other.
 .. image:: img/animtree6.png
 
 OneShot
-^^^^^^^
+~~~~~~~
 
 This node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
 
@@ -122,7 +122,7 @@ After setting the request and changing the animation playback, the one-shot node
     animationTree.Get("parameters/OneShot/active");
 
 TimeSeek
-^^^^^^^^
+~~~~~~~~
 
 This node can be used to cause a seek command to happen to any sub-children of the animation graph. Use this node type to play an ``Animation`` from the start or a certain playback position inside the ``AnimationNodeBlendTree``.
 
@@ -150,12 +150,12 @@ After setting the time and changing the animation playback, the seek node automa
     animationTree.Set("parameters/TimeSeek/seek_request", 12.0);
 
 TimeScale
-^^^^^^^^^
+~~~~~~~~~
 
 Allows scaling the speed of the animation (or reverse it) connected to the `in` input via the `scale` parameter. Setting the `scale` to 0 will pause the animation.
 
 Transition
-^^^^^^^^^^
+~~~~~~~~~~
 
 Very simple state machine (when you don't want to cope with a ``StateMachine`` node). Animations can be connected to the outputs and transition times can be specified.
 After setting the request and changing the animation playback, the transition node automatically clears the request on the next process frame by setting its ``transition_request`` value to an empty string (``""``).
@@ -190,7 +190,7 @@ After setting the request and changing the animation playback, the transition no
     animationTree.Get("parameters/Transition/current_index");
 
 BlendSpace2D
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 ``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points are added to a two-dimensional space and then a position
 can be controlled to determine blending:
@@ -214,12 +214,12 @@ This mode can be changed in the *Blend* menu:
 .. image:: img/animtree10.png
 
 BlendSpace1D
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 This is similar to 2D blend spaces, but in one dimension (so triangles are not needed).
 
 StateMachine
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 This node acts as a state machine with root nodes as states. Root nodes can be created and connected via lines. States are connected via *Transitions*,
 which are connections with special properties. Transitions are uni-directional, but two can be used to connect in both directions.

+ 10 - 10
tutorials/animation/creating_movies.rst

@@ -110,7 +110,7 @@ Once you've configured and enabled Movie Maker mode, it will be automatically us
 when running the project from the editor.
 
 Command line usage
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 Movie Maker can also be enabled from the :ref:`command line <doc_command_line_tutorial>`:
 
@@ -157,7 +157,7 @@ Godot has 2 built-in :ref:`MovieWriters <class_MovieWriter>`, and more can be
 implemented by extensions:
 
 AVI (recommended)
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 AVI container with MJPEG for video and uncompressed audio. Features lossy video
 compression, resulting in medium file sizes and fast encoding. The lossy
@@ -173,7 +173,7 @@ To use AVI, specify a path to an ``.avi`` file to be created in the
 **Editor > Movie Writer > Movie File** project setting.
 
 PNG
-^^^
+~~~
 
 PNG image sequence for video and WAV for audio. Features lossless video
 compression, at the cost of large file sizes and slow encoding. This is designed
@@ -193,7 +193,7 @@ To use PNG, specify a ``.png`` file to be created in the
 file will have the same name as the ``.png`` file (minus the extension).
 
 Custom
-^^^^^^
+~~~~~~
 
 If you need to encode directly to a different format or pipe a stream through
 third-party software, you can extend the MovieWriter class to create your own
@@ -371,7 +371,7 @@ Some common post-processing steps are listed below.
 .. _doc_creating_movies_converting_avi:
 
 Converting AVI video to MP4
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 While some platforms such as YouTube support uploading the AVI file directly, many
 others will require a conversion step beforehand. `HandBrake <https://handbrake.fr/>`__
@@ -398,7 +398,7 @@ cost of a worse size/quality ratio.
 .. _doc_creating_movies_converting_image_sequence:
 
 Converting PNG image sequence + WAV audio to a video
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you chose to record a PNG image sequence with a WAV file beside it,
 you need to convert it to a video before you can use it elsewhere.
@@ -428,7 +428,7 @@ storing transparency, so you can use WebM/VP9 as an alternative:
 .. _doc_creating_movies_motion_blur:
 
 Cutting video
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 You can trim parts of the video you don't want to keep after the video is
 recorded. For example, to discard everything before 12.1 seconds and keep
@@ -442,7 +442,7 @@ Cutting videos can also be done with the GUI tool
 `LosslessCut <https://mifi.github.io/lossless-cut/>`__.
 
 Resizing video
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 The following command resizes a video to be 1080 pixels tall (1080p),
 while preserving its existing aspect ratio:
@@ -455,7 +455,7 @@ while preserving its existing aspect ratio:
 .. _doc_creating_movies_reducing_framerate:
 
 Reducing framerate
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 The following command changes a video's framerate to 30 FPS, dropping some of
 the original frames if there are more in the input video:
@@ -465,7 +465,7 @@ the original frames if there are more in the input video:
     ffmpeg -i input.avi -r 30 -crf 15 output.mp4
 
 Generating accumulation motion blur with FFmpeg
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Godot does not have built-in support for motion blur, but it can still be
 created in recorded videos.

+ 10 - 10
tutorials/animation/playing_videos.rst

@@ -45,7 +45,7 @@ Setting up VideoStreamPlayer
    desired.
 
 Handling resizing and different aspect ratios
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 By default in Godot 4.0, the VideoStreamPlayer will automatically be resized to match
 the video's resolution. You can make it follow usual :ref:`class_Control` sizing
@@ -85,7 +85,7 @@ to fit the whole screen while avoiding distortion.
     aspect ratios in your project.
 
 Displaying a video on a 3D surface
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Using a VideoStreamPlayer node as a child of a :ref:`class_SubViewport` node,
 it's possible to display any 2D node on a 3D surface. For example, this can be
@@ -117,7 +117,7 @@ See :ref:`doc_viewports` and the
 for more information on setting this up.
 
 Looping a video
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 For looping a video, the **Loop** property can be enabled. This will seamlessly
 restart the video when it reaches its end.
@@ -196,7 +196,7 @@ below with almost any input video format (AVI, MOV, WebM, …).
    at the ``configuration:`` line in the command output.
 
 Balancing quality and file size
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The **video quality** level (``-q:v``) must be between ``1`` and ``10``. Quality
 ``6`` is a good compromise between quality and file size. If encoding at a high
@@ -218,7 +218,7 @@ for a table listing Ogg Vorbis audio quality presets and their respective
 variable bitrates.
 
 FFmpeg: Convert while preserving original video resolution
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The following command converts the video while keeping its original resolution.
 The video and audio's bitrate will be variable to maximize quality while saving
@@ -230,7 +230,7 @@ static scenes).
     ffmpeg -i input.mp4 -q:v 6 -q:a 6 output.ogv
 
 FFmpeg: Resize the video then convert it
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The following command resizes a video to be 720 pixels tall (720p), while
 preserving its existing aspect ratio. This helps decrease the file size
@@ -253,14 +253,14 @@ Chroma key, commonly known as the "green screen" or "blue screen" effect, allows
 We will achieve the chroma key effect by writing a custom shader in GDScript and using a `VideoStreamPlayer` node to display the video content.
 
 Scene Setup
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 Ensure that the scene contains a `VideoStreamPlayer` node to play the video and a `Control` node to hold the UI elements for controlling the chroma key effect.
 
    .. image:: img/chroma_key_scene.webp
 
 Writing the Custom Shader
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To implement the chroma key effect, follow these steps:
 
@@ -307,7 +307,7 @@ The code above represents a simple demonstration of the Chroma Key shader,
 and users can customize it according to their specific requirements.
 
 UI Controls
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 To allow users to manipulate the chroma key effect in real-time, we created sliders in the `Control` node. The `Control` node's script contains the following functions:
 
@@ -375,7 +375,7 @@ also make sure that the range of the sliders are appropriate, our settings are :
    .. image:: img/slider_range.webp
 
 Signal Handling
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Connect the appropriate signal from the UI elements to the `Control` node's script.
 you created in the `Control` node's script to control the chroma key effect.

+ 9 - 9
tutorials/assets_pipeline/importing_3d_scenes/import_configuration.rst

@@ -52,7 +52,7 @@ you'll need to use the Advanced Import Settings dialog, import hints, or possibl
 .. _doc_importing_3d_scenes_using_the_import_dock:
 
 Using the Import dock
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 The following options can be adjusted in the Import dock after selecting a 3D
 scene in the FileSystem dock:
@@ -173,7 +173,7 @@ exported from other tools such as Maya.
   imported scene, with and without VRAM compression respectively.
 
 Using the Advanced Import Settings dialog
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The first tab you'll see is the **Scene** tab. The options available in the
 panel on the right are identical to the Import dock, but you have access to a 3D
@@ -316,7 +316,7 @@ use an external material instead of the material that is included in the
 original 3D scene file; see the section below.
 
 Extracting materials to separate files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 While Godot can import materials authored in 3D modeling software, the default
 configuration may not be suitable for your needs. For example:
@@ -374,7 +374,7 @@ material, enabling **Save to File**, then specifying the save path using the
 .. _doc_importing_3d_scenes_import_script:
 
 Using import scripts for automation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 A special script to process the whole scene after import can be provided.
 This is great for post-processing, changing materials, doing funny stuff with
@@ -413,7 +413,7 @@ finally be used **must** be returned (even if the scene can be entirely differen
 To use your script, locate the script in the import tab's "Path" option under the "Import Script" category.
 
 Using animation libraries
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 As of Godot 4.0, you can choose to import **only** animations from a glTF file and
 nothing else. This is used in some asset pipelines to distribute animations
@@ -440,7 +440,7 @@ Library act the same as when using the Scene import mode. See
 :ref:`doc_importing_3d_scenes_using_the_import_dock` for more information.
 
 Filter script
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 It is possible to specify a filter script in a special syntax to decide which
 tracks from which animations should be kept.
@@ -492,21 +492,21 @@ would be retained.
 Any track filter lines that do not begin with a ``+`` or ``-`` are ignored.
 
 Storage
-^^^^^^^
+~~~~~~~
 
 By default, animations are saved as built-in. It is possible to save them to a
 file instead. This allows adding custom tracks to the animations and keeping
 them after a reimport.
 
 Optimizer
-^^^^^^^^^
+~~~~~~~~~
 
 When animations are imported, an optimizer is run, which reduces the size of the
 animation considerably. In general, this should always be turned on unless you
 suspect that an animation might be broken due to it being enabled.
 
 Clips
-^^^^^
+~~~~~
 
 It is possible to specify multiple animations from a single timeline as clips.
 For this to work, the model must have only one animation that is named

+ 8 - 8
tutorials/assets_pipeline/importing_3d_scenes/node_type_customization.rst

@@ -21,7 +21,7 @@ will detect suffixes in object names and will perform actions automatically.
     **case-insensitive**.
 
 Remove nodes (-noimp)
-^^^^^^^^^^^^^^^^^^^^^
+---------------------
 
 Objects that have the ``-noimp`` suffix will be removed at import-time no matter
 what their type is. They will not appear in the imported scene.
@@ -30,7 +30,7 @@ This is equivalent to enabling **Skip Import** for a node in the Advanced Import
 Settings dialog.
 
 Create collisions (-col, -convcol, -colonly, -convcolonly)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----------------------------------------------------------
 
 The option ``-col`` will work only for Mesh objects. If it is detected, a child
 static collision node will be added, using the same geometry as the mesh. This
@@ -93,7 +93,7 @@ reliability.
     shapes.
 
 Create Occluder (-occ, -occonly)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+--------------------------------
 
 If a mesh is imported with the ``-occ`` suffix an :ref:`class_occluder3D` node
 will be created based on the geometry of the mesh, it does not replace the mesh.
@@ -101,30 +101,30 @@ A mesh node with the ``-occonly`` suffix will be converted to an
 :ref:`class_occluder3D` on import.
 
 Create navigation (-navmesh)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+----------------------------
 
 A mesh node with the ``-navmesh`` suffix will be converted to a navigation mesh.
 The original Mesh object will be removed at import-time.
 
 Create a VehicleBody (-vehicle)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+-------------------------------
 
 A mesh node with the ``-vehicle`` suffix will be imported as a child to a
 :ref:`class_VehicleBody3D` node.
 
 Create a VehicleWheel (-wheel)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------------------
 
 A mesh node with the ``-wheel`` suffix will be imported as a child to a
 :ref:`class_VehicleWheel3D` node.
 
 Rigid Body (-rigid)
-^^^^^^^^^^^^^^^^^^^
+-------------------
 
 A mesh node with the ``-rigid`` suffix will be imported as a :ref:`class_RigidBody3D`.
 
 Animation loop (-loop, -cycle)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+------------------------------
 
 Animation clips in the source 3D file that start or end with the token ``loop`` or ``cycle``
 will be imported as a Godot :ref:`class_Animation` with the loop flag set.

+ 7 - 7
tutorials/assets_pipeline/importing_audio_samples.rst

@@ -181,7 +181,7 @@ Import options (Ogg Vorbis and MP3)
 -----------------------------------
 
 Loop
-^^^^
+~~~~
 
 If enabled, the audio will begin playing at the beginning after playback ends by
 reaching the end of the audio.
@@ -193,7 +193,7 @@ reaching the end of the audio.
     playing indefinitely.
 
 Loop Offset
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 The loop offset determines where audio will start to loop after playback reaches
 the end of the audio. This can be used to only loop a part of the audio file,
@@ -208,7 +208,7 @@ A more convenient editor for **Loop Offset** is provided in the
 dialog, as it lets you preview your changes without having to reimport the audio.
 
 BPM
-^^^
+~~~
 
 The Beats Per Minute of the audio track. This should match the BPM measure that
 was used to compose the track. This is only relevant for music that wishes to
@@ -220,7 +220,7 @@ A more convenient editor for **BPM** is provided in the
 dialog, as it lets you preview your changes without having to reimport the audio.
 
 Beat Count
-^^^^^^^^^^
+~~~~~~~~~~
 
 The beat count of the audio track. This is only relevant for music that wishes
 to make use of interactive music functionality, not sound
@@ -231,7 +231,7 @@ A more convenient editor for **Beat Count** is provided in the
 dialog, as it lets you preview your changes without having to reimport the audio.
 
 Bar Beats
-^^^^^^^^^
+~~~~~~~~~
 
 The number of bars within a single beat in the audio track. This is only
 relevant for music that wishes to make use of interactive music functionality
@@ -273,7 +273,7 @@ Best practices
 --------------
 
 Use appropriate quality settings
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 While keeping pristine-quality audio sources is important if you're performing
 editing, using the same quality in the exported project is not necessary. For
@@ -299,7 +299,7 @@ sample rate and number of channels for your audio:
   very high-pitched). This is because most human voices never go past 11 kHz.
 
 Use real-time audio effects to reduce file size
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Godot has an :ref:`extensive bus system <doc_audio_buses>` with built-in effects.
 This saves SFX artists the need to add reverb to the sound effects,

+ 23 - 23
tutorials/assets_pipeline/importing_images.rst

@@ -65,7 +65,7 @@ image in the FileSystem dock:
 .. _doc_importing_images_changing_import_type:
 
 Changing import type
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 It is possible to choose other types of imported resources in the Import dock:
 
@@ -113,7 +113,7 @@ Here are templates you can use for cubemap images (right-click > **Save Link As
 - :download:`6×1 cubemap template <img/cubemap_template_6x1.webp>`
 
 Detect 3D
-^^^^^^^^^
+~~~~~~~~~
 
 The default import options (no mipmaps and **Lossless** compression) are suited
 for 2D, but are not ideal for most 3D projects. **Detect 3D** makes Godot aware
@@ -152,7 +152,7 @@ Import options
 .. _doc_importing_images_compress_mode:
 
 Compress > Mode
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Images are one of the largest assets in a game. To handle them efficiently, they
 need to be compressed. Godot offers several compression methods, depending on
@@ -256,7 +256,7 @@ FileSystem dock, then looking at the Inspector:
    Previewing a texture in the Inspector. Credit: `Red Brick 03 - Poly Haven <https://polyhaven.com/a/red_brick_03>`__
 
 Compress > High Quality
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -279,7 +279,7 @@ BPTC and ASTC support VRAM compression for HDR textures, but S3TC and ETC2 do
 not (see **HDR Compression** below).
 
 Compress > HDR Compression
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -299,7 +299,7 @@ If set to **Always**, will force VRAM compression even for HDR textures with an
 alpha channel. To perform this, the alpha channel is discarded on import.
 
 Compress > Normal Map
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 When using a texture as normal map, only the red and green channels are
 required. Given regular texture compression algorithms produce artifacts that
@@ -337,7 +337,7 @@ using the same amount of memory as a standard RGBA VRAM-compressed texture:
   `here <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details>`__.
 
 Compress > Channel Pack
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 If set to **sRGB Friendly** (default), prevents the RG color format from being
 used as it does not support sRGB color.
@@ -355,7 +355,7 @@ or **Basis Universal** compression modes.
 .. _doc_importing_images_mipmaps:
 
 Mipmaps > Generate
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 If enabled, smaller versions of the texture are generated on import. For
 example, a 64×64 texture will generate 6 mipmaps (32×32, 16×16, 8×8, 4×4, 2×2,
@@ -375,7 +375,7 @@ camera never zooms out significantly, there won't be a benefit to enabling
 mipmaps but memory usage will increase.
 
 Mipmaps > Limit
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 .. UPDATE: Not implemented. When Mipmaps > Limit is implemented, remove this
 .. warning and remove this comment.
@@ -389,13 +389,13 @@ can be generated. This can be decreased if you don't want textures to become too
 low-resolution at extreme distances, at the cost of some graininess.
 
 Roughness > Mode
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 The color channel to consider as a roughness map in this texture. Only effective if
 **Roughness > Src Normal** is not empty.
 
 Roughness > Src Normal
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 The path to the texture to consider as a normal map for roughness filtering on
 import. Specifying this can help decrease specular aliasing slightly in 3D.
@@ -403,7 +403,7 @@ import. Specifying this can help decrease specular aliasing slightly in 3D.
 Roughness filtering on import is only used in 3D rendering, not 2D.
 
 Process > Fix Alpha Border
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This puts pixels of the same surrounding color in transition from transparent to
 opaque areas. For textures displayed with bilinear filtering, this helps
@@ -415,7 +415,7 @@ It's recommended to leave this enabled (as it is by default), unless this causes
 issues for a particular image.
 
 Process > Premult Alpha
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 An alternative to fixing darkened borders with **Fix Alpha Border** is to use
 premultiplied alpha. By enabling this option, the texture will be converted to
@@ -429,7 +429,7 @@ displayed correctly:
   option is only suited for 2D.
 
 Process > Normal Map Invert Y
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Godot requires the normal map to use the X+, Y+ and Z+ coordinates, which is
 known as an OpenGL-style normal map. If you've imported a material made to be
@@ -441,7 +441,7 @@ popular engines) can be found
 `here <http://wiki.polycount.com/wiki/Normal_Map_Technical_Details>`__.
 
 Process > HDR as sRGB
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 Some HDR images you can find online may be broken and contain sRGB color data
 (instead of linear color data). It is advised not to use those files. If you
@@ -453,7 +453,7 @@ absolutely have to, enabling this option on will make them look correct.
     resulting image to look too dark, so leave this disabled if unsure.
 
 Process > HDR Clamp Exposure
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Some HDR panorama images you can find online may contain extremely bright
 pixels, due to being taken from real life sources without any clipping.
@@ -466,7 +466,7 @@ clamping formula that does not introduce *visible* clipping – glow will keep
 working when looking at the background sky.
 
 Process > Size Limit
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 If set to a value greater than ``0``, the size of the texture is limited on
 import to a value smaller than or equal to the value specified here. For
@@ -481,7 +481,7 @@ usually can't display textures larger than 4096×4096).
 .. _doc_importing_images_detect_3d_compress_to:
 
 Detect 3D > Compress To
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 This changes the :ref:`doc_importing_images_compress_mode` option that is used
 when a texture is detected as being used in 3D.
@@ -492,7 +492,7 @@ existing compress mode on a texture (if it's detected to be used in 3D), but
 choosing **VRAM Compressed** or **Basis Universal** will.
 
 SVG > Scale
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 *This is only available for SVG images.*
 
@@ -504,7 +504,7 @@ also **Editor > Scale With Editor Scale** below.
 .. _doc_importing_images_editor_import_options:
 
 Editor > Scale With Editor Scale
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 *This is only available for SVG images.*
 
@@ -513,7 +513,7 @@ This should be enabled for editor plugin icons and custom class icons, but
 should be left disabled otherwise.
 
 Editor > Convert Colors With Editor Theme
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 *This is only available for SVG images.*
 
@@ -549,7 +549,7 @@ Best practices
 --------------
 
 Supporting high-resolution texture sizes in 2D without artifacts
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To support :ref:`multiple resolutions <doc_multiple_resolutions>` with crisp
 visuals at high resolutions, you will need to use high-resolution source images
@@ -575,7 +575,7 @@ to make textures sharper (at the cost of some graininess) by setting
 negative value.
 
 Use appropriate texture sizes in 3D
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 While there's no "one size fits all" recommendation, here are some general
 recommendations for choosing texture sizes in 3D:

+ 2 - 1
tutorials/audio/text_to_speech.rst

@@ -74,7 +74,8 @@ Godot depends on system libraries for text-to-speech functionality. These librar
 Both Godot users on Linux and end-users on Linux running Godot games need to ensure that their system includes the system libraries for text-to-speech to work. Please consult the table below or your own distribution's documentation to determine what libraries you need to install.
 
 Distro-specific one-liners
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 +------------------+-----------------------------------------------------------------------------------------------------------+
 | **Arch Linux**   | ::                                                                                                        |
 |                  |                                                                                                           |

+ 1 - 1
tutorials/best_practices/version_control_systems.rst

@@ -19,7 +19,7 @@ As of July 2023, there is only a Git plugin available, but the community may
 create additional VCS plugins.
 
 Official Git plugin
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 Using Git from inside the editor is supported with an official plugin.
 You can find the latest releases on

+ 2 - 2
tutorials/editor/external_editor.rst

@@ -94,7 +94,7 @@ To use these protocols, a Godot instance must be running on your current project
 Below are some configuration steps for specific editors:
 
 Visual Studio Code
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 You need to install the official `Visual Studio Code plugin <https://github.com/godotengine/godot-vscode-plugin>`_.
 
@@ -121,6 +121,6 @@ For **DAP**, specify the ``debugServer`` property in your ``launch.json`` file:
     }
 
 Emacs
-^^^^^
+~~~~~
 
 Check the official instructions to configure `LSP <https://github.com/godotengine/emacs-gdscript-mode#auto-completion-with-the-language-server-protocol-lsp>`_, and `DAP <https://github.com/godotengine/emacs-gdscript-mode#using-the-debugger>`_.

+ 6 - 6
tutorials/editor/script_editor.rst

@@ -6,7 +6,7 @@ Script Editor
 .. _doc_script_editor_introduction:
 
 Introduction
-~~~~~~~~~~~~
+------------
 
 Godot Engine's script editor is a powerful and fully-integrated text editor
 that not only streamlines the process of writing and debugging code written in
@@ -25,7 +25,7 @@ be accessed in several ways as described in the
 .. _doc_script_editor_features:
 
 Features
-~~~~~~~~
+--------
 
 Some of the key features of the text editor are listed below:
 
@@ -44,7 +44,7 @@ Some of the key features of the text editor are listed below:
 .. _doc_script_editor_usage:
 
 Usage
-~~~~~
+-----
 
 If you are using GDScript in your project, the built-in text editor in
 Godot provides everything you need, serving as a one-stop location to
@@ -106,7 +106,7 @@ You can also select a section below to jump to a specific topic:
 .. _doc_script_editor_script_panel:
 
 Script Panel
-------------
+~~~~~~~~~~~~
 
 .. |script| image:: img/script_editor_icons/Script.webp
 .. |scriptcsharp| image:: img/script_editor_icons/ScriptCSharp.webp
@@ -165,7 +165,7 @@ behavior as filtering scripts.
 .. _doc_script_editor_menus:
 
 Menus
------
+~~~~~
 
 The text editor's menus lie below the scene switcher and allow you to access a
 variety of tools and options, such as file management, search and replace, debugging
@@ -365,7 +365,7 @@ The **Go To** menu lets you navigate within the code at ease with these options:
 .. _doc_script_editor_coding_area:
 
 Coding area
------------
+~~~~~~~~~~~
 
 .. note:: This section will only cover the basics of the coding area in terms of the user
   interface. To learn more about scripting in Godot, refer to the :ref:`doc_gdscript` or

+ 2 - 2
tutorials/export/one-click_deploy.rst

@@ -102,7 +102,7 @@ Troubleshooting
 ---------------
 
 Android
-^^^^^^^
+~~~~~~~
 
 If you can't see the device in the list of devices when running the
 ``adb devices`` command in a terminal, it will not be visible by Godot either.
@@ -123,7 +123,7 @@ To resolve this:
 .. _doc_one-click_deploy_troubleshooting_web:
 
 Web
-^^^
+~~~
 
 By default, the web server started by the editor is only accessible from
 ``localhost``. This means the web server can't be reached by other devices on

+ 3 - 3
tutorials/i18n/internationalizing_games.rst

@@ -102,7 +102,7 @@ This will just look up the text in the translations and convert it if found:
     define the DynamicFont as the Default Font in the theme.
 
 Placeholders
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 To feature placeholders in your translated strings, use
 :ref:`doc_gdscript_printf` or the equivalent feature in C#. This lets
@@ -123,7 +123,7 @@ allow translators to choose the *order* in which placeholders appear:
     message.text = tr("{character} picked up the {weapon}").format({character = "Ogre", weapon = "Sword"})
 
 Translation contexts
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 If you're using plain English as source strings (rather than message codes
 ``LIKE_THIS``), you may run into ambiguities when you have to translate the same
@@ -150,7 +150,7 @@ identical:
     GetNode<Label>("Distance").Text = Tr("Close", "Distance");
 
 Pluralization
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 Most languages require different strings depending on whether an object is in
 singular or plural form. However, hardcoding the "is plural" condition depending

+ 2 - 2
tutorials/i18n/localization_using_gettext.rst

@@ -56,7 +56,7 @@ Creating the PO template
 ------------------------
 
 Automatic generation using the editor
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Since Godot 4.0, the editor can generate a PO template automatically from
 specified scene and GDScript files. This POT generation also supports translation
@@ -92,7 +92,7 @@ You can then move over to
     update translations for outdated strings.
 
 Manual creation
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 If the automatic generation approach doesn't work out for your needs, you can
 create a PO template by hand in a text editor. This file can be placed anywhere

+ 10 - 10
tutorials/inputs/controllers_gamepads_joysticks.rst

@@ -39,7 +39,7 @@ Input actions are explained in detail on the :ref:`doc_inputevent` page.
     different code paths since these have to be handled separately.
 
 Which Input singleton method should I use?
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 There are 3 ways to get input in an analog-aware way:
 
@@ -167,7 +167,7 @@ If you're used to handling keyboard and mouse input, you may be surprised by how
 controllers handle specific situations.
 
 Dead zone
-^^^^^^^^^
+~~~~~~~~~
 
 Unlike keyboards and mice, controllers offer axes with *analog* inputs. The
 upside of analog inputs is that they offer additional flexibility for actions.
@@ -195,7 +195,7 @@ specified as an optional 5th parameter. If not specified, it will calculate the
 average deadzone value from all of the actions in the vector.
 
 "Echo" events
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 Unlike keyboard input, holding down a controller button such as a D-pad
 direction will **not** generate repeated input events at fixed intervals (also
@@ -209,7 +209,7 @@ at regular intervals. This can be accomplished
 with the help of a :ref:`class_Timer` node.
 
 Window focus
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 Unlike keyboard input, controller inputs can be seen by **all** windows on the
 operating system, including unfocused windows.
@@ -258,7 +258,7 @@ use ``Focus.event_is_action_pressed(event, action)`` where ``event`` is an
 InputEvent reference and ``action`` is the name of the input action.
 
 Power saving prevention
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 Unlike keyboard and mouse input, controller inputs do **not** inhibit sleep and
 power saving measures (such as turning off the screen after a certain amount of
@@ -283,7 +283,7 @@ Troubleshooting
     on GitHub.
 
 My controller isn't recognized by Godot.
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 First, check that your controller is recognized by other applications. You can
 use the `Gamepad Tester <https://gamepad-tester.com/>`__ website to confirm that
@@ -294,7 +294,7 @@ because Godot uses the XInput API, which is limited to supporting 4 controllers
 at once. Additional controllers above this limit are ignored by Godot.
 
 My controller has incorrectly mapped buttons or axes.
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 First, if your controller provides some kind of firmware update utility,
 make sure to run it to get the latest fixes from the manufacturer. For instance,
@@ -337,10 +337,10 @@ additional controller mappings, you can add them by calling
 as early as possible in a script's ``_ready()`` function.
 
 My controller works on a given platform, but not on another platform.
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Linux
-~~~~~
+^^^^^
 
 If you're using a self-compiled engine binary, make sure it was compiled with
 udev support. This is enabled by default, but it is possible to disable udev
@@ -353,7 +353,7 @@ regular polling must be used to check for controllers being connected or
 disconnected during gameplay (hotplugging).
 
 HTML5
-~~~~~
+^^^^^
 
 HTML5 controller support is often less reliable compared to "native" platforms.
 The quality of controller support tends to vary wildly across browsers. As a

+ 34 - 34
tutorials/io/binary_serialization_api.rst

@@ -111,10 +111,10 @@ should be ``(offset - 4) * 2 + 4``. The "float" type itself always uses double
 precision.
 
 0: null
-^^^^^^^
+~~~~~~~
 
 1: :ref:`bool<class_bool>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+-----------+---------------------------+
 | Offset   | Len   | Type      | Description               |
@@ -123,7 +123,7 @@ precision.
 +----------+-------+-----------+---------------------------+
 
 2: :ref:`int<class_int>`
-^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 If no flags are set (flags == 0), the integer is sent as a 32 bit integer:
 
@@ -143,7 +143,7 @@ a 64-bit integer:
 +----------+-------+-----------+--------------------------+
 
 3: :ref:`float<class_float>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If no flags are set (flags == 0), the float is sent as a 32 bit single precision:
 
@@ -163,7 +163,7 @@ a 64-bit double precision number:
 +----------+-------+---------+-----------------------------------+
 
 4: :ref:`String<class_string>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+-----------+----------------------------+
 | Offset   | Len   | Type      | Description                |
@@ -176,7 +176,7 @@ a 64-bit double precision number:
 This field is padded to 4 bytes.
 
 5: :ref:`Vector2<class_vector2>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+----------------+
 | Offset   | Len   | Type    | Description    |
@@ -187,7 +187,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+----------------+
 
 6: :ref:`Rect2<class_rect2>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+----------------+
 | Offset   | Len   | Type    | Description    |
@@ -202,7 +202,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+----------------+
 
 7: :ref:`Vector3<class_vector3>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+----------------+
 | Offset   | Len   | Type    | Description    |
@@ -215,7 +215,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+----------------+
 
 8: :ref:`Transform2D<class_transform2d>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+---------------------------------------------------------------+
 | Offset   | Len   | Type    | Description                                                   |
@@ -234,7 +234,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+---------------------------------------------------------------+
 
 9: :ref:`Plane<class_plane>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+---------------+
 | Offset   | Len   | Type    | Description   |
@@ -249,7 +249,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+---------------+
 
 10: :ref:`Quaternion<class_quaternion>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+---------------+
 | Offset   | Len   | Type    | Description   |
@@ -264,7 +264,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+---------------+
 
 11: :ref:`AABB<class_aabb>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+----------------+
 | Offset   | Len   | Type    | Description    |
@@ -283,7 +283,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+----------------+
 
 12: :ref:`Basis<class_basis>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+---------------------------------------------------------------+
 | Offset   | Len   | Type    | Description                                                   |
@@ -308,7 +308,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+---------------------------------------------------------------+
 
 13: :ref:`Transform3D<class_transform3d>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+---------------------------------------------------------------+
 | Offset   | Len   | Type    | Description                                                   |
@@ -339,7 +339,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+---------------------------------------------------------------+
 
 14: :ref:`Color<class_color>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+---------+--------------------------------------------------------------+
 | Offset   | Len   | Type    | Description                                                  |
@@ -354,7 +354,7 @@ This field is padded to 4 bytes.
 +----------+-------+---------+--------------------------------------------------------------+
 
 15: :ref:`NodePath<class_nodepath>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+-----------+-----------------------------------------------------------------------------------------+
 | Offset   | Len   | Type      | Description                                                                             |
@@ -363,7 +363,7 @@ This field is padded to 4 bytes.
 +----------+-------+-----------+-----------------------------------------------------------------------------------------+
 
 For old format:
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 +----------+-------+---------+------------------------+
 | Offset   | Len   | Type    | Description            |
@@ -374,7 +374,7 @@ For old format:
 Padded to 4 bytes.
 
 For new format:
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 +----------+-------+-----------+-------------------------------------+
 | Offset   | Len   | Type      | Description                         |
@@ -397,16 +397,16 @@ For each Name and Sub-Name
 Every name string is padded to 4 bytes.
 
 16: :ref:`RID<class_rid>` (unsupported)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 17: :ref:`Object<class_object>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 An Object could be serialized in three different ways: as a null value, with
 ``full_objects = false``, or with ``full_objects = true``.
 
 A null value
-""""""""""""
+^^^^^^^^^^^^
 
 +----------+-------+------------+-------------------------------------------------+
 | Offset   | Len   | Type       | Description                                     |
@@ -415,7 +415,7 @@ A null value
 +----------+-------+------------+-------------------------------------------------+
 
 ``full_objects`` disabled
-"""""""""""""""""""""""""
+^^^^^^^^^^^^^^^^^^^^^^^^^
 
 +----------+-------+------------+-------------------------------------------------+
 | Offset   | Len   | Type       | Description                                     |
@@ -424,7 +424,7 @@ A null value
 +----------+-------+------------+-------------------------------------------------+
 
 ``full_objects`` enabled
-""""""""""""""""""""""""
+^^^^^^^^^^^^^^^^^^^^^^^^
 
 +----------+-------+----------------+----------------------------------------------------------+
 | Offset   | Len   | Type           | Description                                              |
@@ -460,7 +460,7 @@ For each property:
    possible usage flags.
 
 18: :ref:`Dictionary<class_dictionary>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+-----------+---------------------------------------------------------------------+
 | Offset   | Len   | Type      | Description                                                         |
@@ -472,7 +472,7 @@ Then what follows is, for amount of "elements", pairs of key and value,
 one after the other, using this same format.
 
 19: :ref:`Array<class_array>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+-----------+---------------------------------------------------------------------+
 | Offset   | Len   | Type      | Description                                                         |
@@ -484,7 +484,7 @@ Then what follows is, for amount of "elements", values one after the
 other, using this same format.
 
 20: :ref:`PackedByteArray<class_PackedByteArray>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +---------------+-------+-----------+------------------------+
 | Offset        | Len   | Type      | Description            |
@@ -497,7 +497,7 @@ other, using this same format.
 The array data is padded to 4 bytes.
 
 21: :ref:`PackedInt32Array<class_PackedInt32Array>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +------------------+-------+-----------+---------------------------+
 | Offset           | Len   | Type      | Description               |
@@ -508,7 +508,7 @@ The array data is padded to 4 bytes.
 +------------------+-------+-----------+---------------------------+
 
 22: :ref:`PackedInt64Array<class_PackedInt64Array>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +------------------+-------+-----------+---------------------------+
 | Offset           | Len   | Type      | Description               |
@@ -519,7 +519,7 @@ The array data is padded to 4 bytes.
 +------------------+-------+-----------+---------------------------+
 
 23: :ref:`PackedFloat32Array<class_PackedFloat32Array>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +------------------+-------+-----------+-------------------------------------------+
 | Offset           | Len   | Type      | Description                               |
@@ -530,7 +530,7 @@ The array data is padded to 4 bytes.
 +------------------+-------+-----------+-------------------------------------------+
 
 24: :ref:`PackedFloat64Array<class_PackedFloat64Array>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +------------------+-------+-----------+-------------------------------------------+
 | Offset           | Len   | Type      | Description                               |
@@ -541,7 +541,7 @@ The array data is padded to 4 bytes.
 +------------------+-------+-----------+-------------------------------------------+
 
 25: :ref:`PackedStringArray<class_PackedStringArray>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +----------+-------+-----------+--------------------------+
 | Offset   | Len   | Type      | Description              |
@@ -562,7 +562,7 @@ For each String:
 Every string is padded to 4 bytes.
 
 26: :ref:`PackedVector2Array<class_PackedVector2Array>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +-------------------+-------+-----------+----------------+
 | Offset            | Len   | Type      | Description    |
@@ -575,7 +575,7 @@ Every string is padded to 4 bytes.
 +-------------------+-------+-----------+----------------+
 
 27: :ref:`PackedVector3Array<class_PackedVector3Array>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +--------------------+-------+-----------+----------------+
 | Offset             | Len   | Type      | Description    |
@@ -590,7 +590,7 @@ Every string is padded to 4 bytes.
 +--------------------+-------+-----------+----------------+
 
 28: :ref:`PackedColorArray<class_PackedColorArray>`
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 +--------------------+-------+-----------+--------------------------------------------------------------+
 | Offset             | Len   | Type      | Description                                                  |

+ 10 - 10
tutorials/migrating/upgrading_to_godot_4.1.rst

@@ -28,7 +28,7 @@ the C# breaking change is *binary compatible* or *source compatible*:
   upgrading Godot.
 
 Core
-^^^^
+~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -46,7 +46,7 @@ Method ``wait_for_task_completion`` changes return type from ``void`` to ``Error
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Animation
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -60,7 +60,7 @@ Method ``get_travel_path`` changes return type from ``PackedStringArray`` to ``A
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 2D nodes
-^^^^^^^^
+~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -70,7 +70,7 @@ Property ``lookahead`` removed
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 3D nodes
-^^^^^^^^
+~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -85,7 +85,7 @@ Method ``look_at_from_position`` adds a new ``use_model_front`` optional paramet
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 GUI nodes
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -101,7 +101,7 @@ Method ``edit_selected`` adds a new ``force_edit`` optional parameter
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Physics
-^^^^^^^
+~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -117,7 +117,7 @@ Method ``collide_shape`` changes return type from ``Array[PackedVector3Array]``
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Rendering
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -133,7 +133,7 @@ Method ``add_triangle_fan`` changes ``tangents`` parameter type from untyped ``A
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Navigation
-^^^^^^^^^^
+~~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -163,7 +163,7 @@ Method ``agent_set_time_horizon`` split into ``agent_set_time_horizon_agents`` a
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Networking
-^^^^^^^^^^
+~~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -173,7 +173,7 @@ Method ``_create_data_channel`` changes return type from ``Object`` to ``WebRTCD
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Editor plugins
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced

+ 8 - 8
tutorials/migrating/upgrading_to_godot_4.2.rst

@@ -49,7 +49,7 @@ the C# breaking change is *binary compatible* or *source compatible*:
   upgrading Godot.
 
 Core
-^^^^
+~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -59,7 +59,7 @@ Constant ``NOTIFICATION_NODE_RECACHE_REQUESTED`` removed
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Animation
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -111,7 +111,7 @@ Property ``tree_root`` changes type from ``AnimationNode`` to ``AnimationRootNod
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 GUI nodes
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -125,7 +125,7 @@ Method ``add_image`` adds new ``key``, ``pad``, ``tooltip``, and ``size_in_perce
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Rendering
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -147,7 +147,7 @@ Method ``commit`` changes ``flags`` parameter type from ``uint32`` to ``uint64``
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Text
-^^^^
+~~~~
 
 ====================================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                                GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -159,7 +159,7 @@ Method ``find_variation`` adds new ``spacing_top``, ``spacing_bottom``, ``spacin
 ====================================================================================================================================  ===================  ====================  ====================  ===========
 
 GraphEdit
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -203,7 +203,7 @@ Property ``text_direction`` removed
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 TileMap
-^^^^^^^
+~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -213,7 +213,7 @@ Property ``cell_quadrant_size`` renamed to ``rendering_quadrant_size``
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 XR
-^^
+~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced

+ 18 - 18
tutorials/migrating/upgrading_to_godot_4.3.rst

@@ -22,7 +22,7 @@ the C# breaking change is *binary compatible* or *source compatible*:
   upgrading Godot.
 
 GDExtension
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -36,7 +36,7 @@ Method ``open_library`` removed
 Since it was basically impossible to use these methods in any useful way, these methods have been removed. Use ``GDExtensionManager::load_extension`` and ``GDExtensionManager::unload_extension`` instead to correctly load and unload a GDExtension.
 
 Animation
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -59,7 +59,7 @@ Method ``on_bone_pose_update`` replaced by ``on_skeleton_update``
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 GUI nodes
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -70,7 +70,7 @@ Method ``remove_button`` changes parameter ``button`` type from ``Control`` to `
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Physics
-^^^^^^^
+~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -85,7 +85,7 @@ Property ``motion`` changes type from ``Vector2`` to ``Vector3``
     detects the enum prefix. New members were added in `GH-89851`_ to the enum that caused the enum members to be renamed.
 
 Rendering
-^^^^^^^^^
+~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -131,7 +131,7 @@ Method ``get_velocity_texture`` adds a new ``msaa`` optional parameter
     renamed.
 
 Text
-^^^^
+~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -147,7 +147,7 @@ Method ``_shaped_text_get_word_breaks`` adds a new ``skip_grapheme_flags`` param
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Audio
-^^^^^
+~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -157,7 +157,7 @@ Method ``play_stream`` adds new ``playback_type``, and ``bus`` optional paramete
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Navigation
-^^^^^^^^^^
+~~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -184,7 +184,7 @@ Method ``set_avoidance_layer_value`` removed
     replacement.
 
 TileMap
-^^^^^^^
+~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -195,7 +195,7 @@ Method ``get_occluder`` adds new ``flip_h``, ``flip_v``, and ``transpose`` optio
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 XR
-^^
+~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -207,7 +207,7 @@ Method ``get_tracker`` changes return type from ``XRPositionalTracker`` to ``XRT
 ========================================================================================================================  ===================  ====================  ====================  ===========
 
 Editor plugins
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 ========================================================================================================================  ===================  ====================  ====================  ===========
 Change                                                                                                                    GDScript Compatible  C# Binary Compatible  C# Source Compatible  Introduced
@@ -227,7 +227,7 @@ Behavior changes
 In 4.3 some behavior changes have been introduced, which might require you to adjust your project.
 
 Core
-^^^^
+~~~~
 
 .. note::
 
@@ -259,7 +259,7 @@ Core
     of the operating system that the program is running on.
 
 Animation
-^^^^^^^^^
+~~~~~~~~~
 
 .. note::
 
@@ -277,7 +277,7 @@ More information about the changes to Animation can be found in the
 article.
 
 GUI nodes
-^^^^^^^^^
+~~~~~~~~~
 
 .. note::
 
@@ -291,7 +291,7 @@ GUI nodes
     are children of a node with the ``auto_translate`` property set to ``false``.
 
 Multiplayer
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 .. note::
 
@@ -303,7 +303,7 @@ Multiplayer
     Note that high-level multiplayer facilities are only ever meant to be compatible with server and client using the same Godot version. It is recommended to implement some kind of version checking.
 
 Rendering
-^^^^^^^^^
+~~~~~~~~~
 
 .. note::
 
@@ -318,14 +318,14 @@ Rendering
     article for more information and guidance on how to fix common scenarios.
 
 TileMap
-^^^^^^^
+~~~~~~~
 
 .. note::
 
     ``TileMap`` layers were moved to individual nodes (`GH-87379`_ and `GH-89179`_).
 
 Android
-^^^^^^^
+~~~~~~~
 
 .. note::
 

+ 12 - 12
tutorials/migrating/upgrading_to_godot_4.rst

@@ -10,7 +10,7 @@ Before beginning the upgrade process, it's worth thinking about the advantages
 and disadvantages that upgrading would bring to your project.
 
 Advantages of upgrading
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 Along with the
 `new features present in 4.0 <https://godotengine.org/article/godot-4-0-sets-sail>`__,
@@ -26,7 +26,7 @@ See :ref:`doc_docs_changelog` for a list of pages documenting new features in
 Godot 4.0, and :ref:`doc_list_of_features` for a list of all features in Godot.
 
 Disadvantages of upgrading
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you don't *need* any features present in Godot 4.0, you may want to stay on
 Godot 3.x for the following reasons:
@@ -61,7 +61,7 @@ Godot 3.x for the following reasons:
     can be used to bypass this limitation, but they're too slow for gaming.
 
 Caveats of upgrading
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 .. UPDATE: Planned feature. There are several planned or missing features that
 .. may be added back in the future. Check this section for accuracy and update
@@ -119,7 +119,7 @@ Running the project upgrade tool
     folder to another location.
 
 Using the Project Manager
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To use the project upgrade tool:
 
@@ -143,7 +143,7 @@ you can use the command line to upgrade the project (see below). This will allow
 you to override the converter's size limits.
 
 Using the command line
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 To use the project upgrade tool from the :ref:`command line <doc_command_line_tutorial>`,
 it's recommended to validate the project conversion by running the Godot editor binary with the following arguments:
@@ -196,7 +196,7 @@ cater to all situations. Therefore, a large part of the upgrade process remains
 manual.
 
 Automatically renamed nodes and resources
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The list below refers to nodes which were simply renamed for consistency or
 clarity in Godot 4.0. The project upgrade tool renames them automatically in
@@ -372,7 +372,7 @@ a ``3D`` suffix to the old name:
 .. _doc_upgrading_to_godot_4_manual_rename:
 
 Manually renaming methods, properties, signals and constants
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Due to how the project upgrade tool works, not all
 :abbr:`API (Application Programming Interface)` renames can be performed automatically.
@@ -488,7 +488,7 @@ table to find its new name.
 - MainLoop's ``NOTIFICATION_WM_QUIT_REQUEST`` is now ``NOTIFICATION_WM_CLOSE_REQUEST``.
 
 Checking project settings
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Several project settings were renamed, and some of them had their enums changed
 in incompatible ways (such as shadow filter quality). This means you may need to
@@ -496,7 +496,7 @@ set some project settings' values again. Make sure the **Advanced** toggle is
 enabled in the project settings dialog so you can see all project settings.
 
 Checking Environment settings
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Graphics quality settings were moved from Environment properties to project
 settings. This was done to make runtime quality adjustments easier, without
@@ -513,7 +513,7 @@ methods that affect environment effects' quality. Only the "base" toggle of each
 environment effect and its visual knobs remain within the Environment resource.
 
 Updating shaders
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 There have been some changes to shaders that aren't covered by the upgrade tool. 
 You will need to make some manual changes, especially if your shader uses coordinate
@@ -549,7 +549,7 @@ This list is not exhaustive. If you made all the changes mentioned here and your
 shader still doesn't work, try asking for help in one of the `community channels <https://godotengine.org/community/>`__.
 
 Updating scripts to take backwards-incompatible changes into account
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Some changes performed between Godot 3.x and 4 are not renames, but they still
 break backwards compatibility due to different default behavior.
@@ -716,7 +716,7 @@ example, the following code snippet in Godot 3.x must be modified to work in 4.0
     for a full list of changes between Godot 3.x and 4.
 
 ArrayMesh resource compatibility breakage
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If you've saved an ArrayMesh resource to a ``.res`` or ``.tres`` file, the
 format used in 4.0 is not compatible with the one used in 3.x. You will need to

+ 5 - 5
tutorials/networking/webrtc.rst

@@ -13,14 +13,14 @@ One of Godot's great features is its ability to export to the HTML5/WebAssembly
 This is a great opportunity for both demos and full games, but used to come with some limitations. In the area of networking, browsers used to support only HTTPRequests until recently, when first WebSocket and then WebRTC were proposed as standards.
 
 WebSocket
-^^^^^^^^^
+~~~~~~~~~
 
 When the WebSocket protocol was standardized in December 2011, it allowed browsers to create stable and bidirectional connections to a WebSocket server. The protocol is a very powerful tool to send push notifications to browsers, and has been used to implement chats, turn-based games, etc.
 
 WebSockets, though, still use a TCP connection, which is good for reliability but not for latency, so not good for real-time applications like VoIP and fast-paced games.
 
 WebRTC
-^^^^^^
+~~~~~~
 
 For this reason, since 2010, Google started working on a new technology called WebRTC, which later on, in 2017, became a W3C candidate recommendation. WebRTC is a much more complex set of specifications, and relies on many other technologies behind the scenes (ICE, DTLS, SDP) to provide fast, real-time, and secure communication between two peers.
 
@@ -47,7 +47,7 @@ WebRTC is implemented in Godot via two main classes :ref:`WebRTCPeerConnection <
     blocked by Android.
 
 Minimal connection example
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This example will show you how to create a WebRTC connection between two peers in the same application.
 This is not very useful in real life, but will give you a good overview of how a WebRTC connection is set up.
@@ -105,7 +105,7 @@ This will print:
     P2 received: Hi from P2
 
 Local signaling example
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 This example expands on the previous one, separating the peers in two different scenes, and using a :ref:`singleton <doc_singletons_autoload>` as a signaling server.
 
@@ -220,6 +220,6 @@ This will print something similar to this:
     /root/main/@@2 received: Hi from /root/main/@@3
 
 Remote signaling with WebSocket
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 A more advanced demo using WebSocket for signaling peers and :ref:`WebRTCMultiplayerPeer <class_WebRTCMultiplayerPeer>` is available in the `godot demo projects <https://github.com/godotengine/godot-demo-projects>`_ under `networking/webrtc_signaling`.

+ 3 - 3
tutorials/networking/websocket.rst

@@ -33,7 +33,7 @@ details.
     blocked by Android.
 
 Minimal client example
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 This example will show you how to create a WebSocket connection to a remote server, and how to send and receive data.
 
@@ -96,7 +96,7 @@ This will print something similar to:
     Got data from server: Test packet
 
 Minimal server example
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 This example will show you how to create a WebSocket server that listens for remote connections, and how to send and receive data.
 
@@ -162,7 +162,7 @@ This will print (when a client connects) something similar to this:
     Got data from client 1348090059: Test packet ... echoing
 
 Advanced chat demo
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 A more advanced chat demo which optionally uses the multiplayer mid-level
 abstraction and a high-level multiplayer demo are available in the

+ 4 - 4
tutorials/performance/cpu_optimization.rst

@@ -168,7 +168,7 @@ language you choose. If your project is making a lot of calculations in its own
 code, consider moving those calculations to a faster language.
 
 GDScript
-^^^^^^^^
+~~~~~~~~
 
 :ref:`GDScript <toc-learn-scripting-gdscript>` is designed to be easy to use and iterate,
 and is ideal for making many types of games. However, in this language, ease of
@@ -177,7 +177,7 @@ calculations, consider moving some of your project to one of the other
 languages.
 
 C#
-^^
+~~
 
 :ref:`C# <toc-learn-scripting-C#>` is popular and has first-class support in Godot. It
 offers a good compromise between speed and ease of use. Beware of possible
@@ -186,13 +186,13 @@ common approach to workaround issues with garbage collection is to use *object
 pooling*, which is outside the scope of this guide.
 
 Other languages
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Third parties provide support for several other languages, including `Rust
 <https://github.com/godot-rust/gdext>`_.
 
 C++
-^^^
+~~~
 
 Godot is written in C++. Using C++ will usually result in the fastest code.
 However, on a practical level, it is the most difficult to deploy to end users'

+ 10 - 10
tutorials/performance/general_optimization.rst

@@ -23,7 +23,7 @@ To achieve the best results, we have two approaches:
 And preferably, we will use a blend of the two.
 
 Smoke and mirrors
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 Part of working smarter is recognizing that, in games, we can often get the
 player to believe they're in a world that is far more complex, interactive, and
@@ -31,7 +31,7 @@ graphically exciting than it really is. A good programmer is a magician, and
 should strive to learn the tricks of the trade while trying to invent new ones.
 
 The nature of slowness
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 To the outside observer, performance problems are often lumped together.
 But in reality, there are several different kinds of performance problems:
@@ -73,7 +73,7 @@ different hardware. It's often a good idea to measure timings on more than one
 device. This is especially the case if you're targeting mobile devices.
 
 Limitations
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 CPU profilers are often the go-to method for measuring performance. However,
 they don't always tell the whole story.
@@ -98,7 +98,7 @@ and also in terms of bug fixing). This can include hypothesis testing, and
 binary search.
 
 Hypothesis testing
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 Say, for example, that you believe sprites are slowing down your game.
 You can test this hypothesis by:
@@ -112,7 +112,7 @@ the performance drop?
   size, and measuring performance.
 
 Binary search
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 If you know that frames are taking much longer than they should, but you're
 not sure where the bottleneck lies. You could begin by commenting out
@@ -167,7 +167,7 @@ optimization is (by definition) undesirable, performant software is the result
 of performant design.
 
 Performant design
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 The danger with encouraging people to ignore optimization until necessary, is
 that it conveniently ignores that the most important time to consider
@@ -182,7 +182,7 @@ will often run many times faster than a mediocre design with low-level
 optimization.
 
 Incremental design
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 Of course, in practice, unless you have prior knowledge, you are unlikely to
 come up with the best design the first time. Instead, you'll often make a series
@@ -199,7 +199,7 @@ structures and algorithms for *cache locality* of data and linear access, rather
 than jumping around in memory.
 
 The optimization process
-^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 Assuming we have a reasonable design, and taking our lessons from Knuth, our
 first step in optimization should be to identify the biggest bottlenecks - the
@@ -216,7 +216,7 @@ The process is thus:
 3. Return to step 1.
 
 Optimizing bottlenecks
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 Some profilers will even tell you which part of a function (which data accesses,
 calculations) are slowing things down.
@@ -244,7 +244,7 @@ Appendix
 --------
 
 Bottleneck math
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 The proverb *"a chain is only as strong as its weakest link"* applies directly to
 performance optimization. If your project is spending 90% of the time in

+ 6 - 6
tutorials/performance/gpu_optimization.rst

@@ -42,7 +42,7 @@ as much as possible so they can be rendered together, or with the minimum number
 of these expensive state changes.
 
 2D batching
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 In 2D, the costs of treating each item individually can be prohibitively high -
 there can easily be thousands of them on the screen. This is why 2D *batching*
@@ -56,7 +56,7 @@ much cheaper with Vulkan compared to OpenGL, there is less of a need to have 2D
 batching (although it can still be beneficial in some cases).
 
 3D batching
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 In 3D, we still aim to minimize draw calls and state changes. However, it can be
 more difficult to batch together several objects into a single draw call. 3D
@@ -78,7 +78,7 @@ For more information on 3D specific optimizations, see
 :ref:`doc_optimizing_3d_performance`.
 
 Reuse shaders and materials
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The Godot renderer is a little different to what is out there. It's designed to
 minimize GPU state changes as much as possible. :ref:`StandardMaterial3D
@@ -192,7 +192,7 @@ their material to decrease the shading cost.
 you can reasonably afford to use.**
 
 Reading textures
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 The other factor in fragment shaders is the cost of reading textures. Reading
 textures is an expensive operation, especially when reading from several
@@ -205,7 +205,7 @@ mobiles.
 algorithms that require as few texture reads as possible.**
 
 Texture compression
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 By default, Godot compresses textures of 3D models when imported using video RAM
 (VRAM) compression. Video RAM compression isn't as efficient in size as PNG or
@@ -230,7 +230,7 @@ textures with transparency (only opaque), so keep this in mind.
    significantly due to their low resolution.
 
 Post-processing and shadows
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Post-processing effects and shadows can also be expensive in terms of fragment
 shading activity. Always test the impact of these on different hardware.

+ 3 - 3
tutorials/performance/optimizing_3d_performance.rst

@@ -15,7 +15,7 @@ take place in a small area, however things can quickly become problematic in
 larger levels.
 
 Occlusion culling
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 Walking around a town for example, you may only be able to see a few buildings
 in the street you are in, as well as the sky and a few birds flying overhead. As
@@ -85,7 +85,7 @@ Visibility ranges are also a good way to set up *impostors* for distant geometry
 (see below).
 
 Billboards and imposters
-^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 The simplest version of using transparency to deal with LOD is billboards. For
 example, you can use a single transparent quad to represent a tree at distance.
@@ -105,7 +105,7 @@ significantly. This can be complex to get working, but may be worth it depending
 on the type of project you are making.
 
 Use instancing (MultiMesh)
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If several identical objects have to be drawn in the same place or nearby, try
 using :ref:`MultiMesh <class_MultiMesh>` instead. MultiMesh allows the drawing

+ 10 - 10
tutorials/physics/interpolation/physics_interpolation_introduction.rst

@@ -43,7 +43,7 @@ What can we do about frames and ticks being out of sync?
 --------------------------------------------------------
 
 Lock the tick / frame rate together?
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The most obvious solution is to get rid of the problem, by ensuring there is a
 physics tick that coincides with every frame. This used to be the approach on old
@@ -57,7 +57,7 @@ huge variations in performance, as well as different monitor refresh rates. We n
 to come up with a better way of dealing with the problem.
 
 Adapt the tick rate?
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 Instead of designing the game at a fixed physics tick rate, we could allow the tick
 rate to scale according to the end users hardware. We could for example use a fixed
@@ -79,7 +79,7 @@ problematic for multiplayer games for competitive integrity, as running the game
 certain tick rates may be more advantageous than others.
 
 Lock the tick rate, but use interpolation to smooth frames in between physics ticks
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This has become one of the most popular approaches to deal with the problem,
 although it is optional and disabled by default.
@@ -104,7 +104,7 @@ our ideal world of smooth continuous movement.
 .. image:: img/fti_graph_interpolated.webp
 
 Linear interpolation
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 The simplest way to achieve this is linear interpolation, or lerping, which you may
 have used before.
@@ -119,7 +119,7 @@ is 30 units.
           the easiest in terms of explanation.
 
 The physics interpolation fraction
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If our physics ticks are happening 10 times per second (for this example), what
 happens if our rendered frame takes place at time 0.12 seconds? We can do some math
@@ -140,7 +140,7 @@ This is called the **physics interpolation fraction**, and is handily calculated
 for you by Godot. It can be retrieved on any frame by calling :ref:`Engine.get_physics_interpolation_fraction<class_Engine_method_get_physics_interpolation_fraction>`.
 
 Calculating the interpolated position
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Once we have the interpolation fraction, we can insert it into a standard linear
 interpolation equation. The X coordinate would thus be:
@@ -171,7 +171,7 @@ Let's break that down:
           the details as Godot will do all this for you.
 
 Smoothed transformations between physics ticks?
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Putting all this together shows that it should be possible to have a nice smooth
 estimation of the transform of objects between the current and previous physics
@@ -183,7 +183,7 @@ we are estimating the position of the object in the past. To be exact, we are
 estimating the position of the object *between 1 and 2 ticks* into the past.
 
 In the past
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 What does this mean? This scheme does work, but it does mean we are effectively
 introducing a delay between what we see on the screen, and where the objects
@@ -197,7 +197,7 @@ input situations, you may wish to turn off physics interpolation and use a
 different scheme, or use a high tick rate, which mitigates these delays.
 
 Why look into the past? Why not predict the future?
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 There is an alternative to this scheme, which is: instead of interpolating between
 the previous and current tick, we use maths to *extrapolate* into the future. We
@@ -215,7 +215,7 @@ significant downsides:
   the corrected path. This can be visually jarring.
 
 Fixed timestep interpolation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 In Godot this whole system is referred to as physics interpolation, but you may
 also hear it referred to as **"fixed timestep interpolation"**, as it is

+ 1 - 1
tutorials/physics/large_world_coordinates.rst

@@ -206,7 +206,7 @@ double-precision builds and vice versa. Text-based resources don't store a
 double-precision flag, as they don't require such a flag for correct reading.
 
 Known incompatibilities
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 - In a networked multiplayer game, the server and all clients should be using
   the same build type to ensure precision remains consistent across clients.

+ 10 - 10
tutorials/platform/android/android_in_app_purchases.rst

@@ -10,7 +10,7 @@ Usage
 -----
 
 Getting started
-***************
+~~~~~~~~~~~~~~~
 
 Make sure you have enabled and successfully set up :ref:`Android Gradle Builds <doc_android_gradle_build>`.
 Follow the compiling instructions on the ``GodotGooglePlayBilling`` `github page <https://github.com/godotengine/godot-google-play-billing>`__.
@@ -21,7 +21,7 @@ The plugin should now show up in the Android export settings, where you can enab
 
 
 Initialize the plugin
-*********************
+~~~~~~~~~~~~~~~~~~~~~
 
 To use the ``GodotGooglePlayBilling`` API:
 
@@ -79,7 +79,7 @@ Return values for ``getConnectionState()``:
 
 
 Query available items
-*********************
+~~~~~~~~~~~~~~~~~~~~~
 
 Once the API has connected, query SKUs using ``querySkuDetails()``. You must successfully complete
 an SKU query before calling the ``purchase()`` or ``queryPurchases()`` functions,
@@ -106,7 +106,7 @@ Example use of ``querySkuDetails()``:
 
 
 Query user purchases
-********************
+~~~~~~~~~~~~~~~~~~~~
 
 To retrieve a user's purchases, call the ``queryPurchases()`` function passing
 a string with the type of SKU to query. The SKU type string should be
@@ -153,7 +153,7 @@ For more information on processing the purchase items returned by
 
 
 Purchase an item
-****************
+~~~~~~~~~~~~~~~~
 
 To initiate the purchase flow for an item, call ``purchase()`` passing the
 product id string of the SKU you wish to purchase.
@@ -181,7 +181,7 @@ The payment flow will send a ``purchases_updated`` signal on success or a
 
 
 Processing a purchase item
-**************************
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The ``query_purchases_response`` and ``purchases_updated`` signals provide an array
 of purchases in :ref:`Dictionary <class_Dictionary>` format. The purchase Dictionary
@@ -210,7 +210,7 @@ Purchase fields:
 
 
 Check purchase state
-********************
+~~~~~~~~~~~~~~~~~~~~
 
 Check the ``purchase_state`` value of a purchase to determine if a
 purchase was completed or is still pending.
@@ -237,7 +237,7 @@ in the Google Play Billing Library documentation.
 
 
 Consumables
-***********
+~~~~~~~~~~~
 
 If your in-app item is not a one-time purchase but a consumable item (e.g. coins) which can be purchased
 multiple times, you can consume an item by calling ``consumePurchase()`` passing
@@ -271,7 +271,7 @@ Example use of ``consumePurchase()``:
 
 
 Acknowledging purchases
-***********************
+~~~~~~~~~~~~~~~~~~~~~~~
 
 If your in-app item is a one-time purchase, you must acknowledge the purchase by
 calling the ``acknowledgePurchase()`` function, passing the ``purchase_token``
@@ -307,7 +307,7 @@ Example use of ``acknowledgePurchase()``:
 
 
 Subscriptions
-*************
+~~~~~~~~~~~~~
 
 Subscriptions work mostly like regular in-app items. Use ``"subs"`` as the second
 argument to ``querySkuDetails()`` to get subscription details. Pass ``"subs"``

+ 3 - 3
tutorials/platform/android/android_library.rst

@@ -72,7 +72,7 @@ Below we break-down the steps used to create the GLTF Viewer app.
   - By declaring that the Activity will handle these configuration events using the `android:configChanges attribute <https://developer.android.com/guide/topics/manifest/activity-element#config>`_.
 
 1. Create the Android app
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -167,7 +167,7 @@ Below we break-down the steps used to create the GLTF Viewer app.
 
 
 2. Create the Godot project
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -228,7 +228,7 @@ Below we break-down the steps used to create the GLTF Viewer app.
 
 
 3. Build and run the app
-^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 Once you complete configuration of your Godot project, build and run the Android app.
 If set up correctly, the host Activity will initialize the embedded Godot Engine on startup.

+ 9 - 9
tutorials/platform/android/android_plugin.rst

@@ -22,7 +22,7 @@ Starting in Godot 4.2, Android plugins built on the v1 architecture are now depr
 Instead, Godot 4.2 introduces a new **Version 2 (v2)** architecture for Android plugins.
 
 v2 Architecture
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 .. note::
 
@@ -49,7 +49,7 @@ which is provided by the :ref:`Godot Android library <doc_android_library>`.
 The ``GodotPlugin`` class provides APIs to access the running Godot instance and hook into its lifecycle. It is loaded at runtime by the Godot engine.
 
 v2 Packaging format
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 v1 Android plugins required a custom ``gdap`` configuration file that was used by the Godot Editor to detect and load them.
 However this approach had several drawbacks, primary ones being that it lacked flexibility and departed from the `existing
@@ -106,7 +106,7 @@ To provide further understanding, here is a break-down of the steps used to crea
 
 
 Building a v2 Android plugin with GDExtension capabilities
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Similar to GDNative support in v1 Android plugins, v2 Android plugins support the ability to integrate GDExtension capabilities.
 
@@ -117,7 +117,7 @@ to set up your own Godot Android plugin project.
 
 
 Migrating a v1 Android plugin to v2
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Use the following steps if you have a v1 Android plugin you want to migrate to v2:
 
@@ -229,7 +229,7 @@ At build time, the contents of the ``export_scripts_template`` directory as well
 
 
 Packaging a v2 Android plugin with GDExtension capabilities
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 For GDExtension, we follow the same steps as for `Packaging a v2 Android plugin`_ and add the `GDExtension config file <https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/gdextension_cpp_example.html#using-the-gdextension-module>`_ in
 the same location as ``plugin.cfg``.
@@ -308,7 +308,7 @@ Using a v2 Android plugin
 
 
 Using a v2 Android plugin as an Android library
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Since they are also Android libraries, Godot v2 Android plugins can be stripped from their ``EditorExportPlugin`` packaging and provided as raw ``AAR`` binaries for use as libraries alongside the :ref:`Godot Android library <doc_android_library>` by Android apps.
 
@@ -327,7 +327,7 @@ Tips and Guidelines
 -------------------
 
 Simplify access to the exposed Java / Kotlin APIs
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To make it easier to access the exposed Java / Kotlin APIs in the Godot Editor, it's recommended to
 provide one (or multiple) gdscript wrapper class(es) for your plugin users to interface with.
@@ -355,7 +355,7 @@ For example::
             printerr("Initialization error")
 
 Support using the GDExtension functionality in the Godot Editor
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 If planning to use the GDExtension functionality in the Godot Editor, it is recommended that the
 GDExtension's native binaries are compiled not just for Android, but also for the OS onto which
@@ -367,7 +367,7 @@ editor. You can use the `godot-cpp-template <https://github.com/godotengine/godo
 github template for reference on how to do so.
 
 Godot crashes upon load
-^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~
 
 .. UPDATE: Not supported yet. When more complex datatypes are supported,
 .. update this section.

+ 3 - 3
tutorials/platform/web/html5_shell_classref.rst

@@ -19,7 +19,7 @@ settings, this is already part of the exported HTML page. To understand practica
 see :ref:`Custom HTML page for Web export <doc_customizing_html5_shell>`.
 
 Static Methods
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 +---------+-----------------------------------------------------------------------------------------------+
 | Promise | :js:attr:`load <Engine.load>` **(** string basePath **)**                                     |
@@ -30,7 +30,7 @@ Static Methods
 +---------+-----------------------------------------------------------------------------------------------+
 
 Instance Methods
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 +---------+---------------------------------------------------------------------------------------------------------------+
 | Promise | :js:attr:`init <Engine.prototype.init>` **(** *[ string basePath ]* **)**                                     |
@@ -183,7 +183,7 @@ An object used to configure the Engine instance based on godot export options, a
 templates if needed.
 
 Properties
-^^^^^^^^^^
+~~~~~~~~~~
 
 +-------------------+-------------------------------+
 | type              | name                          |

+ 9 - 9
tutorials/plugins/editor/making_plugins.rst

@@ -4,7 +4,7 @@ Making plugins
 ==============
 
 About plugins
-~~~~~~~~~~~~~
+-------------
 
 A plugin is a great way to extend the editor with useful tools. It can be made
 entirely with GDScript and standard scenes, without even reloading the editor.
@@ -19,7 +19,7 @@ is a custom node that you can add to any scene in the project, and the
 other is a custom dock added to the editor.
 
 Creating a plugin
-~~~~~~~~~~~~~~~~~
+-----------------
 
 Before starting, create a new empty project wherever you want. This will serve
 as a base to develop and test the plugins.
@@ -86,7 +86,7 @@ The main script file will instruct Godot what your plugin does in the editor
 once it is active.
 
 The script file
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Upon creation of the plugin, the dialog will automatically open the
 EditorPlugin script for you. The script has two requirements that you cannot
@@ -146,7 +146,7 @@ like this:
 This is a good template to use when creating new plugins.
 
 A custom node
-~~~~~~~~~~~~~
+-------------
 
 Sometimes you want a certain behavior in many nodes, such as a custom scene
 or control that can be reused. Instancing is helpful in a lot of cases, but
@@ -282,7 +282,7 @@ click the button, you can see some text in the console:
 .. image:: img/making_plugins-custom_node_console.webp
 
 A custom dock
-~~~~~~~~~~~~~
+-------------
 
 Sometimes, you need to extend the editor and add tools that are always available.
 An easy way to do it is to add a new dock with a plugin. Docks are just scenes
@@ -398,7 +398,7 @@ Note that, while the dock will initially appear at its specified position,
 the user can freely change its position and save the resulting layout.
 
 Checking the results
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 It's now time to check the results of your work. Open the **Project
 Settings** and click on the **Plugins** tab. Your plugin should be the only one
@@ -416,7 +416,7 @@ the settings window. You should now have a custom dock:
 .. _doc_making_plugins_autoload:
 
 Registering autoloads/singletons in plugins
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------------------
 
 It is possible for editor plugins to automatically register
 :ref:`autoloads <doc_singletons_autoload>` when the plugin is enabled.
@@ -471,7 +471,7 @@ Use the following code to register a singleton from an editor plugin:
     #endif
 
 Using sub-plugins
-~~~~~~~~~~~~~~~~~
+-----------------
 
 Often a plugin adds multiple things, for example a custom node and a panel.
 In those cases it might be easier to have a separate plugin script for each of those features.
@@ -506,7 +506,7 @@ Instead the main plugin script should enable and disable sub-plugins like this:
         EditorInterface.set_plugin_enabled(PLUGIN_NAME + "/panel", false)
 
 Going beyond
-~~~~~~~~~~~~
+------------
 
 Now that you've learned how to make basic plugins, you can extend the editor in
 several ways. Lots of functionality can be added to the editor with GDScript;

+ 7 - 7
tutorials/rendering/jitter_stutter.rst

@@ -74,7 +74,7 @@ Forcing your graphics card to use the maximum performance profile can also help
 reduce stuttering, at the cost of increased GPU power draw.
 
 Windows
-^^^^^^^
+~~~~~~~
 
 Windows is known to cause stutter in windowed games. This mostly depends on the
 hardware installed, drivers version and processes running in parallel (e.g.
@@ -109,7 +109,7 @@ Windows 10 and older versions.
     Windows to reduce jitter and input lag for fullscreen games.
 
 Linux
-^^^^^
+~~~~~
 
 Stutter may be visible on desktop Linux, but this is usually associated with
 different video drivers and compositors. Some compositors may also trigger this
@@ -128,21 +128,21 @@ to automatically apply optimizations (such as forcing the GPU performance profil
 when running specific processes.
 
 macOS
-^^^^^
+~~~~~
 
 Generally, macOS is stutter-free, although recently some bugs were reported when
 running on fullscreen (this is a macOS bug). If you have a machine exhibiting
 this behavior, please let us know.
 
 Android
-^^^^^^^
+~~~~~~~
 
 Generally, Android is stutter and jitter-free because the running activity gets
 all the priority. That said, there may be problematic devices (older Kindle Fire
 is known to be one). If you see this problem on Android, please let us know.
 
 iOS
-^^^
+~~~
 
 iOS devices are generally stutter-free, but older devices running newer versions
 of the operating system may exhibit problems. This is generally unavoidable.
@@ -151,7 +151,7 @@ Input lag
 ---------
 
 Project configuration
-^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~
 
 On platforms that support disabling V-Sync, input lag can be made less
 noticeable by disabling V-Sync in the project settings. This will however cause
@@ -206,7 +206,7 @@ done with caution.
     (``0`` is unlimited). These arguments can be used at the same time.
 
 Hardware/OS-specific
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 If your monitor supports it, consider enabling variable refresh rate
 (G-Sync/FreeSync) while leaving V-Sync enabled, then cap the framerate in the

+ 8 - 8
tutorials/rendering/multiple_resolutions.rst

@@ -130,7 +130,7 @@ Stretch settings are located in the project settings and provide several options
 .. image:: img/stretchsettings.webp
 
 Stretch Mode
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 The **Stretch Mode** setting defines how the base size is stretched to fit
 the resolution of the window or screen. The animations below use a "base
@@ -174,7 +174,7 @@ To configure the stretch mode at runtime from a script, use the
 and the :ref:`ContentScaleMode <enum_Window_ContentScaleMode>` enum).
 
 Stretch Aspect
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 The second setting is the stretch aspect. Note that this only takes effect if
 **Stretch Mode** is set to something other than **Disabled**.
@@ -258,7 +258,7 @@ and the :ref:`ContentScaleAspect <enum_Window_ContentScaleAspect>` enum).
 .. _doc_multiple_resolutions_stretch_scale:
 
 Stretch Scale
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 The **Scale** setting allows you to add an extra scaling factor on top of
 what the **Stretch** options above already provide. The default value of ``1.0``
@@ -284,7 +284,7 @@ To configure the stretch scale at runtime from a script, use the
 .. _doc_multiple_resolutions_stretch_scale_mode:
 
 Stretch Scale Mode
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 Since Godot 4.2, the **Stretch Scale Mode** setting allows you to constrain the
 automatically determined scale factor (as well as the manually specified
@@ -355,7 +355,7 @@ The following settings are recommended to support multiple resolutions and aspec
 ratios well.
 
 Desktop game
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 **Non-pixel art:**
 
@@ -400,7 +400,7 @@ Desktop game
     stretch mode.
 
 Mobile game in landscape mode
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Godot is configured to use landscape mode by default. This means you don't need
 to change the display orientation project setting.
@@ -429,7 +429,7 @@ to change the display orientation project setting.
     base window height to ``960``.
 
 Mobile game in portrait mode
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 - Set the base window width to ``720`` and window height to ``1280``.
 - Alternatively, if you're targeting high-end devices primarily, set the base
@@ -456,7 +456,7 @@ Mobile game in portrait mode
     base window height to ``1280``.
 
 Non-game application
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 - Set the base window width and height to the smallest window size that you intend to target.
   This is not required, but this ensures that you design your UI with small window sizes in mind.

+ 3 - 3
tutorials/scripting/c_sharp/c_sharp_collections.rst

@@ -67,7 +67,7 @@ Godot collections
 .. _doc_c_sharp_collections_packedarray:
 
 PackedArray
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 Godot packed arrays are implemented as an array of a specific type, allowing it to be
 more tightly packed as each element has the size of the specific type, not ``Variant``.
@@ -95,7 +95,7 @@ does not exist. See the list of :ref:`c_sharp_variant_compatible_types`.
 .. _doc_c_sharp_collections_array:
 
 Array
-^^^^^
+~~~~~
 
 Godot arrays are implemented as an array of ``Variant`` and can contain several elements
 of any type. In C#, the equivalent type is ``Godot.Collections.Array``.
@@ -189,7 +189,7 @@ operator []              Array[int] indexer
 .. _doc_c_sharp_collections_dictionary:
 
 Dictionary
-^^^^^^^^^^
+~~~~~~~~~~
 
 Godot dictionaries are implemented as a dictionary with ``Variant`` keys and values.
 In C#, the equivalent type is ``Godot.Collections.Dictionary``.

+ 6 - 6
tutorials/scripting/c_sharp/c_sharp_differences.rst

@@ -33,7 +33,7 @@ does not allow declaring them in namespaces.
 Most global constants were moved to their own enums.
 
 Constants
-^^^^^^^^^
+~~~~~~~~~
 
 In C#, only primitive types can be constant. For example, the ``TAU`` constant
 is replaced by the ``Mathf.Tau`` constant, but the ``Vector2.RIGHT`` constant
@@ -53,7 +53,7 @@ GDScript                 C#
 =======================  ===========================================================
 
 Math functions
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Math global functions, like ``abs``, ``acos``, ``asin``, ``atan`` and ``atan2``, are
 located under ``Mathf`` as ``Abs``, ``Acos``, ``Asin``, ``Atan`` and ``Atan2``.
@@ -66,7 +66,7 @@ contain other useful mathematical operations.
 .. _System.MathF: https://learn.microsoft.com/en-us/dotnet/api/system.mathf
 
 Random functions
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 Random global functions, like ``rand_range`` and ``rand_seed``, are located under ``GD``.
 Example: ``GD.RandRange`` and ``GD.RandSeed``.
@@ -78,7 +78,7 @@ Consider using `System.Random`_ or, if you need cryptographically strong randomn
 .. _System.Security.Cryptography.RandomNumberGenerator: https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator
 
 Other functions
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Many other global functions like ``print`` and ``var_to_str`` are located under ``GD``.
 Example: ``GD.Print`` and ``GD.VarToStr``.
@@ -95,7 +95,7 @@ GDScript                      C#
 ============================  =======================================================
 
 Tips
-^^^^
+~~~~
 
 Sometimes it can be useful to use the ``using static`` directive. This directive allows
 to access the members and nested types of a class without specifying the class name.
@@ -115,7 +115,7 @@ Example:
     }
 
 Full list of equivalences
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 List of Godot's global scope functions and their equivalent in C#:
 

+ 3 - 3
tutorials/scripting/c_sharp/c_sharp_exports.rst

@@ -497,7 +497,7 @@ certain C# arrays and the collection types defined in the ``Godot.Collections``
 namespace are Variant-compatible, therefore, only those types can be exported.
 
 Exporting Godot arrays
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 .. code-block:: csharp
 
@@ -537,7 +537,7 @@ drag-and-dropping multiple files from the FileSystem dock.
     public Godot.Collections.Array<PackedScene> Scenes { get; set; }
 
 Exporting Godot dictionaries
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. code-block:: csharp
 
@@ -571,7 +571,7 @@ The default value of Godot dictionaries is null. A different default can be spec
     };
 
 Exporting C# arrays
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 C# arrays can exported as long as the element type is a :ref:`Variant-compatible type <c_sharp_variant_compatible_types>`.
 

+ 1 - 1
tutorials/scripting/debug/output_panel.rst

@@ -69,7 +69,7 @@ To get more advanced formatting capabilities, consider using
 .. _doc_output_panel_printing_rich_text:
 
 Printing rich text
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 Using :ref:`print_rich() <class_@GlobalScope_method_print_rich>`, you can print
 rich text to the editor Output panel and standard output (visible when the user

+ 17 - 17
tutorials/scripting/debug/overview_of_debugging_tools.rst

@@ -39,7 +39,7 @@ You can find these options in the **Debug** editor menu.
 Here are the descriptions of the options:
 
 Deploy with Remote Debug
-++++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 When this option is enabled, using one-click deploy will make the executable
 attempt to connect to this computer's IP so the running project can be debugged.
@@ -48,7 +48,7 @@ device).
 You don't need to enable it to use the GDScript debugger locally.
 
 Small Deploy with Network Filesystem
-++++++++++++++++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This option speeds up testing for games with a large footprint on remote devices.
 
@@ -60,38 +60,38 @@ Also, on Android, the game is deployed using the USB cable to speed up
 deployment.
 
 Visible Collision Shapes
-++++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 When this option is enabled, collision shapes and raycast nodes (for 2D and 3D)
 will be visible in the running project.
 
 Visible Paths
-+++++++++++++
+~~~~~~~~~~~~~
 
 When this option is enabled, curve resources used by path nodes will be visible
 in the running project.
 
 Visible Navigation
-++++++++++++++++++
+~~~~~~~~~~~~~~~~~~
 
 When this option is enabled, navigation meshes, and polygons will be visible in
 the running project.
 
 Visible Avoidance
-+++++++++++++++++
+~~~~~~~~~~~~~~~~~
 
 When this option is enabled, avoidance object shapes, radiuses, and velocities
 will be visible in the running project.
 
 Debug CanvasItem Redraws
-++++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 When this option is enabled, redraw requests of 2D objects will become visible
 (as a short flash) in the running project.
 This is useful to troubleshoot low processor mode.
 
 Synchronize Scene Changes
-++++++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 When this option is enabled, any changes made to the scene in the editor will be
 replicated in the running project.
@@ -99,20 +99,20 @@ When used remotely on a device, this is more efficient when the network
 filesystem option is enabled.
 
 Synchronize Script Changes
-+++++++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 When this option is enabled, any changes made to the script in the editor will
 be reloaded in the running project. When used
 remotely on a device, this is more efficient with the network filesystem.
 
 Keep Debug Server Open
-++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~
 
 When this option is enabled, the editor debug server will stay open and listen
 for new sessions started outside of the editor itself.
 
 Customize Run Instances...
-++++++++++++++++++++++++++
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 This opens a dialog allowing you to tell Godot to run multiple instances of the
 game at once, and to specify the command line arguments for each instance. This
@@ -242,37 +242,37 @@ In the project settings, there is a **Debug** category with subcategories which
 control different things. Enable **Advanced Settings** to change these settings.
 
 Settings
-++++++++
+~~~~~~~~
 
 These are some general settings such as printing the current FPS
 to the **Output** panel, the maximum amount of functions when profiling
 and others.
 
 File Logging
-++++++++++++
+~~~~~~~~~~~~
 
 These settings allow you to log console output and error messages to files.
 
 GDScript
-++++++++
+~~~~~~~~
 
 These settings allow you to toggle specific GDScript warnings, such as for
 unused variables. You can also turn off warnings completely. See
 :ref:`doc_gdscript_warning_system` for more information.
 
 Shader Language
-+++++++++++++++
+~~~~~~~~~~~~~~~
 
 These settings allow you to toggle specific shader warnings, such as for
 unused variables. You can also turn off warnings completely.
 
 Canvas Items
-++++++++++++
+~~~~~~~~~~~~
 
 These settings are for canvas item redraw debugging.
 
 Shapes
-++++++
+~~~~~~
 
 Shapes are where you can adjust the color of shapes that only appear for
 debugging purposes, such as collision and navigation shapes.

+ 5 - 5
tutorials/scripting/debug/the_profiler.rst

@@ -15,7 +15,7 @@ You could try to optimize everything and run the game repeatedly, but you can be
 smarter about this and narrow down the possibilities. Enter Godot's profiler.
 
 An overview of the profiler
-+++++++++++++++++++++++++++
+---------------------------
 
 You can open the profiler by opening the **Debugger** panel and clicking on the
 **Profiler** tab.
@@ -42,7 +42,7 @@ You can clear the data by clicking the **Clear** button anytime. Use the
 measurements panel and the graph will update accordingly.
 
 The measured data
-+++++++++++++++++
+-----------------
 
 The profiler's interface is split into two. There is a list of functions on the
 left and the performance graph on the right.
@@ -77,7 +77,7 @@ left. In the top right, there is also a frame counter where you can manually
 adjust the frame you are looking at more granularly.
 
 Scope of measurement and measurement windows
-++++++++++++++++++++++++++++++++++++++++++++
+--------------------------------------------
 
 You can change what measurement you are looking at using the **Measure**
 drop-down menu. By default, it starts with Frame Time and lists the time it
@@ -110,7 +110,7 @@ spent more time waiting for some other function call to finish than not, and
 `find_nearest_neighbor` is **actually** slow.
 
 Debugging slow code with the profiler
-+++++++++++++++++++++++++++++++++++++
+-------------------------------------
 
 Finding slow code with the profiler boils down to running your game and watching
 the performance graph as it draws. When an unacceptable spike occurs in the
@@ -122,7 +122,7 @@ Under the Script functions, turn on the checkboxes for some functions to find
 which take time. These are the functions you need to review and optimize.
 
 Measuring manually in microseconds
-++++++++++++++++++++++++++++++++++
+----------------------------------
 
 If your function is complex, it could be challenging to figure out which part
 needs optimization. Is it your math or the way you access other pieces of data

+ 3 - 3
tutorials/scripting/gdextension/gdextension_file.rst

@@ -69,7 +69,7 @@ Here is an example of what that can look like:
 Here are lists of some of the available built-in options (for more look at the :ref:`feature tags <doc_feature_tags>`):
 
 Running system
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 +-------------------------------+------------------------------------------------------------------------------------------------------+
 | Flag                          | Description                                                                                          |
@@ -92,7 +92,7 @@ Running system
 +-------------------------------+------------------------------------------------------------------------------------------------------+
 
 Build
-^^^^^
+~~~~~
 
 +-------------------------------+------------------------------------------------------------------------------------------------------+
 | Flag                          | Description                                                                                          |
@@ -105,7 +105,7 @@ Build
 +-------------------------------+------------------------------------------------------------------------------------------------------+
 
 Architecture
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 +-------------------------------+------------------------------------------------------------------------------------------------------+
 | Flag                          | Description                                                                                          |

+ 2 - 2
tutorials/scripting/gdextension/what_is_gdextension.rst

@@ -28,7 +28,7 @@ you should choose depends on your needs.
     break compatibility in order to fix major bugs or include critical features.
 
 Advantages of GDExtension
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Unlike modules, GDExtension doesn't require compiling the engine's source code,
 making it easier to distribute your work. It gives you access to most of the API
@@ -50,7 +50,7 @@ Also:
   incremental builds, this process is slower than using GDExtension.
 
 Advantages of C++ modules
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 We recommend :ref:`C++ modules <doc_custom_modules_in_cpp>` in cases where
 GDExtension isn't enough:

+ 17 - 17
tutorials/shaders/converting_glsl_to_godot_shaders.rst

@@ -18,7 +18,7 @@ quality-of-life features. Accordingly, most features available in GLSL are
 available in Godot's shading language.
 
 Shader programs
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 In GLSL, each shader uses a separate program. You have one program for the
 vertex shader and one for the fragment shader. In Godot, you have a single
@@ -30,7 +30,7 @@ fragment and vertex shaders in one file. In GLSL, the vertex and fragment
 programs cannot share variables except when varyings are used.
 
 Vertex attributes
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 In GLSL, you can pass in per-vertex information using attributes and have the
 flexibility to pass in as much or as little as you want. In Godot, you have a
@@ -39,7 +39,7 @@ set number of input attributes, including ``VERTEX`` (position), ``COLOR``,
 of the documentation comes with a complete list of its vertex attributes.
 
 gl_Position
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 ``gl_Position`` receives the final position of a vertex specified in the vertex
 shader. It is specified by the user in clip space. Typically, in GLSL, the model
@@ -56,7 +56,7 @@ to ``mat4(1.0)`` in order to nullify the final transform from view space to clip
 space.
 
 Varyings
-^^^^^^^^
+~~~~~~~~
 
 Varyings are a type of variable that can be passed from the vertex shader to the
 fragment shader. In modern GLSL (3.0 and up), varyings are defined with the
@@ -64,7 +64,7 @@ fragment shader. In modern GLSL (3.0 and up), varyings are defined with the
 defined with ``out`` in the vertex shader and ``in`` inside the fragment shader.
 
 Main
-^^^^
+~~~~
 
 In GLSL, each shader program looks like a self-contained C-style program.
 Accordingly, the main entry point is ``main``. If you are copying a vertex
@@ -72,7 +72,7 @@ shader, rename ``main`` to ``vertex`` and if you are copying a fragment shader,
 rename ``main`` to ``fragment``.
 
 Macros
-^^^^^^
+~~~~~~
 
 The :ref:`Godot shader preprocessor<doc_shader_preprocessor>` supports the following macros:
 
@@ -82,7 +82,7 @@ The :ref:`Godot shader preprocessor<doc_shader_preprocessor>` supports the follo
 * ``#pragma disable_preprocessor``, which disables preprocessing for the rest of the file
 
 Variables
-^^^^^^^^^
+~~~~~~~~~
 
 GLSL has many built-in variables that are hard-coded. These variables are not
 uniforms, so they are not editable from the main program.
@@ -106,14 +106,14 @@ uniforms, so they are not editable from the main program.
 .. _glsl_coordinates:
 
 Coordinates
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 ``gl_FragCoord`` in GLSL and ``FRAGCOORD`` in the Godot shading language use the
 same coordinate system. If using UV in Godot, the y-coordinate will be flipped
 upside down.
 
 Precision
-^^^^^^^^^
+~~~~~~~~~
 
 In GLSL, you can define the precision of a given type (float or int) at the top
 of the shader with the ``precision`` keyword. In Godot, you can set the
@@ -133,13 +133,13 @@ Shadertoy does not give the user full control over the shader. It handles all
 the input and uniforms and only lets the user write the fragment shader.
 
 Types
-^^^^^
+~~~~~
 
 Shadertoy uses the webgl spec, so it runs a slightly different version of GLSL.
 However, it still has the regular types, including constants and macros.
 
 mainImage
-^^^^^^^^^
+~~~~~~~~~
 
 The main point of entry to a Shadertoy shader is the ``mainImage`` function.
 ``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which
@@ -149,7 +149,7 @@ them as parameters yourself. Anything in the ``mainImage`` function should be
 copied into the ``fragment`` function when porting to Godot.
 
 Variables
-^^^^^^^^^
+~~~~~~~~~
 
 In order to make writing fragment shaders straightforward and easy, Shadertoy
 handles passing a lot of helpful information from the main program into the
@@ -187,7 +187,7 @@ what they can pass in as a substitute.
 +---------------------+---------+------------------------+-----------------------------------------------------+
 
 Coordinates
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 ``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL
 <glsl_coordinates>` and ``FRAGCOORD`` in Godot.
@@ -206,21 +206,21 @@ Shaders provides a `page <https://thebookofshaders.com/04>`_ on running shaders
 in various frameworks.
 
 Types
-^^^^^
+~~~~~
 
 The Book of Shaders uses the webgl spec, so it runs a slightly different version
 of GLSL. However, it still has the regular types, including constants and
 macros.
 
 Main
-^^^^
+~~~~
 
 The entry point for a Book of Shaders fragment shader is ``main``, just like in
 GLSL. Everything written in a Book of Shaders ``main`` function should be copied
 into Godot's ``fragment`` function.
 
 Variables
-^^^^^^^^^
+~~~~~~~~~
 
 The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also
 implements fewer uniforms than Shadertoy.
@@ -240,7 +240,7 @@ implements fewer uniforms than Shadertoy.
 +---------------------+---------+------------------------+-----------------------------------------------------+
 
 Coordinates
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 The Book of Shaders uses the same coordinate system as
 :ref:`GLSL <glsl_coordinates>`.

+ 3 - 3
tutorials/shaders/introduction_to_shaders.rst

@@ -136,7 +136,7 @@ Each shader type has different render modes. See the reference for each shader
 type for a complete list of render modes.
 
 Vertex processor
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 The ``vertex()`` processing function is called once for every vertex in
 ``spatial`` and ``canvas_item`` shaders.
@@ -151,7 +151,7 @@ data yourself; see the :ref:`Spatial shader doc <doc_spatial_shader>` for an
 example.
 
 Fragment processor
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 The ``fragment()`` processing function is used to set up the Godot material
 parameters per pixel. This code runs on every visible pixel the object or
@@ -170,7 +170,7 @@ code out. Therefore, you will not waste calculations on the effects that you do
 not use.
 
 Light processor
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 The ``light()`` processor runs per pixel too, and it runs once for every light
 that affects the object. It does not run if no lights affect the object. It

+ 8 - 8
tutorials/shaders/screen-reading_shaders.rst

@@ -4,7 +4,7 @@ Screen-reading shaders
 ======================
 
 Introduction
-~~~~~~~~~~~~
+------------
 
 It is often desired to make a shader that reads from the same
 screen to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very
@@ -18,7 +18,7 @@ to a back-buffer and then read from it while drawing. Godot provides a
 few tools that make this process easy.
 
 Screen texture
-~~~~~~~~~~~~~~
+--------------
 
 Godot :ref:`doc_shading_language` has a special texture to access the already
 rendered contents of the screen. It is used by specifying a hint when declaring
@@ -51,7 +51,7 @@ you.
     as with the ``0.0`` LOD parameter.
 
 Screen texture example
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
 
 The screen texture can be used for many things. There is a
 special demo for *Screen Space Shaders*, that you can download to see
@@ -79,7 +79,7 @@ and saturation:
     }
 
 Behind the scenes
-~~~~~~~~~~~~~~~~~
+-----------------
 
 While this seems magical, it's not. In 2D, when ``hint_screen_texture`` is first
 found in a node that is about to be drawn, Godot does a full-screen copy to a
@@ -125,7 +125,7 @@ with a camera in the same position as your object, and then use the
 :ref:`Viewport's <class_Viewport>` texture instead of the screen texture.
 
 Back-buffer logic
-~~~~~~~~~~~~~~~~~
+-----------------
 
 So, to make it clearer, here's how the backbuffer copying logic works in 2D in
 Godot:
@@ -148,7 +148,7 @@ Godot:
 
 
 Depth texture
-~~~~~~~~~~~~~
+-------------
 
 For 3D shaders, it's also possible to access the screen depth buffer. For this,
 the ``hint_depth_texture`` hint is used. This texture is not linear; it must be
@@ -167,7 +167,7 @@ The following code retrieves the 3D position below the pixel being drawn:
     }
 
 Normal-roughness texture
-~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------
 
 .. note::
 
@@ -189,7 +189,7 @@ roughness of objects rendered in the depth prepass. The normal is stored in the
         screen_normal = screen_normal * 2.0 - 1.0;
 
 Redefining screen textures
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------
 
 The screen texture hints (``hint_screen_texture``, ``hint_depth_texture``, and
 ``hint_normal_roughness_texture``) can be used with multiple uniforms. For

+ 7 - 7
tutorials/shaders/shader_reference/canvas_item_shader.rst

@@ -11,7 +11,7 @@ CanvasItem shaders contain fewer built-in variables and functionality than
 with vertex, fragment, and light processor functions.
 
 Render modes
-^^^^^^^^^^^^
+------------
 
 +---------------------------------+----------------------------------------------------------------------+
 | Render mode                     | Description                                                          |
@@ -39,14 +39,14 @@ Render modes
 +---------------------------------+----------------------------------------------------------------------+
 
 Built-ins
-^^^^^^^^^
+---------
 
 Values marked as ``in`` are read-only. Values marked as ``out`` can optionally be written to and will
 not necessarily contain sensible values. Values marked as ``inout`` provide a sensible default
 value, and can optionally be written to. Samplers cannot be written to so they are not marked.
 
 Global built-ins
-^^^^^^^^^^^^^^^^
+----------------
 
 Global built-ins are available everywhere, including custom functions.
 
@@ -73,7 +73,7 @@ Global built-ins are available everywhere, including custom functions.
 +-------------------+------------------------------------------------------------------------------------------+
 
 Vertex built-ins
-^^^^^^^^^^^^^^^^
+----------------
 
 Vertex data (``VERTEX``) is presented in local space (pixel coordinates, relative to the Node2D's origin).
 If not written to, these values will not be modified and be passed through as they came.
@@ -148,7 +148,7 @@ is usually:
 
 
 Fragment built-ins
-^^^^^^^^^^^^^^^^^^
+------------------
 
 COLOR and TEXTURE
 ~~~~~~~~~~~~~~~~~
@@ -261,7 +261,7 @@ it to the ``NORMAL_MAP`` property. Godot will handle converting it for use in 2D
 +---------------------------------------------+---------------------------------------------------------------+
 
 Light built-ins
-^^^^^^^^^^^^^^^
+---------------
 
 Light processor functions work differently in Godot 4.x than they did in Godot
 3.x. In Godot 4.x all lighting is done during the regular draw pass. In other
@@ -332,7 +332,7 @@ Below is an example of a light shader that takes a CanvasItem's normal map into
 +----------------------------------+------------------------------------------------------------------------------+
 
 SDF functions
-^^^^^^^^^^^^^
+-------------
 
 There are a few additional functions implemented to sample an automatically
 generated Signed Distance Field texture. These functions available for the ``fragment()``

+ 3 - 3
tutorials/shaders/shader_reference/fog_shader.rst

@@ -19,14 +19,14 @@ every froxel that is touched by an axis aligned bounding box of the associated
 touch a given :ref:`FogVolume <class_FogVolume>` will still be used.
 
 Built-ins
-^^^^^^^^^
+---------
 
 Values marked as ``in`` are read-only. Values marked as ``out`` can optionally 
 be written to and will not necessarily contain sensible values. Samplers cannot 
 be written to so they are not marked.
 
 Global built-ins
-^^^^^^^^^^^^^^^^
+----------------
 
 Global built-ins are available everywhere, including in custom functions.
 
@@ -54,7 +54,7 @@ Global built-ins are available everywhere, including in custom functions.
 +-----------------------------------+------------------------------------------------------------------------------------------+
 
 Fog built-ins
-^^^^^^^^^^^^^
+-------------
 
 All of the output values of fog volumes overlap one another. This allows
 :ref:`FogVolumes <class_FogVolume>` to be rendered efficiently as they can all

+ 7 - 7
tutorials/shaders/shader_reference/particle_shader.rst

@@ -28,7 +28,7 @@ take place over multiple frames.
     on the CPU.
 
 Render modes
-^^^^^^^^^^^^
+------------
 
 +--------------------------+-------------------------------------------+
 | Render mode              | Description                               |
@@ -43,14 +43,14 @@ Render modes
 +--------------------------+-------------------------------------------+
 
 Built-ins
-^^^^^^^^^
+---------
 
 Values marked as ``in`` are read-only. Values marked as ``out`` can optionally be written to and will
 not necessarily contain sensible values. Values marked as ``inout`` provide a sensible default
 value, and can optionally be written to. Samplers cannot be written to so they are not marked.
 
 Global built-ins
-^^^^^^^^^^^^^^^^
+----------------
 
 Global built-ins are available everywhere, including custom functions.
 
@@ -76,7 +76,7 @@ Global built-ins are available everywhere, including custom functions.
 +-------------------+------------------------------------------------------------------------------------------+
 
 Start and Process built-ins
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
+---------------------------
 
 These properties can be accessed from both the ``start()`` and ``process()`` functions.
 
@@ -133,7 +133,7 @@ These properties can be accessed from both the ``start()`` and ``process()`` fun
           to ``true``. In a ShaderMaterial, access it with the ``COLOR`` variable.
 
 Start built-ins
-^^^^^^^^^^^^^^^
+---------------
 
 +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | Built-in                        | Description                                                                                                                                                                           |
@@ -150,7 +150,7 @@ Start built-ins
 +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Process built-ins
-^^^^^^^^^^^^^^^^^
+-----------------
 
 +------------------------------------+-------------------------------------------------------------------------------------------------------+
 | Built-in                           | Description                                                                                           |
@@ -167,7 +167,7 @@ Process built-ins
 +------------------------------------+-------------------------------------------------------------------------------------------------------+
 
 Process functions
-^^^^^^^^^^^^^^^^^
+-----------------
 
 ``emit_subparticle()`` is currently the only custom function supported by
 particles shaders. It allows users to add a new particle with specified

+ 13 - 13
tutorials/shaders/shader_reference/shader_preprocessor.rst

@@ -30,7 +30,7 @@ Directives
 ----------
 
 General syntax
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 - Preprocessor directives do not use brackets (``{}``), but can use parentheses.
 - Preprocessor directives **never** end with semicolons (with the exception of ``#define``,
@@ -40,7 +40,7 @@ General syntax
   the preprocessor statement.
 
 #define
-^^^^^^^
+~~~~~~~
 
 **Syntax:** ``#define <identifier> [replacement_code]``.
 
@@ -110,7 +110,7 @@ Defining a ``#define`` for an identifier that is already defined results in an
 error. To prevent this, use ``#undef <identifier>``.
 
 #undef
-^^^^^^
+~~~~~~
 
 **Syntax:** ``#undef identifier``
 
@@ -138,7 +138,7 @@ The ``#undef`` directive may be used to cancel a previously defined ``#define``
 Without ``#undef`` in the above example, there would be a macro redefinition error.
 
 #if
-^^^
+~~~
 
 **Syntax:** ``#if <condition>``
 
@@ -232,7 +232,7 @@ high amounts of :abbr:`VGPRs (Vector General-Purpose Register)` (which can be ca
 having too many branches) can still slow down shader execution significantly.
 
 #elif
-^^^^^
+~~~~~
 
 The ``#elif`` directive stands for "else if" and checks the condition passed if
 the above ``#if`` evaluated to ``false``. ``#elif`` can only be used within an
@@ -267,7 +267,7 @@ Like with ``#if``, the ``defined()`` preprocessor function can be used:
     #endif
 
 #ifdef
-^^^^^^
+~~~~~~
 
 **Syntax:** ``#ifdef <identifier>``
 
@@ -303,7 +303,7 @@ than two branches:
     #endif // This ends `SHADOW_QUALITY_HIGH`'s branch.
 
 #ifndef
-^^^^^^^
+~~~~~~~
 
 **Syntax:** ``#ifndef <identifier>``
 
@@ -327,7 +327,7 @@ where ``#ifdef`` would never match, and vice versa.
     #endif
 
 #else
-^^^^^
+~~~~~
 
 **Syntax:** ``#else``
 
@@ -349,14 +349,14 @@ Defines the optional block which is included when the previously defined ``#if``
     }
 
 #endif
-^^^^^^
+~~~~~~
 
 **Syntax:** ``#endif``
 
 Used as terminator for the ``#if``, ``#ifdef``, ``#ifndef`` or subsequent ``#else`` directives.
 
 #error
-^^^^^^
+~~~~~~
 
 **Syntax:** ``#error <message>``
 
@@ -374,7 +374,7 @@ defined value.
     #endif
 
 #include
-^^^^^^^^
+~~~~~~~~
 
 **Syntax:** ``#include "path"``
 
@@ -440,7 +440,7 @@ Example base shader (using the include file we created above):
     }
 
 #pragma
-^^^^^^^
+~~~~~~~
 
 **Syntax:** ``#pragma value``
 
@@ -463,7 +463,7 @@ Built-in defines
 ----------------
 
 Current renderer
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 Since Godot 4.4, you can check which renderer is currently used with the built-in
 defines ``CURRENT_RENDERER``, ``RENDERER_COMPATIBILITY``, ``RENDERER_MOBILE``,

+ 4 - 4
tutorials/shaders/shader_reference/sky_shader.rst

@@ -102,7 +102,7 @@ and the :ref:`radiance size <class_Sky_property_radiance_size>` to get the
 desired balance between performance and visual fidelity.
 
 Render modes
-^^^^^^^^^^^^
+------------
 
 Subpasses allow you to do more expensive calculations at a lower resolution
 to speed up your shaders. For example the following code renders clouds at
@@ -137,14 +137,14 @@ a lower resolution than the rest of the sky:
 +--------------------------+-----------------------------------------------------------------------+
 
 Built-ins
-^^^^^^^^^
+---------
 
 Values marked as ``in`` are read-only. Values marked as ``out`` can optionally 
 be written to and will not necessarily contain sensible values. Samplers cannot 
 be written to so they are not marked.
 
 Global built-ins
-^^^^^^^^^^^^^^^^
+----------------
 
 Global built-ins are available everywhere, including in custom functions.
 
@@ -194,7 +194,7 @@ There are 4 ``LIGHTX`` lights, accessed as ``LIGHT0``, ``LIGHT1``, ``LIGHT2``, a
 +---------------------------------+--------------------------------------------------------------------------------------------------------------------------+
 
 Sky built-ins
-^^^^^^^^^^^^^
+-------------
 
 +-------------------------------+-------------------------------------------------------------------------------------------------+
 | Built-in                      | Description                                                                                     |

+ 6 - 6
tutorials/shaders/shader_reference/spatial_shader.rst

@@ -9,7 +9,7 @@ Spatial shaders are highly configurable with different render modes and differen
 write vertex, fragment, and light processor functions to affect how objects are drawn.
 
 Render modes
-^^^^^^^^^^^^
+------------
 For visual examples of these render modes, see :ref:`Standard Material 3D and ORM Material 3D<doc_standard_material_3d>`.
 
 +-------------------------------+------------------------------------------------------------------------------------------------------+
@@ -87,14 +87,14 @@ For visual examples of these render modes, see :ref:`Standard Material 3D and OR
 +-------------------------------+------------------------------------------------------------------------------------------------------+
 
 Built-ins
-^^^^^^^^^
+---------
 
 Values marked as ``in`` are read-only. Values marked as ``out`` can optionally be written to and will
 not necessarily contain sensible values. Values marked as ``inout`` provide a sensible default
 value, and can optionally be written to. Samplers cannot be written to so they are not marked.
 
 Global built-ins
-^^^^^^^^^^^^^^^^
+----------------
 
 Global built-ins are available everywhere, including custom functions.
 
@@ -126,7 +126,7 @@ Global built-ins are available everywhere, including custom functions.
 +-----------------------------+-----------------------------------------------------------------------------------------------------+
 
 Vertex built-ins
-^^^^^^^^^^^^^^^^
+----------------
 
 Vertex data (``VERTEX``, ``NORMAL``, ``TANGENT``, and ``BITANGENT``) are presented in model space
 (also called local space). If not written to, these values will not be modified and be 
@@ -268,7 +268,7 @@ shader, this value can be used as desired.
     ``INV_VIEW_MATRIX`` is the matrix used for rendering the object in that pass, unlike ``MAIN_CAM_INV_VIEW_MATRIX``, which is the matrix of the camera in the scene. In the shadow pass, ``INV_VIEW_MATRIX``'s view is based on the camera that is located at the position of the light.
 
 Fragment built-ins
-^^^^^^^^^^^^^^^^^^
+------------------
 
 The default use of a Godot fragment processor function is to set up the material properties of your object
 and to let the built-in renderer handle the final shading. However, you are not required to use all
@@ -421,7 +421,7 @@ these properties, and if you don't write to them, Godot will optimize away the c
     for more information and ways to avoid issues.
 
 Light built-ins
-^^^^^^^^^^^^^^^
+---------------
 
 Writing light processor functions is completely optional. You can skip the ``light()`` function by using
 the ``unshaded`` render mode. If no light function is written, Godot will use the material properties 

+ 6 - 6
tutorials/shaders/visual_shaders.rst

@@ -157,7 +157,7 @@ Below are some special nodes that are worth knowing about. The list is not
 exhaustive and might be expanded with more nodes and examples.
 
 Expression node
-+++++++++++++++
+~~~~~~~~~~~~~~~
 
 The ``Expression`` node allows you to write Godot Shading Language (GLSL-like)
 expressions inside your visual shaders. The node has buttons to add any amount
@@ -175,7 +175,7 @@ procedures, and use all the power of text-based shaders, such as loops, the
 .. image:: img/vs_expression2.png
 
 Reroute node
-++++++++++++
+~~~~~~~~~~~~
 
 The ``Reroute`` node is used purely for organizational purposes. In a complicated
 shader with many nodes you may find that the paths between nodes can make
@@ -191,7 +191,7 @@ appears.
 .. image:: img/vs_reroute_handle.webp
 
 Fresnel node
-++++++++++++
+~~~~~~~~~~~~
 
 The ``Fresnel`` node is designed to accept normal and view vectors and produces
 a scalar which is the saturated dot product between them. Additionally, you can
@@ -201,7 +201,7 @@ adding a rim-like lighting effect to objects.
 .. image:: img/vs_fresnel.webp
 
 Boolean node
-++++++++++++
+~~~~~~~~~~~~
 
 The ``Boolean`` node can be converted to ``Scalar`` or ``Vector`` to represent
 ``0`` or ``1`` and ``(0, 0, 0)`` or ``(1, 1, 1)`` respectively. This property
@@ -210,7 +210,7 @@ can be used to enable or disable some effect parts with one click.
 .. image:: img/vs_boolean.gif
 
 If node
-+++++++
+~~~~~~~
 
 The ``If`` node allows you to setup a vector which will be returned the result
 of the comparison between ``a`` and ``b``. There are three vectors which can be
@@ -221,7 +221,7 @@ comparison threshold – by default it is equal to the minimal value, i.e.
 .. image:: img/vs_if.png
 
 Switch node
-+++++++++++
+~~~~~~~~~~~
 
 The ``Switch`` node returns a vector if the boolean condition is ``true`` or
 ``false``. ``Boolean`` was introduced above. If you convert a vector to a true

+ 3 - 3
tutorials/shaders/your_first_shader/your_first_2d_shader.rst

@@ -130,7 +130,7 @@ other functions or to assign values to ``COLOR`` directly.
 .. image:: img/UV.png
 
 Using ``TEXTURE`` built-in
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The default fragment function reads from the set Sprite2D texture and displays it.
 
@@ -159,7 +159,7 @@ this variable. Use them to redraw the Sprite2D with the texture.
 .. image:: img/blue-tex.png
 
 Uniform input
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 Uniform input is used to pass data into a shader that will be the same across
 the entire shader.
@@ -191,7 +191,7 @@ declared. If you change the value in the editor, it will overwrite the default
 value you provided in the shader.
 
 Interacting with shaders from code
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 You can change uniforms from code using the function ``set_shader_parameter()``
 which is called on the node's material resource. With a Sprite2D node, the

+ 11 - 11
tutorials/ui/gui_containers.rst

@@ -70,7 +70,7 @@ Container types
 Godot provides several container types out of the box as they serve different purposes:
 
 Box Containers
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Arranges child controls vertically or horizontally (via :ref:`HBoxContainer <class_HBoxContainer>` and
 :ref:`VBoxContainer <class_VBoxContainer>`). In the opposite of the designated direction
@@ -81,7 +81,7 @@ Arranges child controls vertically or horizontally (via :ref:`HBoxContainer <cla
 These containers make use of the *Stretch Ratio* property for children with the *Expand* flag set.
 
 Grid Container
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Arranges child controls in a grid layout (via :ref:`GridContainer <class_GridContainer>`, amount
 of columns must be specified). Uses both the vertical and horizontal expand flags.
@@ -89,7 +89,7 @@ of columns must be specified). Uses both the vertical and horizontal expand flag
    .. image:: img/containers_grid.png
 
 Margin Container
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 Child controls are expanded towards the bounds of this control (via
 :ref:`MarginContainer <class_MarginContainer>`). Padding will be added on the margins
@@ -103,7 +103,7 @@ constants overrides section of each control:
    .. image:: img/containers_margin_constants.png
 
 Tab Container
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 Allows you to place several child controls stacked on top of each other (via
 :ref:`TabContainer <class_TabContainer>`), with only the *current* one visible.
@@ -119,7 +119,7 @@ The titles are generated from the node names by default (although they can be ov
 Settings such as tab placement and *StyleBox* can be modified in the *TabContainer* theme overrides.
 
 Split Container
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Accepts only one or two children controls, then places them side to side with a divisor
 (via :ref:`HSplitContainer <class_HSplitContainer>` and :ref:`VSplitContainer <class_VSplitContainer>`).
@@ -133,7 +133,7 @@ The divisor can be dragged around to change the size relation between both child
 
 
 PanelContainer
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 A container that draws a *StyleBox*, then expands children to cover its whole area
 (via :ref:`PanelContainer <class_PanelContainer>`, respecting the *StyleBox* margins).
@@ -144,7 +144,7 @@ It respects both the horizontal and vertical sizing options.
 This container is useful as top-level, or just to add custom backgrounds to sections of a layout.
 
 ScrollContainer
-^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 Accepts a single child node. If this node is bigger than the container, scrollbars will be added
 to allow panning the node around (via :ref:`ScrollContainer <class_ScrollContainer>`). Both
@@ -160,7 +160,7 @@ Mouse wheel and touch drag (when touch is available) are also valid ways to pan
 As in the example above, one of the most common ways to use this container is together with a *VBoxContainer* as child.
 
 AspectRatioContainer
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 A container type that arranges its child controls in a way that preserves their proportions
 automatically when the container is resized.
@@ -176,7 +176,7 @@ and you want the child elements to scale proportionally without losing their int
    .. image:: img/containers_aspectratio_drag.webp
 
 FlowContainer
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 FlowContainer is a container that arranges its child controls either horizontally or vertically,
 (via :ref:`HFlowContainer <class_HFlowContainer>` and via :ref:`VFlowContainer <class_VFlowContainer>`).
@@ -190,7 +190,7 @@ useful for creating flexible layouts where the child controls adjust automatical
    .. image:: img/containers_hflow_drag.webp
 
 CenterContainer
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~
 
 CenterContainer is a container that automatically keeps all of its child controls centered within it at their minimum size.
 It ensures that the child controls are always aligned to the center, making it easier to create centered layouts without manual positioning.
@@ -201,7 +201,7 @@ It ensures that the child controls are always aligned to the center, making it e
    .. image:: img/containers_center_drag.webp
 
 SubViewportContainer
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 This is a special control that will only accept a single *Viewport* node as child, and it will display
 it as if it was an image (via :ref:`SubViewportContainer <class_SubViewportContainer>`).

+ 15 - 15
tutorials/ui/gui_using_fonts.rst

@@ -216,7 +216,7 @@ Advanced font features
 .. _doc_using_fonts_antialiasing:
 
 Antialiasing
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 You can adjust how the font should be smoothed out when rendering by adjusting
 *antialiasing* and *hinting*. These are different properties, with different use
@@ -251,7 +251,7 @@ exploring.
 .. _doc_using_fonts_hinting:
 
 Hinting
-^^^^^^^
+~~~~~~~
 
 Hinting controls how aggressively glyph edges should be snapped to pixels when
 rasterizing the font. **None** results in the smoothest appearance, which can
@@ -278,7 +278,7 @@ preference, you may prefer using one hinting mode over the other.
 .. _doc_using_fonts_subpixel_positioning:
 
 Subpixel positioning
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 Subpixel positioning can be adjusted. This is a `FreeType <https://freetype.org/>`__
 feature that allows glyphs to be rendered more closely to their intended form.
@@ -305,7 +305,7 @@ effect at smaller font sizes.
 .. _doc_using_fonts_mipmaps:
 
 Mipmaps
-^^^^^^^
+~~~~~~~
 
 By default, fonts do not have mipmaps generated to reduce memory usage and speed
 up rasterization. However, this can cause downscaled fonts to become grainy. This
@@ -324,7 +324,7 @@ resistant to graininess out of the box.
 .. _doc_using_fonts_msdf:
 
 MSDF font rendering
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 Multi-channel signed distance field (MSDF) font rendering allows rendering fonts
 at any size, without having to re-rasterize them when their size changes.
@@ -371,7 +371,7 @@ to the Import dock, enable **Multichannel Signed Distance Field**, then click
 .. _doc_using_fonts_emoji:
 
 Using emoji
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 Godot has limited support for emoji fonts:
 
@@ -421,7 +421,7 @@ emoji font:
     It's possible to use a system font as a fallback font too.
 
 Using icon fonts
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 Tools like `Fontello <https://fontello.com/>`__ can be used to generate font
 files containing vectors imported from SVG files. This can be used to render
@@ -465,7 +465,7 @@ reserved for use by custom fonts and doesn't contain standard glyphs by design.
 .. _doc_using_fonts_font_fallbacks:
 
 Font fallbacks
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Godot supports defining one or more fallbacks when the main font lacks a glyph
 to be displayed. There are 2 main use cases for defining font fallbacks:
@@ -513,7 +513,7 @@ fallbacks.
 .. _doc_using_fonts_variable_fonts:
 
 Variable fonts
-^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~
 
 Godot has full support for `variable fonts <https://variablefonts.io/>`__, which
 allow you to use a single font file to represent various font weights and styles
@@ -592,7 +592,7 @@ places:
    Saving FontVariation to an external resource file
 
 Faux bold and italic
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 When writing text in bold or italic, using font variants specifically designed
 for this looks better. Spacing between glyphs will be more consistent when using
@@ -630,7 +630,7 @@ character transform to a positive value will italicize the text. Recommended
 values are between ``0.2`` and ``0.4`` depending on the font.
 
 Adjusting font spacing
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 For stylistic purposes or for better readability, you may want to adjust how a
 font is presented in Godot.
@@ -659,7 +659,7 @@ displayed with stretching.
 .. _doc_using_fonts_opentype_font_features:
 
 OpenType font features
-^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~
 
 Godot supports enabling OpenType font features, which are a standardized way to
 define alternate characters that can be toggled without having to swap font
@@ -738,7 +738,7 @@ features, then unchecking them in the inspector:
 .. _doc_using_fonts_system_fonts:
 
 System fonts
-^^^^^^^^^^^^
+~~~~~~~~~~~~
 
 .. warning::
 
@@ -827,7 +827,7 @@ for details.
 .. _doc_using_fonts_font_prerendering:
 
 Font prerendering
-^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~
 
 When using traditional rasterized fonts, Godot caches glyphs on a per-font and
 per-size basis. This reduces stuttering, but it can still occur the first time a
@@ -949,7 +949,7 @@ covering many more languages, such as French, German and Spanish. For Russian,
 **Cyrillic** needs to be enabled, and so on.
 
 Default project font properties
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 In the **GUI > Theme** section of the advanced Project Settings, you can choose
 how the default font should be rendered:

+ 8 - 8
tutorials/xr/openxr_hand_tracking.rst

@@ -94,7 +94,7 @@ Now you need to add 3 components into your scene for each hand:
 .. image:: img/openxr_hand_tracking_nodes.webp
 
 Hand tracking node
-^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~
 
 The hand tracking system uses separate hand trackers to track the position of the player's hands
 within our tracking space. 
@@ -120,7 +120,7 @@ For this you need to add an :ref:`XRNode3D <class_xrnode3d>` node to your ``XROr
     or make this node visible if tracking data is available. 
 
 Rigged hand mesh
-^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~
 
 In order to display our hand we need a hand mesh that is properly rigged and skinned.
 For this Godot uses the hand bone structure as defined for the :ref:`Godot Humanoid <class_skeletonprofilehumanoid>`
@@ -133,7 +133,7 @@ We will be using those here and add them as a child to our ``XRNode3D`` node.
 We also need to enable editable children to gain access to our :ref:`Skeleton3D <class_skeleton3d>` node.
 
 The hand skeleton modifier
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Finally we need to add a :ref:`XRHandModifier3D <class_xrhandmodifier3d>` node as a child to our ``Skeleton3D`` node.
 This node will obtain the finger tracking data from OpenXR and apply it the hand model.
@@ -216,7 +216,7 @@ a number of extensions were added to the specification that provide some basic g
 and can be used with the action map.
 
 The hand interaction profile
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The `hand interaction profile extension <https://github.khronos.org/OpenXR-Inventory/extension_support.html#XR_EXT_hand_interaction>`_
 is a new core extension which supports pinch, grasp, and poke gestures and related poses.
@@ -257,7 +257,7 @@ thus seamlessly switch between controller and hand tracking input.
     You need to enable the hand interaction profile extension in the OpenXR project settings.
 
 Microsoft hand interaction profile
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The `Microsoft hand interaction profile extension <https://github.khronos.org/OpenXR-Inventory/extension_support.html#XR_MSFT_hand_interaction>`_
 was introduced by Microsoft and loosely mimics the simple controller profile.
@@ -280,7 +280,7 @@ With this setup the normal ``left_hand`` and ``right_hand`` trackers are used an
 thus seamlessly switch between controller and hand tracking input.
 
 HTC hand interaction profile
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The `HTC hand interaction profile extension <https://github.khronos.org/OpenXR-Inventory/extension_support.html#XR_HTC_hand_interaction>`_
 was introduced by HTC and is defined similarly to the Microsoft extension.
@@ -296,7 +296,7 @@ This means that extra logic needs to be implemented to switch between the defaul
 and the HTC specific trackers when the user puts down, or picks up, their controller.
 
 Simple controller profile
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
 
 The simple controller profile is a standard core profile defined as a fallback profile
 when a controller is used for which no profile exists.
@@ -337,7 +337,7 @@ thus seamlessly switch between controller and hand tracking input.
     and simple controller profiles.
 
 Gesture based input
-^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~
 
 If the platform doesn't support any interaction profiles when hand tracking is used,
 or if you're building an application where you need more complicated gesture support

+ 5 - 5
tutorials/xr/openxr_settings.rst

@@ -60,7 +60,7 @@ depending on the XR system used.
 In OpenXR these scenarios are well defined and selected by setting a reference space.
 
 Local
-^^^^^
+~~~~~
 
 The local reference space places our origin point at the player's head by default.
 Some XR runtimes will do this each time your game starts, others will make the position persist over sessions.
@@ -83,7 +83,7 @@ so your game can react accordingly.
   You should **not** call ``center_on_hmd`` when using this reference space.
 
 Stage
-^^^^^
+~~~~~
 
 The stage reference space is our default reference space and places our origin point at the center of our play space.
 For XR runtimes that allow you to draw out a guardian boundary this location and its orientation is often set by the user.
@@ -111,7 +111,7 @@ In Godot you can do this by calling the ``center_on_hmd`` function on the :ref:`
   Any other XR tracked elements such as controllers or anchors will also be adjusted accordingly. 
 
 Local Floor
-^^^^^^^^^^^
+~~~~~~~~~~~
 
 The local floor reference space is similar to the local reference space as it positions the origin point where the player is.
 In this mode however the height of the player is kept.
@@ -222,7 +222,7 @@ Extensions
 This subsection provides access to various optional OpenXR extensions.
 
 Hand Tracking
-^^^^^^^^^^^^^
+~~~~~~~~~~~~~
 
 This enables the hand tracking extension when supported by the device used. This is on by default for legacy reasons.
 The hand tracking extension provides access to data that allows you to visualise the user's hands with correct finger positions.
@@ -234,7 +234,7 @@ If your game only supports controllers this should be turned off.
 See the chapter on :ref:`hand tracking <doc_openxr_hand_tracking>` for additional details.
 
 Eye Gaze Interaction
-^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~
 
 This enables the eye gaze interaction extension when supported by the device used.
 When enabled we will get feedback from eye tracking through a pose situated between the user's eyes

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است