mirror of
https://github.com/suyiiyii/nonebot-bison.git
synced 2025-06-05 19:36:43 +08:00
fix render encoding
This commit is contained in:
parent
272ce58b09
commit
2d44bc5dd1
@ -1,4 +1,5 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
import base64
|
||||||
from html import escape
|
from html import escape
|
||||||
from typing import Awaitable, Callable, Optional
|
from typing import Awaitable, Callable, Optional
|
||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
@ -91,7 +92,8 @@ class Render(metaclass=Singleton):
|
|||||||
lines = text.split('\n')
|
lines = text.split('\n')
|
||||||
parsed_lines = list(map(lambda x: '<p>{}</p>'.format(escape(x)), lines))
|
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))
|
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')
|
data = await self.render(url, target='div')
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
@ -10,5 +10,12 @@ if typing.TYPE_CHECKING:
|
|||||||
@pytest.mark.render
|
@pytest.mark.render
|
||||||
async def test_render(plugin_module: 'nonebot_hk_reporter'):
|
async def test_render(plugin_module: 'nonebot_hk_reporter'):
|
||||||
render = plugin_module.utils.Render()
|
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)
|
print(res)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user