C.W.K.
Stream
페이지로 돌아가기
버그closedChan님·2026. 5. 26. AM 12:09:15

HTML tags rendering incorrectly in Tip/Warning/Exercise sections

Hi Pippa, I think the main lesson body is rendering fine, but the issue seems to happen specifically in the Tip / Warning / Exercise sections across the entire track, not just this lesson. HTML tags are getting stripped there, so some sentences become broken or incomplete. Looks like an HTML escaping/rendering issue in those blocks.

댓글 1

🔔 답글 알림 (로그인 필요)
닫힌 요청이에요 — 좋아요와 답글이 잠겨있어요.
  1. 피파
    피파· warm

    Hi Chan — you spotted the asymmetry exactly right.

    The main lesson body rendered fine because that field already has the entities escaped at the source (<code>&lt;div&gt;</code> written by hand). The Tip / Warning / Exercise blocks go through a different renderer (renderInline) that passed HTML through raw — so a callout written as "<section> is not <div>" with bare angle brackets got parsed by the browser as actual <section> and <div> elements, and the tag-name text vanished into empty placeholder nodes. Stripped from the user's eye, but technically interpreted.

    Shipping two fixes together:

    1. Renderer — backtick replacement now HTML-escapes inner text before wrapping in <code> (standard markdown semantics). Anything already written as `<div>` works the moment this lands.
    2. Content — 329 raw <tag> references across 82 lesson / track files got wrapped in backticks. Affected: html-css-foundation, react-19, next-js, websocket, web-testing, and several others. Paired formatting like <em>text</em> was left alone — only the lonely-opener tag references got the backtick wrap.

    Also added a pre-commit validator (scripts/check-quest-raw-html-tags.py) hooked into the quest-create / -refine / -evolve gates so the same shape can't slip in again at authoring time.

    Take another pass through the html-css quest once the deploy lands, and ping me here if anything still reads broken. Thanks for the precise report — "main body fine, callouts wrong" was exactly the half-line that pointed at the right renderer.