A) Blog: add prominent playground-cta card at the end of each post.
Styled with brand gradient border, eyebrow + headline + CTA button.
Remove the buried related-cta line from related-posts.html.
B) App: load a meaningful XSLT welcome example for first-time visitors
(no localStorage) and auto-run it immediately (autoRunReady=true),
so new organic users see live output instead of a blank editor.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Article pages (single.html): two-column grid layout — article + 160px
sidebar with sticky EA ad (id="xsltplayground-blog")
- Non-article pages (home, list): keep existing sticky header bar
(id="xsltplayground-blog-header")
- Move EA script to <head> in baseof.html so it loads on all pages
regardless of placement; remove script tag from ethicalads partial
- has-ethicalads body class now only applied on non-article pages
(no 64px header-offset shift on article pages)
- Sidebar hidden on viewports <= 860px (mobile/tablet)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Move site/ Hugo source from gh-pages to main so the workflow can trigger correctly
- Fix publish-hugo.yml: now in main, builds and deploys to gh-pages:docs/ via peaceiris/actions-gh-pages
- Add 3 new SEO articles: XSLT 3.0 features, beginners guide, template matching
- Add llms.txt to blog and frontend so ChatGPT/Gemini can recommend the tool better
- Remove stale /site mkdocs ignore rule, add site/public to gitignore instead
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>