Nuxt 内容 Shiki 插件返回:错误 /home 未找到

发布于 2025-01-11 07:58:40 字数 839 浏览 0 评论 0原文

我正在尝试将语法荧光笔与 @nuxt/contentShiki

在我的 nuxt.config.js 项目文件中安装 shiki 包后。

import shiki from 'shiki'

...

export default {
  modules: ['@nuxt/content'],

  content: {
    markdown: {
      async highlighter() {
        const highlighter = await shiki.getHighlighter({
          theme: 'nord'
        })
        return (rawCode, lang) => {
          return highlighter.codeToHtml(rawCode, lang)
        }
      }
    }
  }
}

我得到了

Error
/home not found

但是当我删除内容中的 highlighter 方法时,一切正常。有人可以帮我吗?

I'm trying to use syntax highlighter with @nuxt/content and Shiki.

After installing the shiki package in my nuxt.config.js project file.

import shiki from 'shiki'

...

export default {
  modules: ['@nuxt/content'],

  content: {
    markdown: {
      async highlighter() {
        const highlighter = await shiki.getHighlighter({
          theme: 'nord'
        })
        return (rawCode, lang) => {
          return highlighter.codeToHtml(rawCode, lang)
        }
      }
    }
  }
}

I got

Error
/home not found

But when I remove the highlighter method in the content, everything works fine. Can anyone help me please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你在我安 2025-01-18 07:58:40

不要添加导入和 await shiki,而是使用 require 方法来使用它。

  content: {
    markdown: {
      async highlighter () {
        const highlighter = await require('shiki').getHighlighter({
          theme: 'github-dark'
        })

        return (rawCode, lang) => {
          return highlighter.codeToHtml(rawCode, lang)
        }
      }
    }
  },

这就是我为了让它发挥作用所做的。

上述问题的另一种可行的解决方案是:

import { getHighlighter } from 'shiki';

// ...

  content: {
    markdown: {
      async highlighter () {
        const highlighter = await getHighlighter({
          theme: 'github-dark'
        })

        return (rawCode, lang) => {
          return highlighter.codeToHtml(rawCode, lang)
        }
      }
    }
  },

Instead of adding the import and await shiki, use the require method of using it.

  content: {
    markdown: {
      async highlighter () {
        const highlighter = await require('shiki').getHighlighter({
          theme: 'github-dark'
        })

        return (rawCode, lang) => {
          return highlighter.codeToHtml(rawCode, lang)
        }
      }
    }
  },

This is what I did to get it working.

An alternative solution to the above that also works would be:

import { getHighlighter } from 'shiki';

// ...

  content: {
    markdown: {
      async highlighter () {
        const highlighter = await getHighlighter({
          theme: 'github-dark'
        })

        return (rawCode, lang) => {
          return highlighter.codeToHtml(rawCode, lang)
        }
      }
    }
  },
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文