Skip to main content

Module og

Module og 

Source
Expand description

分享图渲染:文章图与站点图,均为 1200×630 PNG(见 docs/v1.0-重设计方案.md「分享图」)。

版式按效果稿「网站图标与分享图」画板放大一倍:文章图浅底,元信息、衬线标题(最多 三行)、摘要(最多两行)与底部文字标,右侧一条陶土橙细边;站点图深底,文字标、 两行标语与「地址·篇数」。

字体随二进制嵌入(scripts/subset-og-fonts.ts 裁剪的 Noto Serif / Sans SC),不读 系统字体,渲染结果与部署环境无关。SVG 文字不会自动折行,这里按字体字宽量出每行; 字体缺字时返回 OgError::MissingGlyph,由调用方改用站点图。

Structs§

SiteShareCard
站点分享图上的文字。
Style 🔒
一种文字样式。尺寸为 1200×630 画布上的像素。

Enums§

OgError

Constants§

CLAY 🔒
HEIGHT
POST_META 🔒
POST_SUMMARY 🔒
POST_TITLE 🔒
SITE_FOOTER 🔒
SITE_TAGLINE 🔒
SITE_WORDMARK 🔒
WIDTH
WORDMARK 🔒

Statics§

FONT_DB 🔒
SANS 🔒
SANS_BOLD 🔒
SERIF 🔒

Functions§

baseline_offset 🔒
行框顶到基线的距离:与 CSS 一样把行距差平分到字面上下。
ellipsize 🔒
末行加省略号,放不下时从尾部逐字退回;同时去掉省略号前的空格与句读。
flush 🔒
font_ref 🔒
is_cjk 🔒
is_no_break_after 🔒
is_no_break_before 🔒
measure 🔒
文字宽度(含字距)。缺字时报错。
rasterize 🔒
render_post
渲染文章分享图。
render_site
渲染站点分享图。标语两行各自折行,合计最多三行。
svg_open 🔒
text_block 🔒
自 top 起逐行写出文字,返回最后一行行框的底边。
tokens 🔒
切成折行的最小单位:一个汉字、一个西文词或一个空格。句读与闭括号并入前一个单位, 不出现在行首;开括号与开引号并入后一个单位,不留在行尾。
wordmark 🔒
文字标:陶土橙方点加「Yggdrasil」。方点边长约为字号的 0.53,圆角为边长的 0.25, 与字之间留约一个方点宽。
wrap 🔒
按宽度折行,最多 max_lines 行;超出时末行以「…」收尾。