SimpleTable対応に向けたblock調査 (1)

tableの場合

非公式API経由のBlock

JavaScript

公式API経由のBlock

JavaScript
 

差分

  • versionがない
  • space_idがない
  • formatの中身が違う
  • propertiesが増えてる
 

table_rowの場合

非公式APIの場合

JavaScript
 

公式APIの場合

JavaScript
 

差分

  • versionがない
  • space_idがない
  • formatが増えてる
  • propertiesの中身が違う
 

コード上で使用している加工後Block内データ

tableの場合

JavaScript
blockIdのみ
childrenでtable_row blockを別途処理している

table_rowの場合

JavaScript
親であるtableのblockを取得
tableBlock.format から table_block_column_order と table_block_column_format を取得
現状では未対応 → table_block_column_order が空なので何もレンダリングしてない

追加調査項目

  • orderにはcolumn毎のデータが入っているのか?
    • orderに入っているのは、formatMapで使うキー
      値は何でもいいように見える
  • formatMapはどこで作られていて、何のデータが入ってるのか?
    • apiから取れるtable_row内のデータ
      ColorとWidthのデータが入っている模様
      さらなる詳細調査はまた必要になった段階で行う
  • propertiesには何のデータが入っていて、どう使われているのか?
    • カラーリングやサイズなどの情報。行単位、列単位、セル単位、文字単位など色々ありそう
 

tableBlock.formatの中身

非公式APIの中身を直接使用している
謎の値が入ってる
公式APIの値を元にこれを再構築する?
  • 可能かどうか微妙なので調査して判断
    • ただのキー(乱数値)と思われるので問題なさそう
 

convert-blockで非公式API型に変換

convert-block.ts内のswitch文に”table”と”table_row”がある
そこで公式APIから取得した値(block)を、非公式API互換の値(comatBlock)に変換すればOK
“table”の時のblock値
JavaScript
“table_row”の時のblock値
JavaScript
block.table_row.cellsの中身には、おそらくテキスト型(”text”)しか入らない
場合によっては追加調査が必要かも
一旦、現状で良い気がする
これらのデータを元に変換して以下のデータを作成出来ればOK
  • table_block_column_order
  • table_block_column_format
これらはtableのformat値なので、rowから親tableを取得してそこに再格納する方向で考える必要あり