Turn AdGuard and uBlock Origin parameter-removal lists into one CLN 1.0 rule file you can load into Linkumori as a remote or custom rule file.
It reads lists such as Dandelion Sprout’s Actually Legitimate URL Shortener Tool and the AdGuard URL Tracking filter, converts every $removeparam rule, and lists what it couldn’t convert and why. Everything runs in your browser. Fetch asks the list’s address for the file directly from your browser; nothing is sent to this site. We don’t check or control the sites you fetch from, so only use lists you trust; see the Terms of Use and Privacy Policy.
Source lists
Add one or more lists. Several lists merge into one rule file: identical rules are kept once, and every list’s @@ exceptions apply to all of them, as when an ad blocker loads the lists together.
Options
||amazon.*^, ||youtube.com^… so Linkumori only checks a site’s rules on that site. Rules that apply everywhere stay in clean-global.
clean-amazon.*, clean-global. A prefix keeps them apart from the built-in providers, which would otherwise share rule toggles.
CLN 1.0 rule file
Convert a list to see the rule file here.
Conversion report
Every line that was skipped, converted with a note, merged as a duplicate or excluded by !#if, with the reason.
The report appears after a conversion.
| Line | Status | What happened | Source |
|---|
Try a URL
Runs the converted rules on a URL the way Linkumori runs providers: the first matching provider that changes the URL wins, then the next pass starts on the new URL. It models a top-level page load (GET, first-party), so it’s an approximation; the custom rules editor in Linkumori simulates with the engine itself.
Convert a list first.
How AdGuard syntax maps to CLN
| AdGuard / uBO | CLN 1.0 |
|---|---|
$removeparam=x · $queryprune=x | $removeparam=x. Names starting with ~, | or /, and commas and backslashes, are escaped as in CLN’s value escapes. |
doc · xhr · css · frame · beacon | document · xmlhttprequest · stylesheet · subdocument · ping |
1p · 3p · ~third-party · strict1p | first-party · third-party · first-party · strict-first-party |
domain= · from= | domain=, with entity values such as amazon.* kept. |
denyallow=a|b | to=~a|~b |
method= · match-case · to= | Unchanged. |
@@…$removeparam… | An @@ entry in the same provider. |
/regex/ URL pattern | /regex/i. AdGuard patterns are case-insensitive; a $ anchor is written (?![\s\S]). |
/path pattern | */path, so Linkumori doesn’t read the leading / as a regex. |
$badfilter | Removes the rule it names. |
$important · $all | Modifier dropped: CLN has no rule priority. |
!#if · !#else · !#endif · !#include | Evaluated for the target picked in Options. |
##, #@#, ##+js(…), $app=, $redirect, plain blocking rules | Skipped and listed in the report: they aren’t URL cleaning. |
How rules are split into providers
| Rule | Where it goes |
|---|---|
||www.amazon.co.uk/dp^$removeparam=x | Provider ||amazon.*^ when the list also names amazon.*, else ||amazon.co.uk^. The rule keeps its own pattern, so it still only fires there. |
||amazon.$removeparam=th | Provider ||amazon.*^, rule $removeparam=th. |
$removeparam=si,domain=youtu.be|soundcloud.com | One copy in ||youtu.be^ and one in ||soundcloud.com^, with domain= dropped where the provider already says it. Unrelated ~ exclusions are dropped. |
$removeparam=gclid · */?r=dir$removeparam · domain=~a.com | The global provider ("domainPatterns": ["*"]): they apply on every site. |
@@…$removeparam=… | Copied into every provider holding a filter it could guard, because on a page load Linkumori only checks a provider’s own @@ entries. |
@@/unsub/?$removeparam | One regex in defaults.exceptions, which every rule of the file skips. |
Merging. Rules from all lists go through the same split. A rule both lists contain is kept once (the report lists it under Duplicates), and a list’s @@ exceptions also guard the other lists’ rules on the same pages.
In Linkumori a filter’s domain= is checked against the URL being cleaned (for @@ entries, also against the page), so splitting domain= lists into site providers keeps the same behaviour, and for doc rules it matches AdGuard exactly. See the filter syntax reference for every modifier.
Licenses. The output follows CLN Format 1.0 (final). Each source list keeps its own license; credit its authors when you redistribute the converted file.
Source: partials/converter.html on the website branch.