Skip to content

A cross-reference on a member's page leads to its target - #55

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
docs-cross-references-from-member-pages
Oct 26, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
docs-cross-references-from-member-pages

Conversation

@Rafael-SOWNet

@Rafael-SOWNet Rafael-SOWNet commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

942 of the 1,180 broken links on the API docs pages come from one line in Yadg.NET, the generator behind /docs.

A member's page is Namespace/Type/Member.html, two folders below the root of the docs. Yadg.NET wrote each cross-reference in its description with a single ../ in front, as it does on a type's page one folder up. So every link from a member's page led into the member's own namespace folder, where no such page exists. From MultivariatePolynomial.DivideExact, the link to MaxDegree went to
docs/AngouriMath.Functions/AngouriMath.Functions/MultivariatePolynomial/MaxDegree.html.

Where the fix lives. Yadg.NET has not changed since July 2022, and this repository cannot push to it. So the site carries the fix as src/Yadg.NET.patch, and init applies it to the commit it was written against (a79a053).

  • The clone is made with core.autocrlf=false, and .gitattributes keeps the patch LF, so it applies the same way on the Windows runner.
  • A local clone made before this keeps the old generator. Run uninit and then init to pick up the patch.

Checked:

  • A link check over a local build: 1,180 broken links before, 238 after, and none of the 238 is this kind.
  • init run from scratch clones Yadg.NET, checks out a79a053 and applies the patch.

The 238 that are left:

117 file names with # in them: constructors (#ctor.html) and explicit interface members. Jekyll does not serve a file whose name starts with #, and the links do not escape it. The next PR
121 cross-references to pages that do not exist: PeterO and GenericTensor types, members with no doc comment, and nested types

Figures corrected after merging. The first version counted a local build whose .output/pre still held pages from older builds: amsite.fsx clean removes only .output/final, and every page in pre is copied into final. The figures above come from builds with no earlier output, at each stage of the patch. The deployed site has the same 5,028 pages.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Yadg.NET writes a member's page at Namespace/Type/Member.html, two
folders below the root of the docs, and wrote each cross-reference in
its description with one "../" in front, as on a type's page one folder
up. So every link from a member's page to another type or member led
into the member's own namespace folder, where there is no such page:
from MultivariatePolynomial.DivideExact, MaxDegree was
docs/AngouriMath.Functions/AngouriMath.Functions/MultivariatePolynomial/MaxDegree.html.
That was 930 of the 1,174 broken links a check of a local build finds.

Yadg.NET has not changed since July 2022 and this repository cannot
push to it, so the fix is a patch the site carries, Yadg.NET.patch,
which init applies to the commit it was written against. The clone
keeps LF line endings, and .gitattributes keeps the patch's, so it
applies on Windows too.

A clone made before this keeps the old generator; uninit and init
again to pick up the patch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet
Rafael-SOWNet merged commit 7eef139 into master Oct 26, 2026
3 checks passed
@Rafael-SOWNet Rafael-SOWNet moved this to Done in AngouriMath Oct 27, 2026
@Rafael-SOWNet
Rafael-SOWNet deleted the docs-cross-references-from-member-pages branch October 27, 2026 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant