Files
konabot/konabot/plugins/markdown/core.py
MixBadGun 03900f4416
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
成语接龙接入 LLM 和 MarkDown、LaTeX 接入
2025-11-09 23:12:04 +08:00

57 lines
1.8 KiB
Python

from loguru import logger
from playwright.async_api import ConsoleMessage, Page
from konabot.common.web_render import konaweb
from konabot.common.web_render.core import WebRenderer
class MarkDownCore:
@staticmethod
async def render_markdown(markdown_text: str, theme: str = "dark", params: dict = {}) -> bytes:
async def page_function(page: Page):
async def on_console(msg: ConsoleMessage):
logger.debug(f"WEB CONSOLE {msg.text}")
await page.emulate_media(color_scheme=theme)
page.on('console', on_console)
await page.locator('textarea[name=content]').fill(markdown_text)
await page.wait_for_timeout(200)
await page.locator('#button').click()
await page.wait_for_timeout(200)
out = await WebRenderer.render(
konaweb('markdown'),
target='#main',
other_function=page_function,
params=params
)
return out
@staticmethod
async def render_latex(text: str, theme: str = "dark") -> bytes:
params = {
"size": "2em",
}
async def page_function(page: Page):
async def on_console(msg: ConsoleMessage):
logger.debug(f"WEB CONSOLE {msg.text}")
await page.emulate_media(color_scheme=theme)
page.on('console', on_console)
await page.locator('textarea[name=content]').fill(f"$$ {text} $$")
await page.wait_for_timeout(200)
await page.locator('#button').click()
await page.wait_for_timeout(200)
out = await WebRenderer.render(
konaweb('latex'),
target='#main',
other_function=page_function,
params=params
)
return out