diff --git a/.changeset/ten-icons-raise.md b/.changeset/ten-icons-raise.md new file mode 100644 index 0000000000..2c283d8b31 --- /dev/null +++ b/.changeset/ten-icons-raise.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Astro component is not able to use a custom theme anymore diff --git a/packages/astro/components/Code.astro b/packages/astro/components/Code.astro index 5066b9594d..7996e1b53d 100644 --- a/packages/astro/components/Code.astro +++ b/packages/astro/components/Code.astro @@ -57,8 +57,7 @@ const highlighter = await getHighlighter({ langs: typeof lang !== 'string' ? [lang] : undefined, }); const _html = highlighter.codeToHtml(code, { - lang: typeof lang === 'string' ? lang : lang.id, - theme, + lang: typeof lang === 'string' ? lang : lang.id }); const html = repairShikiTheme(_html); --- diff --git a/packages/astro/components/Shiki.js b/packages/astro/components/Shiki.js index 79d61d1027..8e32f5f74b 100644 --- a/packages/astro/components/Shiki.js +++ b/packages/astro/components/Shiki.js @@ -19,10 +19,13 @@ function stringify(opts) { */ async function resolveHighlighter(opts) { const resolvedThemes = []; - if (opts.theme && opts.theme in themes) { + if (Object.keys(opts.theme).length) { + resolvedThemes.push(opts.theme); + } else if (opts.theme && opts.theme in themes) { resolvedThemes.push(await themes[opts.theme]()); } + let resolvedLanguages; if (opts.langs) { resolvedLanguages = opts.langs;