#author("2026-02-02T11:15:45+09:00","","")
[[FrontPage]]
#author("2026-02-04T02:28:26+09:00","","")
- [[TIR/TODO]]
----

#ls2

* GitHubで仕様公開 [#n9060d7c]
- [[TOML:https://github.com/toml-lang]]
- [[JSON5:https://github.com/JSON5]]
- [[Google:Org-mode file format]]
- [[Google:Nix language]]
- [[Google:KDL (KDL Language)]]
- [[Google:Tree-sitter]]
- [[Google:EditorConfig]]

 tir/
   ├─ spec/            ← READMEが事実上の仕様
   ├─ tools/           ← tir tools
   ├─ parsers/         ← csv / tsv / md / etc
   └─ docs/
 
 tirenvi/              ← エディタ実装(完全分離)


* parser [#n17ad10d]

** spec [#x7d2b732]
-- stdin, stout

** file format [#if70435d]
- tec, csv
- ssv 空白区切り(whitespace)
-- whitespace-separated table/data: ps, ls -l, kubectl
- fix column
-- fixed-width format(fwf)
-- columnar text/column-alighned text
-- COBOL, main frame, 役所・物流・金融
-- カラム指定(fixed_width, aligned)
-- EXCEL風対話型
- md : gfm
- html
- exel(zip + ooxml)
- word(zip + ooxml)
- pandoc json:複雑?
- rdb + sql
- JOSN, YAML, TOML
- config, ini
- diff, git diff --stat

** parser option [#vb6e91dd]
- --mode=to-tir, [to-flat], [auto], [probe]先頭数行解析
-- to-flat実行でstderr出力なら実装なし?
-- あるいはstdoutがから?
- --info
-- { name:name, description:desc, version:ver }
- [--help]
- [--extentions]
-- [.tsv, .txt]

* tool [#ld419034]
- block取り出し、戻し(file name/ block index)
- merge
- rows加工
- jq, sed, awk,

* GitHub [#xb7526dc]
 tir/
  ├─ core/
  │   ├─ spec/        ← TIR仕様(最重要)
  │   ├─ schema/      ← JSON schema / version
  │   └─ docs/
  │
  ├─ tools/
  │   ├─ tir-cli
  │   ├─ tir-normalize
  │   ├─ tir-probe
  │   └─ ...
  │
  ├─ parsers/
  │   ├─ csv/
  │   ├─ tsv/
  │   ├─ md/
  │   ├─ html/
  │   └─ ...
  │
  ├─ examples/
  │
  └─ README.md

* 将来 [#g10b1a74]
- homebrew, apt, cargo, pip, npm

* 拡張子 [#c0d05778]
- 拡張子tirファイルの活用方法を考えました。
- cat hoge.md | md-parser -> origin.tir
- hoge.mdをtirに変換します。
- cat origin.tir | tir blocks select 2 | tir rows swap 3 5 | tir merge origin.tir | md-parser > updated.md
- tirの第2ブロックを取り出して3,5行目を入れ替えて元の第2ブロックと置き換えてmdとして保存する
- tir merge origin.tir ではなくて tir merge hoge.md の方が良いか?
- これだとtirファイルはいりません:NGパーサーがわからない
- merge より applay
- md-parser hoge.md | tir block 2 rows swap 3 5 | md-parser > updated.md

* options [#a14b5b92]
- オプションを後から追加して既存パーサーと衝突した場合はどうしますか
-- 既存パーサーが使えなくなるかも
-- -a のような一文字オプションは使わないことで予防する
-- もっと良い案はありますか
-- サブコマンド化
-- --txxxとかtで始まるオプションは予約とか
- テーブルのパーサーとしてpandocは前段階として使えませんか
- つまりパーサーはpandocフォーマットをサポートすればhtml, latex, md の独自パースは必要なくなります
-- pandoc JSONはちょっと複雑?

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS