--- title: Special tags --- ## {@html ...} ```svelte {@html expression} ``` In a text expression, characters like `<` and `>` are escaped; however, with HTML expressions, they're not. The expression should be valid standalone HTML — `{@html "
"}content{@html "
"}` will _not_ work, because `` is not valid HTML. It also will _not_ compile Svelte code. > Svelte does not sanitize expressions before injecting HTML. If the data comes from an untrusted source, you must sanitize it, or you are exposing your users to an XSS vulnerability. ```svelte

{post.title}

{@html post.content}
``` ## {@debug ...} ```svelte {@debug} ``` ```svelte {@debug var1, var2, ..., varN} ``` The `{@debug ...}` tag offers an alternative to `console.log(...)`. It logs the values of specific variables whenever they change, and pauses code execution if you have devtools open. ```svelte {@debug user}

Hello {user.firstname}!

``` `{@debug ...}` accepts a comma-separated list of variable names (not arbitrary expressions). ```svelte {@debug user} {@debug user1, user2, user3} {@debug user.firstname} {@debug myArray[0]} {@debug !isReady} {@debug typeof user === 'object'} ``` The `{@debug}` tag without any arguments will insert a `debugger` statement that gets triggered when _any_ state changes, as opposed to the specified variables. ## {@const ...} ```svelte {@const assignment} ``` The `{@const ...}` tag defines a local constant. ```svelte {#each boxes as box} {@const area = box.width * box.height} {box.width} * {box.height} = {area} {/each} ``` `{@const}` is only allowed as direct child of `{#if}`, `{:else if}`, `{:else}`, `{#each}`, `{:then}`, `{:catch}`, `` or ``.