2026-06-03 23:08:41 +08:00
|
|
|
{%- macro code_block(code, language="html", class="my-4") -%}
|
2025-06-20 08:29:29 +08:00
|
|
|
<div class="relative {{ class }}">
|
2026-06-03 18:59:21 +08:00
|
|
|
<pre class="scrollbar"><code class="language-{{ language }}">{{- code | escape -}}</code></pre>
|
2026-06-03 23:08:41 +08:00
|
|
|
<button onclick="const button = this; const code = this.parentElement.querySelector('pre code'); if (!code) return; navigator.clipboard.writeText(code.textContent || '').then(() => { button.classList.add('copied'); setTimeout(() => { button.classList.remove('copied') }, 2000); }).catch(err => { console.error('Failed to copy text: ', err); });" class="btn-icon-ghost size-8 absolute right-2.5 top-2 text-muted-foreground hover:text-foreground group">{% lucide "copy", {"class": "group-[.copied]:hidden" } %}{% lucide "check", {"class": "hidden group-[.copied]:block" } %}</button>
|
2025-04-25 16:42:10 +08:00
|
|
|
</div>
|
2026-06-03 23:08:41 +08:00
|
|
|
{%- endmacro -%}
|