From aedf23f8582e32a6b94b81ddba9b323831f2b22a Mon Sep 17 00:00:00 2001 From: wulinsheng123 <409187100@qq.com> Date: Thu, 26 Jan 2023 07:21:15 +0800 Subject: [PATCH] fix: component is not able to use a custom theme anymore (#5952) * Astro component is not able to use a custom theme anymore * Astro component is not able to use a custom theme anymore * Astro component is not able to use a custom theme anymore Co-authored-by: Nate Moore --- .changeset/ten-icons-raise.md | 5 +++++ packages/astro/components/Code.astro | 3 +-- packages/astro/components/Shiki.js | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 .changeset/ten-icons-raise.md 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;