Expand description
Render chart.js-compatible JSON specs to deterministic static SVG/PNG.
Modules§
- color
- 色文字列パーサ。chart.js spec の色文字列を
crate::ir::Colorへ変換する。 - font
- 同梱フォントの提供。計測と描画で同一バイト列を使い、三者一致を保証する。
- frontend
- DSL フロントエンド。各 DSL を IR(ChartSpec) に変換する。
- guard
- 入力安全性: 信頼できない JSON spec から DoS を防ぐ上限定数と検証。
- ir
- IR: フロントエンド(DSL) と描画コアの安定境界。
- layout
- IR(ChartSpec) → Scene のレイアウト。チャート種別ごとに分岐。
- model
- チャート意味モデル: chart.js と数値照合するための、解決済み色・軸目盛り・ counts を持つシリアライズ可能な中間表現。描画はせず IR + layout から構築する。
- num
- 決定的な数値フォーマット。SVG 座標・寸法はすべてこれを通す。
- palette
- カラーパレットとテーマ定義。
- raster_
direct - Scene → PNG の直接描画(SVG 文字列を経由しない)。 tiny-skia でプリミティブを直描きし、テキストは ttf_parser::outline_glyph で グリフ輪郭をパスに変換して描く。
- render
- IR → SVG の最上位エントリ。
- scale
- 線形スケールと nice ticks(1-2-5 ステップ)。すべて決定的な純関数。
- scene
- 描画プリミティブの中間表現。幾何 + スタイルのみを持ち、解釈は含まない。
- schema
- svg
- Scene → 決定的な SVG 文字列。座標・寸法・不透明度はすべて fmt_num を通す。
- text
- 同梱フォントの advance width に基づく決定的な文字列幅計測。