This feature allows you to write <style>, #if, <script>, <script module> #each, #await, #snippet, @render @html, @const, <svelte:xxx>' in .md files
Basic
Here's a basic example with #if, #each, #await, @html, @const
- ${$.escape(str)}
Pass
Fail
Loading
${$.escape(res)}
${$.html("Content render with @html
")}<script>
let count = $state(0)
const items = ['foo', 'bar', 'zoo']
let boolVal = $state(false)
const promisePass = () => new Promise(resolve => {
setTimeout(() => {
resolve('Promise Passed!')
}, 2000)
})
const promiseFail = () => new Promise((_, reject) => {
setTimeout(() => {
reject('Promise Failed!')
}, 2000)
})
let promise = $derived(boolVal ? promisePass() : promiseFail())
</script>
<ul>
{#each items as item, i}
{@const str = `${i + 1}: ${item}`}
<li>
{str}
</li>
{/each}
</ul>
<button onclick="{() => boolVal = !boolVal}">
Toggle
</button>
{#if boolVal}
<h3 class="text-green">
Pass
</h3>
{:else}
<h3 class="text-red">
Fail
</h3>
{/if}
{#await promise}
<h3 class="text-orange">
Loading
</h3>
{:then res}
<h3 class="text-green">
{res}
</h3>
{:catch err}
<h3 class="text-red">
{err}
</h3>
{/await}
{@html "<h1>Content render with @html</h1>"} md
Syntax Restrictions
Always use quotes in markdown files.
-
+
<script>
let count = $state(0)
</script>
<button onclick={() => count++}></button>
<button onclick="{() => count++}"></button> md
Or you can wrap it with a div
-
+
+
+
<script>
let count = $state(0)
</script>
<button onclick={() => count++}></button>
<div>
<button onclick={() => count++}></button>
</div> md
A Counter
A counter
> A counter
<script>
let count = $state(0)
</script>
<div>
<button onclick={() => count++} style="margin-bottom: 12px;">
You've clicked {count} times
</button>
</div> md