What is wrong
The 20 interactive lessons in website/public/guides-raw/*.html are written in Russian, but they are
served on both the English and the Russian route. /guides/<slug>/ and /ru/guides/<slug>/ render
the same Russian paragraph.
Checked on intro: the Russian text is present in both
dist/guides/intro/index.html
dist/ru/guides/intro/index.html
Cause
website/src/lib/embed-html.ts (extractEmbed) inlines the body + styles + scripts of the standalone
Russian lesson into whatever page wraps it. There is one file per lesson, so the English wrapper has
nothing English to inline - it embeds the Russian source verbatim. website/src/pages/guides/[slug].astro
builds the EN route from the same public/guides-raw file as the RU route.
Why it was not fixed in the freshness sweep
Translating 20 interactive lessons is authoring work, not drift repair. The sweep that produced this
issue was scoped to documentation that had fallen behind the 0.37 binary and the marketplace
catalogue; rewriting lesson prose belongs to a dedicated pass with its own review.
What was rejected
- Iframing the lessons per locale - iframes were rejected by the owner twice already, and the
inlining pipeline is deliberate (extractEmbed scopes CSS under .guide-embedded, wraps inline
scripts in an IIFE, strips the lesson's own footer).
- Hiding the EN route - the guides are reached from
/guides and from the blog; removing the
route breaks inbound links that check-dead-links.mjs currently passes.
- Machine-translating the lessons in this pass - they are interactive, with terminal transcripts
and figures; a translation without a rendering check would ship broken lessons.
Revisit trigger
Act when either becomes true:
- the owner wants English-language lessons on the English route, or
- the English route starts being indexed or advertised as English content - a Russian lesson ranking
for an English query is worse than no lesson.
What is wrong
The 20 interactive lessons in
website/public/guides-raw/*.htmlare written in Russian, but they areserved on both the English and the Russian route.
/guides/<slug>/and/ru/guides/<slug>/renderthe same Russian paragraph.
Checked on
intro: the Russian text is present in bothdist/guides/intro/index.htmldist/ru/guides/intro/index.htmlCause
website/src/lib/embed-html.ts(extractEmbed) inlines the body + styles + scripts of the standaloneRussian lesson into whatever page wraps it. There is one file per lesson, so the English wrapper has
nothing English to inline - it embeds the Russian source verbatim.
website/src/pages/guides/[slug].astrobuilds the EN route from the same
public/guides-rawfile as the RU route.Why it was not fixed in the freshness sweep
Translating 20 interactive lessons is authoring work, not drift repair. The sweep that produced this
issue was scoped to documentation that had fallen behind the 0.37 binary and the marketplace
catalogue; rewriting lesson prose belongs to a dedicated pass with its own review.
What was rejected
inlining pipeline is deliberate (
extractEmbedscopes CSS under.guide-embedded, wraps inlinescripts in an IIFE, strips the lesson's own footer).
/guidesand from the blog; removing theroute breaks inbound links that
check-dead-links.mjscurrently passes.and figures; a translation without a rendering check would ship broken lessons.
Revisit trigger
Act when either becomes true:
for an English query is worse than no lesson.