Bird
Raised Fist0
Svelteframework~5 mins

HTML rendering with {@html} in Svelte - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the {@html} tag do in Svelte?
It allows you to insert raw HTML code directly into your component's output, rendering it as HTML instead of plain text.
Click to reveal answer
intermediate
Why should you be careful when using {@html} with user input?
Because it can lead to security risks like Cross-Site Scripting (XSS) if the HTML is not sanitized before rendering.
Click to reveal answer
beginner
How do you use {@html} to render a variable containing HTML in Svelte?
Use it inside curly braces like this: {@html variableName}, where variableName holds the HTML string.
Click to reveal answer
intermediate
Can {@html} render scripts or styles inside the HTML string?
Scripts inside {@html} are inserted but may not execute as expected. Styles will apply if valid. It's best to avoid scripts for security and behavior reasons.
Click to reveal answer
intermediate
What is a safer alternative to {@html} when displaying user content?
Sanitize the HTML string before using {@html} or use plain text rendering to avoid injecting unsafe HTML.
Click to reveal answer
What does {@html} do in Svelte?
AEscapes HTML tags to show as text
BCreates a new HTML element
CImports external HTML files
DRenders a string as raw HTML inside the component
Which risk is most associated with using {@html} on unsanitized user input?
ACross-Site Scripting (XSS)
BMemory leak
CSlow rendering
DCSS conflicts
How do you insert a variable named 'content' as HTML using {@html}?
A<html>{content}</html>
B{content}
C{@html content}
D<div>{@html content}</div>
What happens if you put a <script> tag inside {@html} content?
AThe script is converted to plain text
BThe script may not run as expected and can cause security issues
CThe script is automatically removed
DThe script runs normally without issues
What is the best practice before using {@html} with dynamic content?
ASanitize the content to remove unsafe HTML
BUse it directly without checks
CConvert HTML to uppercase
DWrap content in a <pre> tag
Explain how {@html} works in Svelte and why you should be cautious when using it.
Think about how raw HTML can affect your page and security.
You got /4 concepts.
    Describe a safe way to display user-generated HTML content in a Svelte app.
    Focus on security and content safety.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the {@html} tag do in a Svelte component?
      easy
      A. It escapes HTML tags and shows them as plain text.
      B. It renders a string as actual HTML inside the component.
      C. It creates a new HTML element dynamically.
      D. It comments out HTML code so it is not rendered.

      Solution

      1. Step 1: Understand {@html} purpose

        The {@html} tag tells Svelte to treat the string as HTML, not plain text.
      2. Step 2: Compare with normal rendering

        Normally, Svelte escapes HTML tags to show them as text, but {@html} renders them as real HTML.
      3. Final Answer:

        It renders a string as actual HTML inside the component. -> Option B
      4. Quick Check:

        {@html} = renders HTML [OK]
      Hint: Remember {@html} outputs HTML, not plain text [OK]
      Common Mistakes:
      • Thinking {@html} escapes HTML instead of rendering it
      • Confusing {@html} with creating new elements
      • Assuming {@html} comments out code
      2. Which of the following is the correct syntax to render HTML stored in a variable htmlContent inside a Svelte component?
      easy
      A. <div>{@html htmlContent}</div>
      B. <div>{@html(htmlContent)}</div>
      C. <div>{htmlContent}</div>
      D. <div>{#html htmlContent}{/html}</div>

      Solution

      1. Step 1: Recall correct {@html} syntax

        The correct syntax is {@html variableName} without parentheses or block tags.
      2. Step 2: Check each option

        <div>{htmlContent}</div> renders as plain text, B uses invalid parentheses, D uses wrong block syntax.
      3. Final Answer:

        <div>{@html htmlContent}</div> -> Option A
      4. Quick Check:

        Correct {@html} syntax = {@html variable} [OK]
      Hint: Use {@html variable} without parentheses or blocks [OK]
      Common Mistakes:
      • Adding parentheses around variable in {@html}
      • Using block syntax like {#html}{/html}
      • Not using {@html} and rendering raw string
      3. Given this Svelte code:
        <script>
          let htmlString = '<strong>Hello</strong> <em>World</em>';
        </script>
      
        <div>{@html htmlString}</div>

      What will be the rendered output in the browser?
      medium
      A. Hello World (plain text, no formatting)
      B. <strong>Hello</strong> <em>World</em> (raw text)
      C. Hello World (formatted text)
      D. An error occurs because of unsafe HTML

      Solution

      1. Step 1: Understand {@html} rendering

        {@html renders the string as HTML, so tags become real formatting.
      2. Step 2: Analyze the string content

        The string contains <strong> and <em> tags, so output will be bold and italic text.
      3. Final Answer:

        <strong>Hello</strong> <em>World</em> (formatted text) -> Option C
      4. Quick Check:

        HTML string renders as formatted text [OK]
      Hint: {@html} renders tags as formatting, not raw text [OK]
      Common Mistakes:
      • Expecting tags to show as text instead of formatting
      • Assuming plain text output without tags
      • Thinking unsafe HTML causes runtime error
      4. What is the main problem with this Svelte code?
        <script>
          let unsafeHtml = '';
        </script>
      
        <div>{@html unsafeHtml}</div>
      medium
      A. It can run unsafe scripts and cause security issues (XSS).
      B. Svelte automatically sanitizes the HTML, so no problem.
      C. The image will not display because of invalid src attribute.
      D. It will cause a syntax error because of quotes inside the string.

      Solution

      1. Step 1: Identify unsafe HTML usage

        The string contains an image with an onerror event that runs JavaScript.
      2. Step 2: Understand {@html} risks

        {@html renders raw HTML, so malicious scripts can run causing XSS security issues.
      3. Final Answer:

        It can run unsafe scripts and cause security issues (XSS). -> Option A
      4. Quick Check:

        {@html with unsafe HTML = security risk [OK]
      Hint: Never use {@html} with untrusted content [OK]
      Common Mistakes:
      • Thinking Svelte sanitizes HTML automatically
      • Assuming syntax error due to quotes inside string
      • Believing image won't display due to src
      5. You want to display user-generated content that may contain HTML tags safely in your Svelte app. Which approach is best?
      hard
      A. Wrap the user content in a <pre> tag and use {@html}.
      B. Escape the user content and render it normally without {@html}.
      C. Use {@html} directly on the user content to render formatting.
      D. Sanitize the user content to remove unsafe tags, then use {@html}.

      Solution

      1. Step 1: Understand risks of raw {@html}

        Using {@html} directly on user content risks XSS attacks if content is unsafe.
      2. Step 2: Best practice for safe HTML rendering

        Sanitize user content to remove dangerous tags/scripts, then render with {@html} for formatting.
      3. Final Answer:

        Sanitize the user content to remove unsafe tags, then use {@html}. -> Option D
      4. Quick Check:

        Sanitize first, then {@html} = safe rendering [OK]
      Hint: Always sanitize user HTML before {@html} rendering [OK]
      Common Mistakes:
      • Using {@html} directly on raw user input
      • Escaping content but losing formatting
      • Using <pre> which shows raw text, not formatted HTML
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard