godotengine / godot-docs

Godot Engine official documentation
https://docs.godotengine.org
Other
3.6k stars 2.96k forks source link

Unreachable pages via sidebar #8792

Open Cerno-b opened 5 months ago

Cerno-b commented 5 months ago

Your Godot version: 4.2

Issue description:

Currently there are docs pages that are not reachable via the sidebar due to deep nesting. The only way to access them is via link from another page or by reading the docs sequentially using the "next page" button.

I think the manual should be structured so that each rst file should be accessible via the sidebar. This might require some reordering of pages in order to reduce nesting depth.

The maximum nesting level for sidebar visibility is 5.

For example, this page with nesting level 6 cannot be directly accessed via the sidebar: https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_android.html

image

URL to the documentation page:

Here are the inaccessible level 6 pages:

https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_android.html https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_ios.html https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_linuxbsd.html https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_macos.html https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_web.html https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_for_windows.html https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_with_dotnet.html https://docs.godotengine.org/en/stable/contributing/development/compiling/compiling_with_script_encryption_key.html https://docs.godotengine.org/en/stable/contributing/development/compiling/cross-compiling_for_ios_on_linux.html https://docs.godotengine.org/en/stable/contributing/development/compiling/getting_source.html https://docs.godotengine.org/en/stable/contributing/development/compiling/introduction_to_the_buildsystem.html https://docs.godotengine.org/en/stable/contributing/development/compiling/optimizing_for_size.html

https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/2d_coordinate_systems.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/binding_to_external_libraries.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/common_engine_methods_and_macros.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/core_types.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/custom_audiostreams.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/custom_godot_servers.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/custom_modules_in_cpp.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/custom_platform_ports.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/custom_resource_format_loaders.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/godot_architecture_diagram.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/inheritance_class_tree.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/internal_rendering_architecture.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/object_class.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/unit_testing.html https://docs.godotengine.org/en/stable/contributing/development/core_and_modules/variant_class.html

https://docs.godotengine.org/en/stable/contributing/development/debugging/vulkan/vulkan_validation_layers.html

https://docs.godotengine.org/en/stable/tutorials/3d/particles/attractors.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/collision.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/complex_shapes.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/creating_a_3d_particle_system.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/process_material_properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/process_material_properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/process_material_properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/process_material_properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/process_material_properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/process_material_properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/process_material_properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/properties.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/subemitters.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/trails.html https://docs.godotengine.org/en/stable/tutorials/3d/particles/turbulence.html

https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_collections.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_differences.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_exports.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_global_classes.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_signals.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_variant.html

There are also some level 7 pages, but I think they don't need to strictly appear in the sidebar, because their page headings are pretty cryptic so having them in the sidebar wouldn't help much.

https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0001.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0002.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0101.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0102.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0103.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0104.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0105.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0106.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0107.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0201.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0202.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0203.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0301.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0302.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0303.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0401.html https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/diagnostics/GD0402.html

Cerno-b commented 5 months ago

I think one simple step could be to move "Buildsystem and work environment" as well as "Engine architecture" one level up. Currently, level 2 (below "Contributing") only has 4 entries, I think it can deal with 2 more.

Particles could also move up to level 2 out from 3D, but it would then probably be necessary to merge the 2D particles section into the new section as well.

@YuriSizov I think you suggested something along these lines, if I recall?

About the c# stuff, I have no idea. Maybe moving "Godot API for C#" up one level? It's not really clean because it fits naturally under the c# umbrella, but it's more transparent than hiding it in level 6 I guess.

The c# diagnostics on level 7 can stay where they are I think. Their headers are too cryptic to contribute anything to the sidebar and the page that links to them is so short that it's clear enough to understand.

Cerno-b commented 5 months ago

Oh, and the Vulkan validation layers could probably move one level up. Its parent page is nearly empty

image

rxlecky commented 3 months ago

About the c# stuff, I have no idea. Maybe moving "Godot API for C#" up one level? It's not really clean because it fits naturally under the c# umbrella, but it's more transparent than hiding it in level 6 I guess.

I don't think moving the C# API stuff out of the C# "folder" is a good idea. Instead, I'd suggest removing one of the list pages - by list page I mean a page that doesn't have content of its own, it just lists the child pages and serves as a folder in the sidebar.

One candidate would be the Godot API for C# page itself. All its child pages can be moved directly under the C#/.NET parent page, just like in GDScript, all child pages are direct children of the GDScript page.

Another candidate would be the Programming languages page. It's only really there to group C#, GDScript and GDExtension pages, but those could easily live in the parent page IMO, as the parent page only has one more child page and I don't think it would be that confusing.

Btw, just out of curiosity, where does the limitation of max 5 levels of folder depth come from? Is that a self-imposed restriction?