mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-04 02:26:11 +08:00
fix render encoding
This commit is contained in:
parent
272ce58b09
commit
2d44bc5dd1
@ -1,4 +1,5 @@
|
||||
import asyncio
|
||||
import base64
|
||||
from html import escape
|
||||
from typing import Awaitable, Callable, Optional
|
||||
from urllib.parse import quote
|
||||
@ -91,7 +92,8 @@ class Render(metaclass=Singleton):
|
||||
lines = text.split('\n')
|
||||
parsed_lines = list(map(lambda x: '<p>{}</p>'.format(escape(x)), lines))
|
||||
html_text = '<div style="width:17em;padding:1em">{}</div>'.format(''.join(parsed_lines))
|
||||
url = 'data:text/html,{}'.format(quote(html_text))
|
||||
url = 'data:text/html;charset=UTF-8;base64,{}'.format(base64.b64encode(html_text.encode()).decode())
|
||||
logger.info(url)
|
||||
data = await self.render(url, target='div')
|
||||
return data
|
||||
|
||||
|
@ -10,5 +10,12 @@ if typing.TYPE_CHECKING:
|
||||
@pytest.mark.render
|
||||
async def test_render(plugin_module: 'nonebot_hk_reporter'):
|
||||
render = plugin_module.utils.Render()
|
||||
res = await render.text_to_pic('a\nbbbbbbbbbbbbbbbbbbbbbb\ncd')
|
||||
res = await render.text_to_pic('''a\nbbbbbbbbbbbbbbbbbbbbbb\ncd
|
||||
<h1>中文</h1>
|
||||
VuePress 由两部分组成:第一部分是一个极简静态网站生成器
|
||||
|
||||
(opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。
|
||||
|
||||
每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在用户浏览到的时候才按需加载。
|
||||
''')
|
||||
print(res)
|
||||
|
Loading…
x
Reference in New Issue
Block a user