Configuration
Configuration
Configuration defines your filter list sources, and the transformations that are applied to the sources.
Here is an example of this configuration:
{ "name": "List name", "description": "List description", "homepage": "https://example.org/", "license": "GPLv3", "version": "1.0.0.0", "sources": [ { "name": "Local rules", "source": "rules.txt", "type": "adblock", "transformations": ["RemoveComments", "Compress"], "exclusions": ["excluded rule 1"], "exclusions_sources": ["exclusions.txt"], "inclusions": ["*"], "inclusions_sources": ["inclusions.txt"] }, { "name": "Remote rules", "source": "https://example.org/rules", "type": "hosts", "exclusions": ["excluded rule 1"] } ], "transformations": ["Deduplicate", "Compress"], "exclusions": ["excluded rule 1", "excluded rule 2"], "exclusions_sources": ["global_exclusions.txt"], "inclusions": ["*"], "inclusions_sources": ["global_inclusions.txt"]}name- (mandatory) the list name.description- (optional) the list description.homepage- (optional) URL to the list homepage.license- (optional) Filter list license.version- (optional) Filter list version.sources- (mandatory) array of the list sources..source- (mandatory) path or URL of the source. It can be a traditional filter list or a hosts file..name- (optional) name of the source..type- (optional) type of the source. It could beadblockfor Adblock-style lists orhostsfor /etc/hosts style lists. If not specified,adblockis assumed..transformations- (optional) a list of transformations to apply to the source rules. By default, no transformations are applied. Learn more about possible transformations here..exclusions- (optional) a list of rules (or wildcards) to exclude from the source..exclusions_sources- (optional) a list of files with exclusions..inclusions- (optional) a list of wildcards to include from the source. All rules that don’t match these wildcards won’t be included..inclusions_sources- (optional) a list of files with inclusions.
transformations- (optional) a list of transformations to apply to the final list of rules. By default, no transformations are applied. Learn more about possible transformations here.exclusions- (optional) a list of rules (or wildcards) to exclude from the source.exclusions_sources- (optional) a list of files with exclusions.inclusions- (optional) a list of wildcards to include from the source. All rules that don’t match these wildcards won’t be included.inclusions_sources- (optional) a list of files with inclusions.
Here is an example of a minimal configuration:
{ "name": "test list", "sources": [ { "source": "rules.txt" } ]}Exclusion and inclusion rules
Please note, that exclusion or inclusion rules may be a plain string, wildcard, or a regular expression.
plainstring- every rule that containsplainstringwill match the rule*.plainstring- every rule that matches this wildcard will match the rule/regex/- every rule that matches this regular expression, will match the rule. By default, regular expressions are case-insensitive.! comment- comments will be ignored.
[!IMPORTANT] Ensure that rules in the exclusion list match the format of the rules in the filter list. To maintain a consistent format, add the
Compresstransformation to convert/etc/hostsrules to adblock syntax. This is especially useful if you have multiple lists in different formats.
Here is an example:
Rules in HOSTS syntax: /hosts.txt
0.0.0.0 ads.example.com0.0.0.0 tracking.example1.com0.0.0.0 example.comExclusion rules in adblock syntax: /exclusions.txt
||example.com^Configuration of the final list:
{ "name": "List name", "description": "List description", "sources": [ { "name": "HOSTS rules", "source": "hosts.txt", "type": "hosts", "transformations": ["Compress"] } ], "transformations": ["Deduplicate", "Compress"], "exclusions_sources": ["exclusions.txt"]}Final filter output of /hosts.txt after applying the Compress transformation and exclusions:
||ads.example.com^||tracking.example1.com^The last rule ||example.com^ will correctly match the rule from the exclusion list and will be excluded.