- htmlGate.ts mirrors the four editor-output rules of the Go policy:
figure data-embed (^youtube$) and data-id (^[A-Za-z0-9_-]{11}$),
img alt with any text, ol start (integer)
- embeds.ts: EMBED_PROVIDERS (youtube on youtube-nocookie.com),
EMBED_PLACEHOLDER and expandEmbeds
- JournalPostBody and JournalCategoryHeader render
expandEmbeds(sanitizeJournalHtml(html)); payload transforms only sanitize
- .journal-embed styles (16 / 9 block, borderless iframe)
- tests: byte copy of the editor corpus, mirror and pipeline cases;
acme hello-acme carries a placeholder and the SSR smoke checks the iframe
- README Embeds section and decision note Policy amendment
46 lines
1.8 KiB
Plaintext
46 lines
1.8 KiB
Plaintext
# SSR expectations against the acme fixtures (testing/fixtures/acme).
|
|
# Grammar: STATUS PATH [contains=TEXT] [notcontains=TEXT] [type=PREFIX]
|
|
# The consumer enables en (default, no prefix) and pl (/pl prefix), and sets
|
|
# site.url to https://acme.test.
|
|
|
|
# Single post
|
|
200 /blog/hello-acme contains=Hello Acme
|
|
200 /blog/hello-acme contains=https://www.youtube-nocookie.com/embed/dQw4w9WgXcQ
|
|
404 /blog/missing-post
|
|
200 /blog/unsafe-sample contains=<p>Before</p><p>After</p> notcontains=alert(
|
|
404 /blog/draft-note
|
|
|
|
# Post index and pagination (9 per page, 13 published posts: 2 pages)
|
|
200 /blog contains=Hello Acme
|
|
200 /blog?page=2
|
|
404 /blog?page=3
|
|
404 /blog?page=abc
|
|
404 /blog?page=0
|
|
200 /pl/blog contains=Najnowsze wpisy
|
|
|
|
# Categories (include_empty=1; content renders above the list)
|
|
200 /blog/category/news contains=Acme news marker
|
|
200 /blog/category/quiet contains=There are no posts in this category yet.
|
|
404 /blog/category/nope
|
|
|
|
# Related posts fall back to the latest posts for a post without a category
|
|
200 /blog/uncategorised-note contains=Hello Acme
|
|
|
|
# Author (slug and login resolve) and tag pages
|
|
200 /blog/author/jane-doe contains=Jane Doe
|
|
200 /blog/author/jdoe contains=<link rel="canonical" href="https://acme.test/blog/author/jane-doe"
|
|
404 /blog/author/nobody
|
|
200 /blog/tag/release contains=Hello Acme
|
|
404 /blog/tag/nope
|
|
|
|
# RSS, sitemap, canonical and meta
|
|
200 /rss.xml type=application/rss+xml
|
|
200 /blog contains=href="/rss.xml"
|
|
200 /sitemap.xml contains=/blog/hello-acme
|
|
200 /sitemap.xml contains=/blog/category/quiet
|
|
200 /sitemap.xml notcontains=/blog/draft-note
|
|
200 /blog?page=2 contains=?page=2
|
|
200 /blog?page=2 contains=<link rel="canonical" href="https://acme.test/blog?page=2">
|
|
200 /blog/hello-acme contains=og:title
|
|
200 /blog/hello-acme contains=Acme says hello and introduces its blog.
|