digital 千里眼 @abp_jp

アナログな日常とデジタルの接点

Adblock Plus 1.1 で非表示要素の簡易記法が非推奨に変更された件とその他更新内容

https://addons.mozilla.org/ja/firefox/addon/1865

少し前に「Adblock Plus: Writing Adblock Plus filters(英語)」が更新された。日本語でフォローしてる人が見つからないのでメモも兼ねて変更点を(ページに現れる順=上から順に)まとめておく(タイトルの独自記法が非推奨になった件は3番目)

1:ドメイン名の先頭を表す「||」(Adblock Plus 1.1以降)
使用例 ||example.com/banner.gif

マッチする
http://example.com/banner.gif
https://example.com/banner.gif
http://www.example.com/banner.gif
×
マッチしない
http://badexample.com/banner.gif
http://gooddomain.example/analyze?http://example.com/banner.gif
2:セパレーター文字「^」(Adblock Plus 1.1以降)
セパレーターに該当する文字の例 http://example.com:8000/foo.bar?a=12&b=%D1%82%D0%B5%D1%81%D1%82
セパレータではない文字 アルファベット等の文字
数字
_(アンダースコア)2012-05-29 追記
-(ハイフン)
.(ピリオド)
%(パーセント)
使用例 http://example.com^

マッチする
http://example.com/
http://example.com:8000/
×
マッチしない
http://example.com.ar/

3:非表示要素フィルタの記述方法で方針転換。従来の簡易記法が非推奨になった

今まで   今後
Adblock Plus 独自記法 CSS セレクタを使った記法へ
#div(id=foo) ##div#foo
#div(title^=adv)(title$=ert) ##div[title^="adv"][title$="ert"]
  • 既に非表示要素フィルタ例は全て CSS セレクタを使った記法に書き換えられている
  • ページ末尾の「Simplified element hiding syntax」にはこう書かれている「Adblock Plus は下位互換性維持の為だけに非表示要素フィルタの簡易記法(例:#div(id=foo))をサポートする。この簡易記法は非推奨で CSS セレクタの利用が推奨される。簡易記法のサポートは将来打ち切られる可能性がある
4:非標示要素フィルタでドメインの例外指定が可能に
使用例1 ~example.com##*.sponsor

マッチする
example.com以外ドメイン
×
マッチしない
example.com
使用例2 example.com,~foo.example.com##*.sponsor

マッチする
foo.example.com以外example.com
×
マッチしない
foo.example.com
example.com以外

待ちに待った例外記法!!

自分が使っている Adblock Plus 用のブロックリスト(最新) - digital 千里眼 @abp_jpを修正

さっそく書き換えました。不具合など教えて頂けると助かります

パイプ(|)の役割(自分用メモ)
  • 先頭のパイプ(|)は先頭(正規表現:^)、末尾のパイプは末尾(正規表現:$)。これを書かないと前後ワイルドカード扱いになる(adv は *adv* と同じ)
  • フィルタ・オプション($)のドメイン(domain=)を複数指定する場合のセパレーター(カンマはフィルタオプション($)を複数指定する場合に使う)