Skip to content

A cross-reference to something with no page is not a dead link - #57

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
docs-cross-references-without-a-page
Oct 27, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
docs-cross-references-without-a-page

Conversation

@Rafael-SOWNet

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

Copy link
Copy Markdown
Member

Yadg.NET turns a cross-reference into a link from the referenced name alone, so it linked to pages it never wrote. On a local build that is 121 broken links:

  • Types from other assemblies: PeterO.Numbers' EDecimal, EInteger and ERational, and GenericTensor's GenTensor.
  • Members with no doc entry of their own: the ANTLR parser's rules, and the parameters of positional records such as Size.Count and Interval.Left.

Yadg.NET already wrote a System type as plain text, for this same reason.

The generator now records which pages it writes:

  • A cross-reference to a member with no page links to its type's page, which is where a record's parameters are described.
  • One with no page at all is written as plain text.

Checked on a local build:

  • 121 broken links before, 0 after.
  • On Size, "with Count" now links to Size.html.
  • No page links to a PeterO type any more.

None are left. The deployed site, checked the same way, has no broken link inside it and none to the outside.

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 turns a cross-reference into a link by its name alone, so it
linked to pages it never wrote: 118 links on a local build. Most were
types from other assemblies, PeterO.Numbers' EDecimal, EInteger and
ERational and GenericTensor's GenTensor; the rest were members with no
doc entry of their own, the ANTLR parser's rules and the parameters of
positional records, such as Size.Count and Interval.Left. It already
wrote a System type as text for the same reason.

The generator now knows which pages it writes. A cross-reference to a
member without a page links to its type's page, which is where a
record's parameters are described, and one with no page at all is
written as text.

A link check of a local build goes from 121 broken links to 3, and those
three come from doc comments in the library that sit on the wrong member.

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 f8aa449 into master Oct 27, 2026
3 checks passed
@Rafael-SOWNet

Copy link
Copy Markdown
Member Author

A correction to the figures in this PR, #55 and #56, now edited in each.

They came from a local build whose .output/pre still held 135 pages from builds of older versions of the library. amsite.fsx clean removes only .output/final, and every page in pre is copied into final. Two of those stale pages were the source of the "3 left, from doc comments in the library", so that claim was wrong.

Rebuilt with no earlier output, at each stage:

broken links
before #55 1,180
after #55 238
after #56 121
after this PR 0

The deployed site, checked the same way, has 5,028 pages with no broken link inside it and none to the outside.

The doc comments in question are still wrong, just not in a way that breaks a link: 23 sit on the wrong member. They are fixed in the library separately.

@Rafael-SOWNet Rafael-SOWNet moved this to Done in AngouriMath Oct 27, 2026
Rafael-SOWNet added a commit that referenced this pull request Oct 27, 2026
The generator writes every page to .output/pre and then copies all of
pre into .output/final, and clean deleted only final. So a page an
older build had written to pre came back on the next build, after a
clean: a local build of the docs had 135 pages for members the library
no longer has, such as Absf.Latexize, which is LatexizeNode now, and
InternalAMExtensions.TruncateToPeriodicInterval, removed in the
library's #1347. Two of them held broken links, which were then taken
for the library's (corrected on #57).

clean now deletes all of .output. CI builds from a fresh checkout and
was never affected; this is about a build on a machine that has built
before.


Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Rafael-SOWNet
Rafael-SOWNet deleted the docs-cross-references-without-a-page 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