You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte.js中‘Unexpected token’错误的排查与修复

修复SvelteMarkdown自定义组件的"Unexpected token"错误

你遇到的问题核心是混淆了React和Svelte的语法逻辑——Svelte不支持在JavaScript函数内编写JSX风格的标签返回,这也是报错指向<p>标签的原因。下面是具体修复方案:

1. 正确定义自定义组件

把你要自定义的p、code写成独立的Svelte组件,利用Svelte的插槽接收内容:

示例:CustomP.svelte

<p class="custom-paragraph">
  <slot /> <!-- 接收Markdown解析后的子内容 -->
</p>

示例:CustomCode.svelte

<pre>
  <code class="custom-code">
    <slot />
  </code>
</pre>

2. 在Markdown组件中引入并使用

在你的Markdown.svelte中,引入这些自定义组件,通过SvelteMarkdown的components属性传入:

<script>
import SvelteMarkdown from 'svelte-markdown';
import CustomP from './CustomP.svelte';
import CustomCode from './CustomCode.svelte';

// 你的Markdown内容
export let content = '';
</script>

<SvelteMarkdown components={{ p: CustomP, code: CustomCode }}>
  {content}
</SvelteMarkdown>

关键注意点

  • 不要在JavaScript函数里尝试return <p>...</p>这种写法,Svelte的模板逻辑和React JSX完全不同,组件的结构要写在脚本块外的模板区域,或拆成独立组件。
  • 如果需要简单的样式定制,也可以直接通过SvelteMarkdown的默认渲染类名加CSS处理,不一定非要自定义组件。

内容的提问来源于stack exchange,提问作者Jayu Wu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 21:12:36