✅リスト中のブロックを含んだページの変換に穴があるのを修正する
例
https://gyazo.com/19f103d5bfdece8be76e7305e37ec7a1
これは code code と続くパターン
たしかまだやってなかった
https://gyazo.com/e7335ebdb112422b71acc63bb24b0e7f
これも code code パターンで吸収できる気がする
例2
これも code code
実装
code code パターン入れた
けどまだダメ
https://gyazo.com/357b4eb195b718455403ef332c2f5114
1 ダミーリストの後に空行が入ってない
2 コードブロックの終わりに enf of code が入ってない(その後のダミーリストも)
なぜこうなるのかパッと見、作者自身もわからんw
ぐー、これはconvert_step2の後半部分を厳密に理解しないとダメそう
tableのときも2が発生するケースがある
試しに code code 時に空行入れる実装してみたらこうなる
https://gyazo.com/4546acfd41edf81bdad72ad85dd55214
2のend of codeはstep2前半で入れてるので、そっちの不備
パット見わからん
が、たぶんinblockstateuser
code codeのようなパターンが想定されてない
code1 code2と続く場合、code2は「code(2)の始まり」であると同時に、「code1が終わった後の次行」でもある
が、今は一度にどちらか一つしか扱えるようになっていない
https://gyazo.com/800a91e5ffd78789fb60674752ca006b
今parseしてるlineがin-blockだったとき
→ update in blockのみが走る
この中で「ブロックが終わった後の次行だね」判定もしてる
今parseしてるlineがnot in-blockだったとき
→ update not in blockのみが走る
この中で「この行は"start of table?" or "start of code?"」判定もしている
code1 code2の場合、結局どうあるべきなの?
code:scb
paragraph
list1
list2
code:code1
aaa
aaa
code:code2 ★この行をparseしているときにどうするか
bbb
inblockstateuser使ってる側ではこうなので、
https://gyazo.com/548bfae3797fda169eafb9acaae0c148
end of code入れたければ not in-block である必要がある
今は(code2のstart of codeなので)in-blockと判定されてしまっているわけだsta.icon
検出はできるぞ
in-blockでありながらleft just nowであるとき
……待てよ、だったら普通にleft just nowだけで見ればよくね?
結果かわらん
なんでだ
デバッグログさん
https://gyazo.com/f2b2648d0e908dfe6d1615ffe22acc65
block1 block2のときのblock2がin-blockになってない
https://gyazo.com/72b90d4d3397d3248aea3c3901ae91c6
block2の行で is left just now
ダメや、わかんねえ
問題となっている行の状態はわかった(上述したとおり)だが、だから何?となっている
done
https://gyazo.com/0970bd6e126198b555555447d0ef4f88
入ってくれた
あとはblock-code2時のcode2の前のダミーリストに空行を入れればok
https://gyazo.com/55aed9e869d80b728a3440a338db214d
hr.icon
A, B, Cの整理
code:py
# append_extra_insertion で処理できない分の後処理
# paragraph
# list1
# list2
# ★ここに空行を差し込む処理(A)
# code:py
# print('hello')
# `
#
# ... ★ここに左記のようなダミーリストを差し込む処理(B)
# list2
# paragraph
# list1
# list2
# table:xxx
# ★ここに空行を差し込む処理(C)
# a b
# c d
# list2
(A) はcode blockの前に空行を入れる
(B) はblockの後にダミーリストを入れる
(C) はtabletitleとtablecontentの間に空行を入れる
で、ダミーリスト後の空行、はどれでもない
(D)?
is_cur_start_of_code and is_prev_list
いや、違う、ここでさっきの(B)の亜種をすればいいのか
done
ふー、長かったわー。。
code:terminal
$ s
M docs/Ansible_InventoryのYAMLフォーマット.md
M docs/BaC.md
M docs/EpisoPass試してる.md
M docs/GitHubのStatus_PageをSubscribeした.md
M docs/Markdownの「リストと段落の塊」の表現力が弱い件.md
M docs/PATHEXT.md
M docs/PythonでinlineのScrapbox記法をMarkdown記法に変換する正規表現.md
M docs/QaC.md
M docs/Scrapbox_to_Markdown_テストコード設計.md
M docs/Scrapbox_to_Markdown_テーブル.md
M docs/Scrapbox_to_Markdown_リスト中のテーブルやらコードやらブロック.md
M docs/Scrapbox_to_Markdown_事前調査.md
M docs/Scrapbox_to_Markdown_文法変換の設計やら実装やら.md
M docs/YAML.md
M docs/index.md
M docs/sbq.md
M docs/scrapboxのコード記法で折り返しが入った時の行頭部分の背景.md
M docs/テキストを修正する手の速さを競うゲーム.md
M docs/プレーンレイアウト.md
M docs/幼なじみが俺のこと好きすぎてヤバい.md
M docs/箇条書きは難しい.md
M docs/連番を自動生成したい.md
M lib_scblines2markdown.py
M scbjson2ghpages.py
input your commit message>fix block1-block2 続けて並ぶケースに上手く変換されない問題
対象ページ、結構あるな
変換できてる!
ok
ok
うん、okそうだなsta.icon*3