高度な使い方
ルール
オプションページのほか、「このサイトをブロックする」ダイアログでもルールを編集できます。
マッチパターン
マッチパターンはワイルドカードを含む URL のようなものです。詳細は MDN web docs を参照してください。
有効なマッチパターンの例です。
パターン | マッチする例 |
---|---|
*://example.com/* ( example.com 上の URL) | http://example.com/ https://example.com/hoge |
*://*.example.net/* ( example.net またはそのサブドメイン上の URL) | http://example.net/ https://foo.example.net/hoge |
*://example.org/hoge/* ( example.org 上の URL で、パスが /hoge/ で始まるもの) | http://example.org/hoge/fuga.html |
無効なマッチパターンの例です。
無効なパターン | 理由 |
---|---|
*://www.qinterest.*/ | * が先頭以外に置かれています。 |
式
式でルールを書くことができます。
変数
現在、url
と title
が式の中で使用できます。
# URL が "example" を含む検索結果
url *= "example"
# タイトルが "Something" で始まる検索結果
title ^= "Something"
URL の一部である scheme
、host
、path
も使用できます。
# スキームが HTTP の検索結果
scheme="http"
# ホスト名が ".example.com" で終わる検索結果
host $= ".example.com"
# パスが "blah" を含む検索結果 (大文字小文字を区別しない)
path*="blah"i
さらに、検索結果ページ自体のプロパティを使用できます。今のところ、$site
と $category
が使用できます。
# Google 検索で YouTube をブロックする
$site="google" & host="youtube.com"
# 画像検索で Amazon.com をブロックする
$category = "images" & host = "www.amazon.com"
文字列マッチ
文字列マッチは CSS の属性セレクター に似ています。
# タイトルが "Example Domain" と一致
title = "Example Domain"
# タイトルが "Example" から始まる
title ^= "Example"
# タイトルが "Domain" で終わる
title $= "Domain"
# タイトルが "ple Dom" を含む
title *= "ple Dom"
大文字小文字を区別しない比較を行うには、i
を追加します。
# タイトルが "domain" で終わる (大文字小文字を区別しない)
title $= "domain" i
正規表現
正規表現を使ってより柔軟に式を書くことができます。
# URL が "example.net" または "example.org" を含む
url =~ /example\.(net|org)/
# "=~" は省略できます
url/example\.(net|org)/
# "url" も省略できます
/example\.(net|org)/
# タイトルが "example domain" を含む (大文字小文字を区別しない)
title =~ /example domain/i
正規表現は、/
で囲まれた、JavaScript の正規表現リテラルの形でなければなりません (例: /example\.(net|org)/
)。
有効な正規表現の例です。
正規表現 | マッチする例 |
---|---|
/^https:\/\/www\.qinterest\./ ( https://www.qinterest. で始まる URL) | https://www.qinterest.com/ https://www.qinterest.jp/hoge |
/^https?:\/\/([^/.]+\.)*?xn--/ (国際化ドメイン名を含む URL) | http://例.テスト/ |
無効な正規表現の例です。
無効な正規表現 | 理由 |
---|---|
^https?:\/\/example\.com\/ | / で囲まれていません。 |
/^https?://example\.com// | 正規表現内の / がエスケープされていません。 |
論理演算子
論理否定 (!
)、論理積 (&
)、論理和 (|
) が使用できます。
# HTTPS 以外のスキームをブロック
!scheme="https"
# 画像検索で Amazon.com をブロック
$category = "images" & host = "www.amazon.com"
# タイトルが "example" または "domain" を含む (大文字小文字を区別しない)
title *= "example" i | title *= "domain" i
式をマッチパターンと一緒に使う
マッチパターンの後に @if(式)
を続けることがで来ます。
# 画像検索で Amazon.com をブロックする
*://*.amazon.com/* @if($category="images")
ブロック解除ルール
マッチパターンまたは正規表現の前に @
をつけると、そのサイトをブロックしないという意味になります。
これは購読したルールセットによるブロックを解除するのに便利です。例えば、もし http://example.com/
が購読中のルールセットによりブロックされていれば、ルール @*://example.com/*
でそれを解除することができます。
ハイライトルール
マッチパターンまたは正規表現の前に @N
(N=1,2,3,...) をつけると、そのサイトをハイライトするという意味になります。
例えば、@1*://github.com/*
で GitHub をハイライトすることができます。
デフォルトでは、@1
(青) のみが使用できます。色を変更または追加するには、オプションページの「外観」セクションを参照してください。
コメント
コメントは #
で始まります。ルールとして解釈できない行は全て実質的にコメントですが、 #
で始まるコメントには 2 つの利点があります。
#
で始まるコメントは、将来新しいシンタックスが追加されても、コメントであることが保証されます。#
で始まるコメントは、ルールの後に置くことができます。
# example.com またはそのサブドメイン上のサイトをブロックする
*://*.example.com/*
/example\.(net|org)/ # example.net または example.org を URL に含むサイトをブロックする
Google 以外の検索エンジン
Bing、Brave、DuckDuckGo、Ecosia、Kagi、Qwant、SearX、Startpage.com、Yahoo! JAPAN、Yandex がサポートされています。この機能はデフォルトで無効ですが、オプションページで有効にすることができます。
検索結果を開いているときに、ツールバーのアイコンをクリックすることでも有効にできます。
Bing
Brave
DuckDuckGo
Ecosia
Kagi
Qwant
動画検索上では、"Always read on Qwant.com" を無効にする必要があります。
Lite バージョンでは、Web 検索のみがサポートされています。
SearX
Startpage.com
Yahoo! JAPAN
Yandex
同期
ルールセットを Google ドライブまたは Dropbox で同期することができます。
同期を有効にするには、オプションページの「同期を有効にする」ボタンを押し、クラウドを選択します。
ダイアログの指示に従って認証してください。
認証が成功すると、ルールセットが定期的に選択したクラウドと同期されるようになります。
Google ドライブ
Firefox またはその派生ブラウザでは、https://www.googleapis.com
へのアクセスを許可する必要があります。
ルールセットは Google ドライブのアプリケーションデータフォルダーに保存されます。このフォルダーを見ることはできませんが、設定ページから削除することは可能です。
Dropbox
ルールセットは Dropbox の /アプリ/uBlacklist/
フォルダーに保存されます。フォルダーの名前は言語によって異なるかもしれません。
購読
公開されたルールセットを購読することができます。
購読を追加するには、オプションページの「購読を追加する」ボタンを押して、名前と URL を入力します。その URL へのアクセス許可を求められる場合があります。
購読を表示、更新、削除することができます。
購読を公開する
ルールセットを購読として公開するには、UTF-8 でエンコードしたルールセットファイルを適切な HTTP(S) サーバーに配置し、URL を公開します。
ルールセットには YAML frontmatter を書くことができます。name
変数を設定することが推奨されます。
---
name: あなたのルールセットの名前
---
*://*.example.com/*
購読を GitHub で公開するのはよい考えです。Raw URL (例えば https://raw.githubusercontent.com/iorate/ublacklist-example-subscription/master/uBlacklist.txt) を公開してください。