57 lines
1.8 KiB
Python
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 |