1
0
mirror of https://github.com/alexandrev/xslt-lab.git synced 2026-09-14 09:03:15 +00:00
Files
xslt-lab/site/hugo.toml
T
claude-code b2737ec715 SEO: fix internal linking, de-cannibalize, move blog to /blog/ subpath
Phase 1 — internal linking:
- Real [related] index (tags/keywords/category) in hugo.toml; rewrite
  related-posts.html to use .Related instead of "first 4 posts", which
  had left 12/20 posts with zero inbound links.
- Add tags to 6 previously untagged posts.

Phase 2 — de-cannibalization of the transactional cluster:
- Soft-301 mechanism (redirectTo -> meta refresh + noindex,follow) in baseof.
- xslt-online-editor-guide redirects to the app (pure duplicate of home).
- xslt-validator-online retargeted informational; drop the "common errors"
  section that cannibalized the errors hub, link to it instead.
- Migrate why-xslt-playground-online-editor into /about/ with an alias.
- Remove the duplicate <h1> on the app landing page.

Phase 3 — consolidate authority on the money domain:
- baseURL -> https://xsltplayground.com/blog/ (served via NPM reverse
  proxy to GitHub Pages; subdomain will 301 to the subpath).
- Rewrite internal blog links to /blog/... and cross-domain app links
  to xsltplayground.com/blog/...

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KZntQUfw463NW4ftgSjWw5
2026-07-24 07:31:29 +00:00

63 lines
1.4 KiB
TOML

baseURL = "https://xsltplayground.com/blog/"
languageCode = "en-us"
title = "XSLT Playground"
enableRobotsTXT = true
[pagination]
pagerSize = 10
# Drives the "Related articles" box. Without this, related-posts.html fell back
# to "first 4 posts", so 12/20 posts had zero inbound internal links.
[related]
includeNewer = true
threshold = 20
toLower = true
[[related.indices]]
name = "tags"
weight = 100
[[related.indices]]
name = "keywords"
weight = 80
[[related.indices]]
name = "category"
weight = 40
[params]
subtitle = "Online XSLT editor built for real-world transformations."
lead = "Run and debug XSLT online with multi-parameter inputs, timing hints, and fast feedback. This site hosts release notes, guides, and deployment options for XSLT Playground."
[params.adsense]
# Prefer setting ADSENSE_CLIENT and ADSENSE_INARTICLE_SLOT env vars when building if you don't want the values committed.
client = "ca-pub-1549720748100858"
inArticleSlot = ""
[params.ethicalads]
publisher = "xsltplaygroundcom"
[menu]
[[menu.main]]
name = "Home"
url = "/"
weight = 1
[[menu.main]]
name = "Posts"
url = "/posts/"
weight = 2
[[menu.main]]
name = "About"
url = "/about/"
weight = 3
[[menu.main]]
name = "Reference"
url = "/xslt/functions/"
weight = 4
[[menu.main]]
name = "Charts"
url = "https://alexandrev.github.io/xslt-lab/index.yaml"
weight = 4