Author
ブラウザ・CLI 双方での記述
イベント、期間、レーン、注釈を `.tdsl` として記述し、Playground での即時プレビューを経て、差分レビューに適した形式でソースを保管できます。
ブラウザ起点の年表オーサリング
年表をテキストで記述し、ブラウザで即座に検証・プレビューできます。Playground で構成を検証してから CLI や CI へ移行でき、歴史、創作設定、教材、組織の沿革をGit管理しやすい形式で扱えます。
timeline "架空世界年表" {
range 980..1260;
}
lane "王国" as realm { kind custom; order 10; }
lane "事件" as incident { kind custom; order 20; }
span realm 990..1184 "灰都王朝" {};
event incident 1042 "北方遠征" {};
event_range incident 1130..1137 "継承戦争" {};Timeline DSL は、手作業の図版編集ではなく、レビュー可能な入力ファイルとCLI出力を中心にした年表作成を目指します。
Author
イベント、期間、レーン、注釈を `.tdsl` として記述し、Playground での即時プレビューを経て、差分レビューに適した形式でソースを保管できます。
Validate
Playgroundで構文やlane参照を確認し、ローカルやCIでは `tdsl check` と `tdsl lint` で品質を担保できます。
Render
ドキュメントサイトや GitHub Pages 等に容易に組み込める、静的な成果物を生成できます。ブラウザのPlaygroundではHTML / SVG / `.tdsl` を保存でき、PNG / PDF への出力とWikidataの解決はCLIで行います。
ソースから成果物へ
`.tdsl` は成果物そのものではなく、年表を再生成するための入力です。ブラウザで試し、保存したファイルをCLIとCIへ渡すことで、長く更新する年表ほど扱いやすくなります。
Playgroundで `.tdsl` を編集し、WASMによる検証とSVGプレビューをすぐ確認します。
ダウンロードした `.tdsl` を `tdsl check` と `tdsl lint` に通し、参照ミスや重複を公開前に見つけます。
GitHub Actionsで検証を続け、教材、社内資料、ドキュメントサイトへ置けるHTML / SVG / PNG / PDFへ描画します。
一般向けの年表メーカーではなく、更新し続ける年表をテキストとして扱いたい人に向いています。
架空世界年表
王朝、戦争、人物の生没、章ごとの事件をレーンで分け、設定資料として更新し続けられます。
日本史 / 世界史
時代区分と出来事を並べ、授業で扱う範囲だけをHTMLとして配布できます。
Company history
創業、製品発表、拠点展開、制度変更を一つの履歴として保守できます。
Wikidata scaffold
Wikidataの候補探索から手元の追記まで、出典確認前の仮説もテキストで管理できます。
`.tdsl` ソースと、そこから生成した実際の SVG を並べて見せます。ここでの出力はすべて本体の WASM レンダリングです。
timeline "日本近現代史" {
title "日本近現代史";
unit year;
range 1853..1926;
calendar proleptic_gregorian;
}
lane "政治" as politics { kind custom; order 10; }
lane "外交" as diplomacy { kind custom; order 20; }
lane "文化" as culture { kind custom; order 30; }
event politics 1868 "明治改元" { tags ["era"]; };
span politics 1868..1912 "明治時代" { tags ["era"]; };
span politics 1912..1926 "大正時代" { tags ["era"]; };
event diplomacy 1853 "黒船来航" {};
event diplomacy 1854 "日米和親条約" {};
event diplomacy 1894 "日清戦争開始" {};
event diplomacy 1904 "日露戦争開始" {};
event culture 1872 "新橋〜横浜間鉄道開業" {};
event culture 1885 "内閣制度発足" {};
timeline "架空世界年表" {
title "架空世界年表";
unit year;
range 980..1260;
calendar proleptic_gregorian;
}
lane "王朝" as realm { kind custom; order 10; }
lane "事件" as incident { kind custom; order 20; }
lane "人物" as people { kind custom; order 30; }
span realm 990..1184 "灰都王朝" { tags ["dynasty"]; };
span realm 1200..1260 "東方連盟" { tags ["dynasty"]; };
event incident 1042 "北方遠征" {};
event_range incident 1130..1137 "継承戦争" { tags ["war"]; };
span people 1088..1162 "巡礼王" { tags ["person"]; };
event people 1184 "王朝終焉" {};
timeline "ライブラリ リリースサイクル" {
title "ライブラリ リリースサイクル";
unit year;
range 2020..2028;
calendar proleptic_gregorian;
}
lane "メジャー" as major { kind custom; order 10; }
lane "LTS" as lts { kind custom; order 20; }
span major 2020..2022 "v1.x" {};
span major 2022..2024 "v2.x" {};
span major 2024..2026 "v3.x" {};
span major 2026..2028 "v4.x" {};
span lts 2022..2025 "v2.x LTS" { tags ["lts"]; };
span lts 2024..2027 "v3.x LTS" { tags ["lts"]; };
event major 2022 "v2.0 リリース" {};
event major 2024 "v3.0 リリース" {};
event major 2026 "v4.0 リリース" {};
年表を作る方法は他にもあります。その中で Timeline DSL が何を優先しているかを正直に書きます。
図形ツールや表計算は入力ミスを指摘しません。Timeline DSL は `tdsl check` / `tdsl lint` で参照切れや重複を事前に検出します。
手書き図は変更のたびに描き直しが必要です。`.tdsl` はテキストなので Git で差分・レビューし、Wikidata や CSV からも再生成できます。
ブラウザの Playground とローカル CLI が同じ検証ロジックを共有するため、CI への組み込みも自然に行えます。
| 方法 | 検証 | 差分・レビュー | 出力 |
|---|---|---|---|
| Timeline DSL | あり(診断付き) | テキストで Git 差分 | HTML / SVG / PNG / PDF |
| 手書き図(図形ツール) | なし | 画像差分のみ | 画像(再利用困難) |
| スプレッドシート | なし | セル単位で追跡困難 | 表(年表表現に不向き) |
| 汎用 diagram DSL(Mermaid 等) | 構文エラーのみ | テキストで Git 差分 | 図(年表専用機能は限定的) |
Playground で構成を検証できたら、お使いの環境に合わせて CLI を導入し、ローカルでの保守や CI による自動ビルド環境を構築できます。詳しいセットアップはQuick Startで確認できます。
macOS / Linux
brew tap keroway/tap
brew install tdslmacOS / Linux(ワンラインインストール)
curl -sSfL https://raw.githubusercontent.com/keroway/timeline-dsl/main/install.sh | shWindows
irm https://raw.githubusercontent.com/keroway/timeline-dsl/main/install.ps1 | iexRust ツールチェイン
cargo binstall tdsl-cliPlayground はインストール不要、ブラウザで今すぐ試せます。導入手順や文法の詳細はドキュメントにまとまっています。