Repository navigation
Docs: fix broken cross-references, and stop hiding undefined-label warnings - #289
Merged
Merged
Conversation
…ty sets The OfxHost struct and Image Effect API pages linked to labels such as ImageEffectHostProperties that no Sphinx page defines: the old properties-by-object page wrote them as RST comments, not labels, and that page has since been removed. Point each link at the matching section of the generated Property Sets Reference, and the parameter link at that page as a whole, since it has one set per parameter type. Assisted-by: Claude Code / Claude Opus 5.5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
A property with several types (kOfxParamPropDefault, Min, Max, DisplayMin, DisplayMax) was written once per type section, each time with the same label. Sphinx drops a label defined more than once, so every link to those properties was dead. Put them in one "Properties with Multiple Types" section instead. Heading underlines were sized to the name without its ** markup, giving some 500 "Title underline too short" warnings; the two page labels also lacked the blank line before their titles. Add rst_heading() so every heading gets an underline as long as its title, and regenerate. Assisted-by: Claude Code / Claude Opus 5.5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
…ld.sh Eighteen pages marked sections with ".. Name:", an RST comment, where ".. _Name:" was meant, so links to CoordinateSystems and ImageEffectsMultiThreadingRendering went nowhere. Make them labels. Point the other dead links at the labels that exist (mainEntryPoint, threadRecursionSafety, ParameterPropertiesDoubleTypesStrictlySpatial, the kOfxParamPropDoubleType macro), and fix the misspelt OfxDrawTextAlignment enum on the Draw Suite page. build.sh filtered "undefined label" out of the Sphinx warnings, which is how these went unnoticed; it no longer does. The build now has none. Assisted-by: Claude Code / Claude Opus 5.5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
garyo
marked this pull request as ready for review
November 7, 2026 11:37
Doxygen rejected the lists in kOfxImageEffectPropSupportsMultiResolution and kOfxImageEffectPropMetalTextureEnabled: each indented a lead-in list deeper than the "Valid Values" list after it. Re-indenting would merge the two lists, so write the lead-in lists as sentences. ofxRendering.rst pulled in kOfxImageFieldNone, Lower and Upper twice, giving duplicate targets. The second list now refers to the first. Assisted-by: Claude Code / Claude Opus 5.5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
Doxygen 1.18 moved the closing parenthesis of a function-pointer member from <argsstring> into <type>. Breathe still joins type, name and argsstring, so every suite function fails to parse: it loses its declaration and link target, and links to it silently become plain text. Read the Docs uses an older Doxygen, so only local builds are affected for now. Assisted-by: Claude Code / Claude Opus 5.5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Gary Oberbrunner <garyo@darkstarsystems.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The "Properties on the Image Effect Host" link on the OfxHost struct page goes nowhere, and so do about 60 other cross-references in the Reference docs.
Documentation/build.shfiltered "undefined label" out of the Sphinx warnings it prints, so nobody saw them.Causes and fixes
"Properties on ..." links (10). The OfxHost struct and Image Effect API pages linked to labels such as
ImageEffectHostProperties. The old properties-by-object page wrote those as.. ImageEffectHostProperties:, an RST comment rather than a label, so the links were dead even before #267 removed that page. They now go to the matching section of the generated Property Sets reference, and the parameters link goes to that page as a whole, since it has one set per parameter type.Multi-type properties (44).
gen-props-doc.pywrotekOfxParamPropDefault,Min,Max,DisplayMinandDisplayMaxonce per type section, each time with the same label. Sphinx drops a label defined more than once, so every link to them failed. They now appear once, in a "Properties with Multiple Types" section. The generator also sized heading underlines to the name without its**markup (about 500 "Title underline too short" warnings); a smallrst_heading()helper fixes that.Other pages (9, plus one enum). Eighteen pages used the same
.. Name:comment form for labels; these are now real labels, which fixes the links toCoordinateSystemsandImageEffectsMultiThreadingRendering. The rest now point at labels that exist (mainEntryPoint,threadRecursionSafety,ParameterPropertiesDoubleTypesStrictlySpatial, thekOfxParamPropDoubleTypemacro). The Draw Suite page asked forOfxDrawTextAligment, so the text-alignment enum was missing from the docs.Doxygen lists and duplicate targets. Two header comments (
kOfxImageEffectPropSupportsMultiResolution,kOfxImageEffectPropMetalTextureEnabled) indented a lead-in list deeper than the "Valid Values" list after it, which Doxygen rejects; the lead-in lists are now sentences.ofxRendering.rstpulled in three field macros twice; the second list now refers to the first.build.sh no longer hides "undefined label" warnings. With these fixes the build has none.
Verification
Built with
Documentation/build.sh: no undefined-label, duplicate-label or underline warnings remain, and the rendered pages link to the right sections (checked in the HTML). The remaining warnings are C++ declarator errors for the suites' function-pointer members. They come from Doxygen 1.18.0, which changed how it writes those members to XML; Read the Docs uses an older Doxygen and is not affected.build.shnow warns when it finds Doxygen 1.18 or later.Assisted-by: Claude Code / Claude Opus 5.5