entari-plugin-htmlrender
Entari 的 provider-neutral HTML、Markdown、模板与栅格场景渲染库。
普通调用收口为四个显式 contract:HtmlRenderer rasterize 内容,TemplateRenderer render 模板 HTML,ResourceAccess fetch/publish 资源,GraphicsRenderer rasterize RasterScene。Entari 只负责组合并拥有 HtmlRenderService 的生命周期;业务代码不查找默认 runtime。
安装
Python 版本要求保持为 >=3.10,<4.0。按实际能力选择 extra:
uv add "entari-plugin-htmlrender[playwright]>=0.1.0,<0.2"
uv run playwright install chromium
# 或选择:takumi / pillow / skia / filehost / sentry / prometheus
Entari 配置中的插件短名为 htmlrender,字段直接对应 HtmlRenderConfig:
plugins:
htmlrender:
provider: playwright
startup: probe
provider_config:
engine: chromium
graphics:
backend: pillow
provider 可为 playwright、takumi、第三方 Provider ID 或 null。Pillow/Skia 实现独立的 Graphics contract,不属于 HTML Provider。
常用 API
在 Entari handler 中让 DI 注入 concrete HtmlRenderService:
from entari_plugin_htmlrender import (
RasterOptions,
RenderedImage,
)
from entari_plugin_htmlrender.entari import HtmlRenderService
async def build_card(service: HtmlRenderService) -> RenderedImage:
return await service.renderer.rasterize_markdown(
"# Hello, Entari",
raster=RasterOptions(width=720),
)
框架无关的业务函数应进一步收窄为它真正需要的 contract:
from entari_plugin_htmlrender import HtmlRenderer, RenderedImage
async def render_badge(renderer: HtmlRenderer) -> RenderedImage:
return await renderer.rasterize_html("<b>ready</b>")
HtmlRenderService 直接暴露 .renderer、.templates、.resources、.graphics 与 .capabilities。Playwright/Takumi 原生对象只通过service.capabilities 的显式 lease 使用;Pillow/Skia 的选择留在配置中,调用方始终使用 service.graphics。
生命周期
插件通过 Entari add_service 注册 HtmlRenderService。Launart 在 preparing阶段启动所需 filehost 并按 startup 策略启动/探测 Provider;在 cleanup 阶段停止接纳新操作、排空在途操作、关闭 runtime,最后关闭 filehost。热卸载复用同一边界,业务代码不调用 service 的内部启动或关闭方法。
文档与示例
- 完整文档
examples/template_render:Entari DI 与模板 rasterizationexamples/remote_browser:远程 Playwright capabilityexamples/takumi_capability:Takumi managed sessionexamples/graphics_render:GraphicsRenderer与RasterSceneexamples/echo-provider:第三方 Provider v2 entry point
License
项目使用 MIT License。启用第三方 Provider 或 native backend 前,请同时检查其依赖与分发许可。
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file entari_plugin_htmlrender-0.1.0.tar.gz.
File metadata
- Download URL: entari_plugin_htmlrender-0.1.0.tar.gz
- Upload date:
- Size: 2.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95e582d7d1f5f9e538ef667306d21edea8361990e694cbbad36080918d820cf4
|
|
| MD5 |
31b09d96fb229b67c986ec17f2599be4
|
|
| BLAKE2b-256 |
d0a01383d39294d24113912d8bce011032642da0fbcbb8e3b8895cea54ec272f
|
Provenance
The following attestation bundles were made for entari_plugin_htmlrender-0.1.0.tar.gz:
Publisher:
publish.yml on entanex/entari-plugin-htmlrender
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
entari_plugin_htmlrender-0.1.0.tar.gz -
Subject digest:
95e582d7d1f5f9e538ef667306d21edea8361990e694cbbad36080918d820cf4 - Sigstore transparency entry: 2464378796
- Sigstore integration time:
-
Permalink:
entanex/entari-plugin-htmlrender@dc7763555a61e844e12d40ec179ce0f28c17989d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/entanex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dc7763555a61e844e12d40ec179ce0f28c17989d -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file entari_plugin_htmlrender-0.1.0-py3-none-any.whl.
File metadata
- Download URL: entari_plugin_htmlrender-0.1.0-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c982d3e8846f80598d66bd5039810d0d21303070b8a153014457ec4a6782c9fb
|
|
| MD5 |
5b534aaa00386b29d512d50b9bf70851
|
|
| BLAKE2b-256 |
0dd1229c5569dc41eb5ab82ae94b2ca98803f266c6f2390712dd094173024694
|
Provenance
The following attestation bundles were made for entari_plugin_htmlrender-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on entanex/entari-plugin-htmlrender
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
entari_plugin_htmlrender-0.1.0-py3-none-any.whl -
Subject digest:
c982d3e8846f80598d66bd5039810d0d21303070b8a153014457ec4a6782c9fb - Sigstore transparency entry: 2464379706
- Sigstore integration time:
-
Permalink:
entanex/entari-plugin-htmlrender@dc7763555a61e844e12d40ec179ce0f28c17989d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/entanex
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@dc7763555a61e844e12d40ec179ce0f28c17989d -
Trigger Event:
workflow_dispatch
-
Statement type: