Skip to content

[3.x] First-class non-HTML pages and generated discovery files (epic) - #2524

Open
emmadesilva wants to merge 145 commits into
masterfrom
v3/non-html-pages
Open

[3.x] First-class non-HTML pages and generated discovery files (epic)#2524
emmadesilva wants to merge 145 commits into
masterfrom
v3/non-html-pages

Conversation

@emmadesilva emmadesilva changed the title [3.x] Non HTML pages (epic) [3.x] Support pages with more output file extensions (epic) Jul 13, 2026
@codecov

codecov Bot commented Jul 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (d9f2e0c) to head (32139d4).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##              master     #2524   +/-   ##
===========================================
  Coverage     100.00%   100.00%           
- Complexity      1782      1792   +10     
===========================================
  Files            184       182    -2     
  Lines           4422      4454   +32     
===========================================
+ Hits            4422      4454   +32     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 14:53 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 15:19 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 15:46 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 17:35 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 18:12 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 19:10 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 19:47 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 19:48 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 20:20 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 21:33 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 13, 2026 21:56 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 00:15 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 01:27 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 01:27 — with GitHub Actions Inactive
@emmadesilva
emmadesilva force-pushed the v3/non-html-pages branch 2 times, most recently from edee07f to 62feb3c Compare July 14, 2026 02:04
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 02:04 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 02:04 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 11:22 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 21:22 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 21:32 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 21:50 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 22:35 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 July 14, 2026 22:39 — with GitHub Actions Inactive
emmadesilva and others added 4 commits August 5, 2026 21:29
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…t a site URL

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… in the epic

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ests

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 August 5, 2026 19:49 — with GitHub Actions Inactive
@emmadesilva
emmadesilva marked this pull request as ready for review August 5, 2026 19:59
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 August 5, 2026 20:25 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 August 5, 2026 20:56 — with GitHub Actions Inactive
@emmadesilva emmadesilva changed the title [3.x] Support pages with more output file extensions (epic) [3.x] First-class non-HTML pages and generated discovery files (epic) Aug 5, 2026
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 August 5, 2026 21:24 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 August 5, 2026 21:24 — with GitHub Actions Inactive
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 August 5, 2026 21:33 — with GitHub Actions Inactive
Removes RobotsTxtGenerator, LlmsTxtGenerator, their Features::hasRobotsTxt()/
hasLlmsTxt() gates, HydeCoreExtension wiring, and the hyde.robots/hyde.llms
config blocks. Both features (PRs #2531 and #2534) were overengineered; they
are being redesigned from scratch on this branch.
Deletes the feature-specific generator/page test classes and drops the now
dead hyde.robots/hyde.llms config toggles from collection and manifest tests
that only needed them to keep exact-count assertions accurate.
Hyde no longer generates these files automatically, so drop the generator
customization example, the config reference, and the feature mentions in
the generated-discovery-files and build-tasks docs. Illustrative uses of
robots.txt as an example non-HTML filename (InMemoryPage output inference,
showInSitemap()) are unaffected and stay.
Drops the upgrade steps and checklist items for features that no longer
exist on this branch, and renumbers the subsequent upgrade steps. Removes
the corresponding HYDEPHP_V3_PLANNING.md changelog entries.
Marks PR 6 and PR 7 as reverted rather than implemented, replaces their
implementation notes (which described deleted code as existing) with a
short record of what was reverted and why, and fixes downstream references
that claimed the D5 user-override paths were verified for both pages.
[3.x] Revert generated robots.txt and llms.txt (stacked PR 6 and PR 7)
@emmadesilva
emmadesilva temporarily deployed to pr-documentation-2524 August 5, 2026 22:07 — with GitHub Actions Inactive
emmadesilva and others added 5 commits August 6, 2026 01:06
Subclasses that declare $outputDirectory or $outputExtension had those
statics ignored by InMemoryPage's own outputPath() override, so
getRouteKey() (built via RouteKey::fromPage(), which does read them)
and getOutputPath() disagreed for such subclasses. outputPath() now
applies the configured directory and extension the same way the route
key does, while still leaving an identifier's own extension verbatim.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Covers the fixed getRouteKey()/getOutputPath() agreement for
extensionless identifiers, and pins the remaining divergence when an
identifier's own extension differs from the subclass's configured
extension, which stays unsupported usage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The previous wording said extensions are used "verbatim", which no
longer held once an output directory is prepended. Also drop the
paragraph documenting the route-key/output-path divergence for
identifiers whose extension differs from a subclass's configured
extension: that's an implementation detail of RouteKey::fromPage(),
not something the documented, supported usage relies on.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Combining a subclass-configured extension with an identifier that
already carries a different extension is not a supported usage, so it
shouldn't be locked in as a tested compatibility guarantee.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.

1 participant