Document redirect pages template pattern#253
Conversation
Adds a Redirect Pages section to the Templates docs showing how to use the object array template type to generate meta-refresh HTML pages for URL migrations. Includes an XSS-safe escapeXml helper, a note on SEO implications of meta-refresh, and an example of generating a Netlify _redirects file instead. Closes #237
Coverage Report for CI Build 24619424796Coverage remained the same at 91.469%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
There was a problem hiding this comment.
Pull request overview
Adds documentation for an idiomatic DomStack pattern to generate redirect artifacts via templates, aimed at helping users migrate URLs without built-in redirect support.
Changes:
- Adds a “Redirect Pages” documentation section with an object-array template example that generates meta-refresh HTML redirect pages.
- Adds a second example showing how to generate a Netlify/Cloudflare Pages
_redirectsfile via a template. - Includes an inline escaping helper and brief SEO guidance.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Move the Redirect Pages section from under TypeScript Support to its correct location at the end of the Templates section. Fix the prose to accurately describe escapeXml scope (HTML injection only, not javascript: scheme), warn about leading / in from values resolving outside the build dir, and use correct template type terminology (single-object template type). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Addressed all four review comments:
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Ok so this doesn't actually close the upstream issue. But it is a decent docs addition. In terms of docs, I would suggest simplifying the example and pull in fragtml or common-tags or something for html escaping. I would also leave out the copy directory example. Of course it works but that whole feature is just an escape hatch. We should implement the feature though but I'm not sold on the best approach. |
|
I thought about this some more. Redirect pages are just pages, so if you want a redirect page pattern, you should implement a redirect template, and then just place a page where you want the redirect and then feed in the target as front matter or a page var. Simple! Ok but you have a lot of redirects you want to manage in one place? Fine! We need a new feature here. Template files let you write out any kind of file type, but require that you define the output content. What if we extend the template file type to allow you to specify a layout and any other variables, including children and whatnot that pages get. Alternatively we implement something similar to template files, for pages specifically. It would let you define multiple page outputs and templates as well as the page variables going into them in a single file. What would these be called? This approach keeps the layout system and variable system in play, but also offers a way to centrally spit out multiple pages. If done right (maybe like after the main page walk), you could programmatically generate index pages for blogs and whatnot. |
|
Given the close overlap with pages, I think a separate whatever-you-want.pages.ts type might be warranted here. Page walk, pass in the static structure into the pages files (allowing reflection/introspection) then build these *.pages.ts pages out, then continue on with the post vars rendering. Check for page conflicts. This way .pages files can look for all You can also statically specify a central redirect list using whatever redirect template you want. |
Adds a "Redirect Pages" section to the Templates documentation showing how to generate meta-refresh HTML redirect pages for URL migrations using the object array template type.
The example covers:
index.htmlper redirect entry with a correct meta-refresh and canonical linkescapeXmlhelper to prevent XSS in redirect targets_redirectsfile insteadDomStack has no built-in redirect mechanism, so this documents the idiomatic template-based approach that any migrating site would otherwise need to discover independently.
Closes #237