sync(launcher-test): markdown.lua picks up image_missing localization

markdown.lua now mirrors the launcher byte-for-byte: M.render takes an
optional t 6th arg that the launcher threads its ctx.t through for the
image-missing placeholder. Pure-additive parameter — existing test
callers (which never invoke M.render) are unaffected.

manifest.lib: bump 0.2.0 -> 0.3.0. The render-signature change is
API-shaped; downstream consumers that call the helper directly may want
to opt in to the new arg.
This commit is contained in:
Calic
2026-06-11 10:22:43 +02:00
parent d9ec4d11dc
commit 0fbdcd276a
2 changed files with 9 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
{ {
"id": "lib-management.launcher-test", "id": "lib-management.launcher-test",
"role": "test", "role": "test",
"version": "0.2.0", "version": "0.3.0",
"api_min": "0.1", "api_min": "0.1",
"deps": [] "deps": []
} }

View File

@@ -176,7 +176,11 @@ local function render_spans(spans, x, y, max_w, size)
return cur_y + line_h return cur_y + line_h
end end
function M.render(blocks, x, y, max_w, module_id_for_imgs) -- `t` (optional, 6th arg) is the launcher's ctx.t string-lookup function.
-- When present, M.render uses it to localize the image-missing placeholder
-- via the `image_missing_fmt` key. Callers that don't have a t (e.g. tests)
-- may pass nil; the hardcoded English fallback then renders verbatim.
function M.render(blocks, x, y, max_w, module_id_for_imgs, t)
local cur_y = y local cur_y = y
for _, b in ipairs(blocks) do for _, b in ipairs(blocks) do
if b.type == "h1" then if b.type == "h1" then
@@ -216,7 +220,9 @@ function M.render(blocks, x, y, max_w, module_id_for_imgs)
-- assume a 16:9 max_w-wide image for layout. -- assume a 16:9 max_w-wide image for layout.
cur_y = cur_y + math.floor(max_w * 9 / 16) + PARA_GAP cur_y = cur_y + math.floor(max_w * 9 / 16) + PARA_GAP
else else
engine.render.draw_text("[image missing: " .. b.src .. "]", local missing_text = t and t("image_missing_fmt", b.src)
or ("[image missing: " .. b.src .. "]")
engine.render.draw_text(missing_text,
x, cur_y, BODY_SIZE, COLOR_DIM) x, cur_y, BODY_SIZE, COLOR_DIM)
local _, h = engine.render.measure_text("[image]", BODY_SIZE) local _, h = engine.render.measure_text("[image]", BODY_SIZE)
cur_y = cur_y + h + PARA_GAP cur_y = cur_y + h + PARA_GAP