#author("2026-03-23T15:05:00+09:00","","")
#author("2026-03-23T15:26:22+09:00","","")
[[TIR/3.parser]]

* pukiwiki parser [#i51f3883]
- --md: plain 部分をmdに変換する

* pukiwiki 表組仕様 [#e0346944]
* pukiwiki 表組仕様概略 [#e0346944]

- pukiwikiの表には2種類(pukiwki表, csv表)あり混在はできない
- 別の表になる
-- 混在していると別の表になる
- セルに改行を含むことはできない

** pukiwiki 表仕様 [#r50363c2]
** pukiwiki 表仕様概要 [#r50363c2]
- 行頭が"|"であること
- 先頭を除いた行末は"|" または"|c", "|h", "|f" のいずれかであること
-- ただし"||"は表にならない
-- "|c", "|h", "|f" はどの行にあっても良い
-- 書式行cはそれ以降の行に適用される
-- hはheader, fはfooterとしてソートされる
-- header, footerは 書式が適用されてからsortする。
- 同じ列数が連続していれば一つの表になる。列数が違えば別の表になる。
- "|"のエスケープはないので"|"はセルの要素となることはできない
- セル内の空白はトリミングされる
- 列書式はないがセル書式は指定できる
- colspan, rowspan もある

** CSV表仕様 [#cf001370]
** CSV表仕様概要 [#cf001370]
- 行頭が","であればcsv表である
- 先頭の","は取り除いてcsvとしてparseする
- 同じ列数が連続していれば一つの表になる。列数が違えば別の表になる。
- "|"はセルの要素となることができる
- セル内データの前後の空白の有無がalignの指定になる
- セルデーター"=="はcolspanをす

* pukiwiki 表組変換仕様 [#j11874f0]

基本的な変換ルール
- 厳密な解釈はしない
- 大雑把なパーサーを作る
- ただしTIRの表は必ずPukiwikiの表に変換すること
- parse
-- pukiwiki表もCSV表も同じTIR表現になる
-- 行末に"c", "h", "f" がある場合それ専用の列を追加する
-- 書式はそのままセルデータとみなし、解釈しない
--- 書式の表現はpukiwiki方式に変換する
--- CSV表の"=="は">"になる
-- セルデータはトリミングし前後の空白は取り除く(align指定は捨てる)
-- 行の順番は変更しない
- unparse
-- pukiwiki表に変換する
-- セル内"|"は削除する
-- 最終行のセルデータが"c", "h", "f"だけの場合書式とみなして変換する
-- 行の順番は変更しない

Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes