ifrvn / cecilia

A Koishi bot and his plugins.
1 stars 0 forks source link

喜报的一些小改善 #5

Closed TTsdzb closed 1 year ago

TTsdzb commented 1 year ago

简化了 HTML 中用于计算字体大小的代码。换行其实只用 <br/> 就可以实现,这样可以把所有的文字放在一个 div 里,也就不需要在计算字体大小时使用 forEach 了。

使用 URI 加载图片,这样可以使插件不需要把图片读进来就能传递给浏览器。由于反斜杠 \ 在 CSS 中有转义作用,这里将其替换,避免在 Windows 平台上找不到图片。

ifrvn commented 1 year ago

测了下用 file:// 不行的诶,图片加载不了,原因是 pptr 开的 url 是 about:blank ,被 Chrome 禁止访问本地资源了。

https://stackoverflow.com/questions/55078896/how-to-point-puppeteer-to-local-images-fonts

TTsdzb commented 1 year ago

我写的另外两个插件 longmaifriend-image 没出这个问题,但它们是使用 Puppeteer 提供的内置组件渲染网页,而不是直接调用 render

我刚刚看了一下,Puppeteer 在渲染内置组件的时候使用了一个本地 URL:

// ...
} else {
          await page.goto('file:///' + resolve(__dirname, '../index.html'))
          // ...
          await page.setContent(`<html${lang}>
            <head>${head.join('')}</head>
            <body style="${bodyStyle}">${content}</body>
          </html>`)
}
// ...

所以不会出现上述问题。

那么要改这个地方的话,要么把页面整个改成内置组件,要么让上游的 Puppeteer 插件来修这个问题……

ifrvn commented 1 year ago

改内置组件不好改,没法用 Githubissues.

  • Githubissues is a development platform for aggregating issues.