コンテンツにスキップ

Configuration

Timeline DSL は専用の設定ファイルを前提にせず、.tdsl ファイル内の宣言とCLIオプションで挙動を指定します。

年表全体の表示名、単位、範囲、暦法は timeline ブロックで宣言します。

timeline "中国王朝年表" {
title "中国王朝年表";
unit year;
range -500..2000;
calendar proleptic_gregorian;
}

縦軸カテゴリは lane で定義します。spaneventevent_range は定義済みlaneを参照します。

lane "漢" as han { kind dynasty; order 20; }
span han -206..220 "漢" { tags ["dynasty"]; source wd:Q7209; id "span:han"; };
event han -209 "陳勝・呉広の乱" {};
event_range han 184..204 "黄巾の乱" { tags ["war"]; };

buildrender は、Wikidata import を含む .tdsl を処理するときに取得処理を行います。

Terminal window
tdsl build china_with_import.tdsl --pretty
tdsl render china_with_import.tdsl --output china.html

オフラインで静的項目だけを処理する場合は --offline を指定します。

Terminal window
tdsl build china_with_import.tdsl --offline --pretty

キャッシュを使わずに再取得する場合は --no-cache、キャッシュTTLを変える場合は --cache-ttl <秒> を使います。既定TTLは86400秒です。

tdsl render はスタンドアロンHTMLを出力します。表示調整はCLIオプションで指定します。

Terminal window
tdsl render sample.tdsl \
--output sample.html \
--scale 5 \
--lane-height 60 \
--left-gutter 120 \
--top-margin 40 \
--theme pastel

--themedefaultdarkprintpastel を指定できます。追加CSSを注入する場合は --custom-css path/to/custom.css を使います。

tdsl render は HTML / SVG / PNG / PDF を出力できます。--format で切り替え、用途に応じて使い分けます。

形式オプション特徴主な用途
HTML(デフォルト)スタンドアロン HTMLWeb 表示・ブラウザ確認
SVG--format svgベクタ / スケーラブルWeb 埋め込み・記事
PNG--format pngラスタ(v1.10.0〜)SNS 共有・プレビュー
PDF--format pdfベクタ(v1.11.0〜)印刷・高解像度表示

PNG はラスタ画像のため解像度を調整できます。--dpi <N>(デフォルト 96)で SVG ユーザー単位からの倍率を dpi / 96 で決めるか、--png-scale <倍率> で倍率を直接指定します。両者は同時に指定できません(v1.11.0〜)。

Terminal window
tdsl render sample.tdsl --format png --dpi 192 --output sample.png
tdsl render sample.tdsl --format png --png-scale 2.0 --output sample.png

PDF はベクタ形式で出力するため、印刷や高解像度表示でも劣化しません(v1.11.0〜)。

Terminal window
tdsl render sample.tdsl --format pdf --output sample.pdf

各オプションの詳細は Commandsrender を参照してください。

tdsl linttextjson の出力形式に対応します。

Terminal window
tdsl lint sample.tdsl
tdsl lint sample.tdsl --format json
tdsl lint sample.tdsl --fix

--fix はタグ重複除去、空タグ除去、start,end の入れ替え、未設定IDの安定生成など、安全な修正をファイルへ適用します。