markdown-to-image-service:Markdown 转图片服务插件。支持 LaTeX、Mermaid、代码高亮等。

koishi-plugin-markdown-to-image-service

github
npm

简介

Koishi 的 Markdown 转图片服务插件,支持 LaTeX、Mermaid 与代码高亮。

命令

markdownToImage [markdownText:text]

将 Markdown 文本转换为图片。

  • 用法 1markdownToImage # Hello World
  • 用法 2:直接输入 markdownToImage,根据提示输入 Markdown 内容。

注意,由于使用了 jsDelivr CDN,国内用户可能需要使用代理以确保资源加载成功。

服务

本插件提供 markdownToImage 服务,供其他插件调用。

ctx.markdownToImage.convertToImage(markdownText: string): Promise<Buffer>

示例

import { Context, h } from 'koishi'
import {} from 'koishi-plugin-markdown-to-image-service'

export const inject = {
  required: ['markdownToImage'],
}

export function apply(ctx: Context) {
  ctx.command('test-md', '测试 Markdown 图片转换')
    .action(async ({ session }) => {
      const markdown = `
# Hello, Koishi

This is a test.

- LaTeX: $E=mc^2$
- Code:
  \`\`\`typescript
  console.log('Hello, world!')
  \`\`\`
- Mermaid:
  \`\`\`mermaid
  graph TD;
      A-->B;
      A-->C;
      B-->D;
      C-->D;
  \`\`\`
`
      const imageBuffer = await ctx.markdownToImage.convertToImage(markdown)
      return h.image(imageBuffer, 'image/png')
    })
}

致谢

QQ 群

  • 956758505

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
4 个赞

部分功能图片示例

点击展开




插件配置项示例(可选主题 20+)

点击展开

换主题请打开此选项


3 个赞

好耶!

3 个赞
TypeError: browser.createBrowserContext is not a function
    at convertToImage

咱就是说 能不能用标准的 ctx.puppeteer.page() 来创建 page 啊

@araea

2 个赞

新建实例,无法复现。


问:为什么不用 .page()

我曾经使用 pptr 服务时,同时打开多个 page 会因为页面焦点转移导致无法截图,直至超时。

1 个赞

目前怀疑是因为我的服务器操作系统太老(Windows Server 2012,基于 Windows 8.1),没法更新 Chrome,最新版的 Puppeteer 不再支持 Chrome 109。更新 plugin-puppeteer 至 3.9.0 会出现 puppeteer.launch() 返回的 Promise 卡死在 pending 状态的问题,故回滚到 3.8.0 一直未更新。

2 个赞

你是否需要一个解决方案?

我来还是你来?

1 个赞

目前根据群友的建议,我已安装最新版本的 Supermium 来代替 Chrome,它支持较旧的操作系统。现在可以正常使用了。

2 个赞

?若知(


这个别 role path 了,只能在实例文件夹里选

2 个赞

为什么我配置里设置了 Chrome 路径还是报错 puppeteer-finder 找不到浏览器啊,手动设置了路径为什么还会调用 puppeteer-finder?

2 个赞

我的问题。

1 个赞

谢谢你在此帖子中的所有回复,祝好,我亲爱的朋友,有你真好。

谢谢你!

1 个赞

不是哥们这意思是我不用再回复了吗()()

插件其实很不错,mermaid渲染很方便:+1:

2 个赞