API Reference PhoenixKitOG v#0.1.1

Copy Markdown View Source

Modules

OpenGraph template + hierarchical assignment plugin for PhoenixKit.

Thin wrapper around PhoenixKit.Activity.log/1 for the OG plugin.

Context for binding templates to scopes inside a consumer module's hierarchy.

Pure helpers for manipulating a template's canvas JSON. The editor LV calls these on the in-memory canvas map; persistence is a separate Templates.update/2 step.

Central mapping from error atoms (returned by PhoenixKitOG.Templates, PhoenixKitOG.Assignments, and the render pipeline) to translated, user-facing strings.

Centralized path helpers — every link routes through PhoenixKit.Utils.Routes.path/1 so the configured admin prefix and locale handling are honored.

Top-level rendering facade. Given a template + binding values, produces a PNG (cached) and returns its public URL.

On-disk cache for rendered OG PNGs.

Stand-in image for previews and any other spot that needs a reference visual when a real image slot is unresolved.

SVG → PNG conversion. Shells out to rsvg-convert (librsvg). The binary is part of the librsvg2-bin package on Debian/Ubuntu — if not installed, rendering returns {:error, :rasterizer_missing} and refine_og/4 falls back to the input OG map so nothing crashes user-facing.

Converts a canvas spec + binding values into a clean SVG string suitable for rasterization by rsvg-convert / librsvg.

Route registration for routes that can't be inlined on a Tab — notably the per-template editor at /admin/open-graph/:uuid/edit.

Binds a template to a scope inside a consumer module's hierarchy.

A reusable OpenGraph design — canvas + ordered elements with variable bindings. Persisted as JSONB so the structure can evolve (new element types) without a schema change.

Scans a canvas for {{slot}} references — the abstract, template- local names that get wired to concrete module variables at assignment time.

Context for managing OpenGraph templates. CRUD only — the editor and renderer live elsewhere.

Registry + resolver for module-exposed variables that templates can bind their slots to.

Assignments admin — the overview of every template binding + a single modal for creating or editing an assignment.

The OG template editor — WYSIWYG SVG canvas on the left, element library + property panel on the right.

HEEx render template for the OG editor. Split out from the LV module so the event-handler code stays scannable.

Serves rendered OG PNGs from the on-disk cache.

Admin landing page for the OG module — lists templates and the create/delete actions. The visual editor is Phase 2; this page only carries minimal CRUD scaffolding so the module is interactive end-to-end.