Skip to content

Fix internal links#147

Closed
yqtian-se wants to merge 1 commit into
acmsigsoft:mainfrom
yqtian-se:codex/internal-link-checking
Closed

Fix internal links#147
yqtian-se wants to merge 1 commit into
acmsigsoft:mainfrom
yqtian-se:codex/internal-link-checking

Conversation

@yqtian-se

Copy link
Copy Markdown
Contributor

Fixes broken internal links across legacy content and adds a reusable generated-site link checker for validating all internal URLs after Hugo builds.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates legacy site content to eliminate broken internal URLs and introduces a Node-based post-build checker intended to validate internal links in the generated Hugo public/ output.

Changes:

  • Add scripts/check-all-internal-links.mjs to crawl built HTML and verify internal URL targets exist under PUBLIC_DIR.
  • Introduce new Hugo partials for navigation (layouts/partials/nav.html) and URL normalization (layouts/partials/menu_url.html).
  • Fix/normalize numerous internal links across Markdown and legacy HTML content (e.g., removing Cloudflare /cdn-cgi/ email-protection links, switching to mailto:, updating pretty URLs).

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
scripts/check-all-internal-links.mjs Adds a generated-site internal link checker for built HTML output.
layouts/partials/nav.html Adds a navbar partial rendering the Hugo menu.main structure.
layouts/partials/menu_url.html Adds a helper partial to render menu URLs as absolute vs. site-relative.
content/SEN/surfing.md Fixes missing URL schemes on external links.
content/policies/sponsorship.md Updates internal links to pretty URLs and corrected destinations.
content/policies/cooperation.md Updates Program Committee policy link to pretty URL.
content/opentoc/MODELS2018-TOC.html Removes Cloudflare email-protection links/scripts that break internal link checks.
content/opentoc/ICSE2018Companion-TOC.html Removes Cloudflare email-protection links/scripts that break internal link checks.
content/opentoc/ESEM2018-TOC.html Removes Cloudflare email-protection links/scripts that break internal link checks.
content/logos/logos.md Updates logo asset links/filenames and image paths.
content/dissertations.md Converts email “links” to mailto: and removes NULL placeholders.
content/awards/distinguishedPaper.md Removes a Cloudflare email-protection internal link reference.
content/annualrpt/2019annualreport.md Fixes an image path to a valid static location.
content/about.md Updates internal links to pretty URLs for dissertations and annual reports.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/check-all-internal-links.mjs Outdated
Comment on lines +109 to +111
const stripped = stripSiteBasePath(urlPath).split("#")[0].split("?")[0];
const decoded = safeDecode(stripped).replace(/^\/+/, "");
const candidate = path.join(publicRoot, decoded);
Comment thread layouts/partials/nav.html Outdated
Comment on lines +28 to +45
{{ $topLevel := replace .URL "/" "" }}
{{ $active := "" }}

{{ if eq $current.RelPermalink .URL }}
{{ $active = "active" }}
{{ end }}

{{ if eq $current.Type $topLevel }}
{{ $active = "active" }}
{{ end }}

{{ if and (or (eq $current.RelPermalink .URL) (eq "term" $current.Kind)) (in (slice "page" "term") $current.Kind) }}
{{ range (split .URL "/") }}
{{ if eq "blog" . }}
{{ $active = "active" }}
{{ end }}
{{ end }}
{{ end }}
Comment thread content/logos/logos.md

- [Portable Network Graphics PNG](/logos/sigsoft-no-tagline.png)
- [Adobe Illustrator AI](/logos/sigsoft-no-tagline.ai)
- [Adobe Illustrator AI](/logos/sigsoft-no-tagline.ai.ps)
@yqtian-se
yqtian-se force-pushed the codex/internal-link-checking branch from 588b705 to 3b382a0 Compare July 18, 2026 03:01
@yqtian-se yqtian-se closed this Jul 18, 2026
@yqtian-se
yqtian-se deleted the codex/internal-link-checking branch July 18, 2026 03:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants