ブログの記事は、手元でMarkdownを書いてからHTMLに変換して投稿しています。
その変換で、記事本文の引用が消えかけました。
原因は自分で入れた除去ルール
Markdownの下書きには、公開前のチェック項目や書くときのメモなど、記事本文以外のものも書いています。
これは公開したくないので、変換の段階で取り除く処理を入れていました。
問題は、その取り除き方でした。
当時のメモは引用記法(> で始まる行)で書いていたので、
引用記法の行を落とすというルールにしていました。書いた時点では正しく動きます。
途中でメモの書き方を変えた
そのあと、メモの書き方をHTMLコメントに変えました。
理由は単純で、そのほうが本文と混ざらないうえに、
エディタ上でも色が変わって見分けがつきやすかったからです。
ここで手を止めていればよかった。
除去ルールのほうは古い前提のまま残していました。
結果、こうなります。
- メモはHTMLコメントで書かれているので、除去ルールに引っかからない
- 一方で、記事本文に書いた本物の引用が引用記法で書かれている
- 除去ルールは引用記法を落とすので、本文の引用を消す
守りたかったものを消して、消したかったものを残していました。
気づけた理由
変換した結果を、1本ずつ目視で確認していたからです。
引用のブロックが3つあるはずの記事に1つしか表示されていなかったので、
数が合わないところから遡って、除去ルールに行き当たりました。
このとき「目視でよかった」と思いました。
ただ、毎回全部を目で見るのは続きませんし、本数が増えれば実際に見落とします。
自動化はやめませんでした。
ルールは「今の書き方」に依存している
整理すると、こうなります。
除去ルールは、入力がある形で書かれている前提で動いていて、その前提は自分の都合でいつでも変わります。
今回で言えば、メモの書き方を変えたのは自分です。
自動化のことなど考えていません。書きやすさだけで決めました。
書き方を変えたら、それを前提にしている処理も点検する。
言葉にすると当たり前ですが、書き方を変えた瞬間には思い出しませんでした。
変換結果の検算を残した
いま入れているのは、変換前後で数を数えるやり方です。
引用ブロックが何個、テーブルが何個と数えておいて、変換後に同じ数だけあるかを見ます。
減っていれば止まる。
これなら全文を目で追わなくても、どこかで消えていれば数のズレとして出るので気づけます。
自動化は続けます。
手でやるより速いですし、実際ほとんどの記事はうまく変換されているので、必要だったのは入力の形を変えたときに点検する回だけでした。
