0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

絵文字チェッカーが『めぷちん☆』を弾いてくる

0
Posted at

背景

自分のサイト群には「絵文字を使わない」というルールがあります。

見た目を軽くしたいだけの、わりと気分的なルールです。
守るために、ビルド後の HTML を走査して絵文字を見つけたら落とす、というだけの lint を置いてあります。

これが今日、真っ当な理由で落ちました。

落ちた原因

Kindle のセール情報をまとめているのは下記のサイトです。

ここに1件追加したところ、5件の違反が出ました。

中身を見ると、全部これです。

めぷちん☆『うそつきキツネの恋噺』全3巻

(U+2605 ではなく U+2606)が入っている。
けれどこれは飾りではなく、作者のペンネームそのものだ。

めぷちん に直したら、それは別人の名前になってしまいます。

前にも同じことがあった

実は同じ型のバグを前に踏んでいて、そのときは『ラブ★コン』でした。

こちらの も正式名称の一部です。
機械的に消すと作品名が間違いになる。

そのとき作ったのが、名前そのものを許可リストに載せる仕組みでした。

{
  "names": ["ラブ★コン", "聖☆おにいさん", "めぷちん☆"]
}

lint は走査前にこの文字列だけをマスクして、除外した延べ件数を出力に出します。

{ ok: true, count: 0, nameSkipped: 113,
  namesUsed: { 'めぷちん☆': 5, 'ラブ★コン': 107, '聖☆おにいさん': 1 } }

黙って無効化されないように、件数が必ず残る作りにしてあるのがポイントだと思っています。

なぜ「★を常に許可」にしなかったか

一番簡単なのは、 を除外文字に足すことです。

でもそれをやると、装飾で を使ってもルールを素通りしてしまう。
それだと lint を置いた意味がなくなる気がする…

なので単位を「文字」ではなく「名前」にしました。
記号1文字だけのエントリは登録できないように弾いてもいます。

単体を登録しようとすると exit 2 で落ちる、という地味な守りです。

効き目

『ラブ★コン』を登録したときの実測では、誤検知97件がゼロになりました。

今日は めぷちん☆ を1行足しただけで、また0件に戻っています。

lint は誤検知が増えると誰も見なくなるので、ここは維持しておきたいところです。
除外リストが伸び続けたら、そのときはまた考えることにします…


本記事はAI補助で執筆した、個人開発の紹介記事です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?