制作メモを消すルールが、本物の引用まで巻き込んで消していました

ブログの記事は、手元でMarkdownを書いてからHTMLに変換して投稿しています。

その変換で、記事本文の引用が消えかけました

目次

原因は自分で入れた除去ルール

Markdownの下書きには、公開前のチェック項目や書くときのメモなど、記事本文以外のものも書いています。

これは公開したくないので、変換の段階で取り除く処理を入れていました。

問題は、その取り除き方でした。

当時のメモは引用記法(> で始まる行)で書いていたので、
引用記法の行を落とすというルールにしていました。書いた時点では正しく動きます。

途中でメモの書き方を変えた

そのあと、メモの書き方をHTMLコメントに変えました。

理由は単純で、そのほうが本文と混ざらないうえに、
エディタ上でも色が変わって見分けがつきやすかったからです。

ここで手を止めていればよかった。
除去ルールのほうは古い前提のまま残していました

結果、こうなります。

  • メモはHTMLコメントで書かれているので、除去ルールに引っかからない
  • 一方で、記事本文に書いた本物の引用が引用記法で書かれている
  • 除去ルールは引用記法を落とすので、本文の引用を消す

守りたかったものを消して、消したかったものを残していました。

気づけた理由

変換した結果を、1本ずつ目視で確認していたからです。

引用のブロックが3つあるはずの記事に1つしか表示されていなかったので、
数が合わないところから遡って、除去ルールに行き当たりました。

このとき「目視でよかった」と思いました。
ただ、毎回全部を目で見るのは続きませんし、本数が増えれば実際に見落とします。

自動化はやめませんでした。

ルールは「今の書き方」に依存している

整理すると、こうなります。

除去ルールは、入力がある形で書かれている前提で動いていて、その前提は自分の都合でいつでも変わります。

今回で言えば、メモの書き方を変えたのは自分です。
自動化のことなど考えていません。書きやすさだけで決めました。

書き方を変えたら、それを前提にしている処理も点検する。
言葉にすると当たり前ですが、書き方を変えた瞬間には思い出しませんでした。

変換結果の検算を残した

いま入れているのは、変換前後で数を数えるやり方です。

引用ブロックが何個、テーブルが何個と数えておいて、変換後に同じ数だけあるかを見ます。
減っていれば止まる。

これなら全文を目で追わなくても、どこかで消えていれば数のズレとして出るので気づけます。

自動化は続けます。
手でやるより速いですし、実際ほとんどの記事はうまく変換されているので、必要だったのは入力の形を変えたときに点検する回だけでした。

目次