Skip to content

feat: add SEO and LLM discoverability infrastructure#593

Merged
akudev merged 5 commits into
mainfrom
feat/seo-llm-discoverability
Jun 16, 2026
Merged

feat: add SEO and LLM discoverability infrastructure#593
akudev merged 5 commits into
mainfrom
feat/seo-llm-discoverability

Conversation

@akudev

@akudev akudev commented Jun 15, 2026

Copy link
Copy Markdown
Member
  • generate-index-pages.mjs: new Node.js script replacing shell heredoc HTML templating in the workflow. Generates:

    • api/index.html and api/{framework}/index.html (with meta description + OG tags)
    • sitemap.xml (sitemap index at site root)
    • api/llms.txt (structured overview for LLM crawlers)
  • generate.mjs: add Open Graph meta tags to htmlTemplate() and dates to per-version sitemap entries

  • workflow: replace inline shell HTML generation with script call, add sitemap.xml to git add scope

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 adds SEO- and crawler-friendly infrastructure around the generated UI5 TypeScript API reference site by improving per-page metadata and generating top-level index/sitemap/LLM discovery artifacts during the gh-pages publish workflow.

Changes:

  • Add Open Graph meta tags to generated API HTML pages and include <lastmod> in per-version sitemap entries.
  • Introduce a Node.js generator script to produce api/index.html, per-framework index pages, a site-root sitemap index, and api/llms.txt.
  • Update the GitHub Actions workflow to call the generator script and commit the new site-root sitemap.xml.

Reviewed changes

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

File Description
scripts/generate-api-docs/generate.mjs Adds OG meta tags and <lastmod> for generated per-version sitemaps.
scripts/generate-api-docs/generate-index-pages.mjs New script generating API landing pages, sitemap index, and llms.txt.
.github/workflows/generate-api-docs.yml Replaces inline shell HTML generation with the new Node script; commits site-root sitemap.

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

Comment thread scripts/generate-api-docs/generate.mjs Outdated
Comment thread scripts/generate-api-docs/generate-index-pages.mjs
- generate-index-pages.mjs: new Node.js script replacing shell heredoc
  HTML templating in the workflow. Generates:
  - api/index.html and api/{framework}/index.html (with meta description + OG tags)
  - sitemap.xml (sitemap index at site root)
  - api/llms.txt (structured overview for LLM crawlers)

- generate.mjs: add Open Graph meta tags to htmlTemplate() and
  <lastmod> dates to per-version sitemap entries

- workflow: replace inline shell HTML generation with script call,
  add sitemap.xml to git add scope
@akudev akudev force-pushed the feat/seo-llm-discoverability branch from b43a0c5 to c29ced6 Compare June 15, 2026 20:05
@akudev akudev requested a review from Copilot June 15, 2026 20:06

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

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

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

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

Comment thread scripts/generate-api-docs/generate-index-pages.mjs
Comment thread scripts/generate-api-docs/generate-index-pages.mjs Outdated
Comment thread scripts/generate-api-docs/generate.mjs Outdated
Comment thread scripts/generate-api-docs/generate.mjs Outdated
TypeDoc merges all .d.ts files into one documentation set, causing the
shared 'sap' namespace to duplicate content across library directories.
For example, sap.f/namespaces/sap/namespaces/m/ contained sap.m classes,
and sap.f/sap/tnt/ contained sap.tnt enums (from a module augmentation).

The fix collects which modules each .d.ts file declares, then excludes
pages that either:
- Don't match any declared module (namespace re-export artefacts)
- Match a module whose namespace belongs to another library (augmentation)

This removes ~54 duplicate pages per library that had cross-library content,
reducing confusion and improving the signal-to-noise ratio for crawlers.
@akudev akudev force-pushed the feat/seo-llm-discoverability branch from 6bf6602 to 5b9e9bc Compare June 16, 2026 08:45
@akudev akudev requested a review from Copilot June 16, 2026 09:50

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

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

Comment thread scripts/generate-api-docs/generate-index-pages.mjs
Comment thread scripts/generate-api-docs/generate.mjs Outdated
akudev added 2 commits June 16, 2026 13:32
…okup

- generate-index-pages.mjs: strip trailing slashes from --base-url to
  prevent double-slash URLs in canonical links and sitemaps
- generate.mjs: replace O(N) module scan in shouldExclude() with O(1)
  Set.has() lookups by deriving the module path from directory prefixes
npm show with a version range (e.g. ~1.136.0) outputs lines like
'@openui5/types@1.136.17 '1.136.17'' instead of just '1.136.17'.
Extract the bare semver with grep to avoid malformed version strings
that fail the downstream validation.

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

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Comment thread scripts/generate-api-docs/generate-index-pages.mjs
Comment thread scripts/generate-api-docs/generate-index-pages.mjs
Comment thread .github/workflows/generate-api-docs.yml Outdated
Comment thread scripts/generate-api-docs/generate-index-pages.mjs
Comment thread scripts/generate-api-docs/generate.mjs Outdated
- Workflow: version floor now uses major >= 2 || (major === 1 && minor >= 120)
  instead of just minor >= 120, which would exclude future 2.x versions.
- generate.mjs: clarify the shouldExclude comment per review feedback.
@akudev akudev requested a review from codeworrior June 16, 2026 15:05
@akudev akudev merged commit f465b3f into main Jun 16, 2026
7 checks passed
@akudev akudev deleted the feat/seo-llm-discoverability branch June 16, 2026 15:18
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.

3 participants