#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"だけの場合書式とみなして変換する -- 行の順番は変更しない