Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: pages/filters.html

Issue 29482703: Issue 5353 - Add advanced element hiding filters documentation (Closed) Base URL: https://hg.adblockplus.org/web.adblockplus.org/
Patch Set: Added links to sections in the documentation. Created July 7, 2017, 6:26 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pages/filter-cheatsheet.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 title=Writing Adblock Plus filters 1 title=Writing Adblock Plus filters
2 2
3 3
4 <p>{{s1 Current Adblock Plus versions allow you to "tweak" your filters in many different ways. This document explains the choices that you have and how they ca n be used.}}</p> 4 <p>{{s1 Current Adblock Plus versions allow you to "tweak" your filters in many different ways. This document explains the choices that you have and how they ca n be used.}}</p>
5 5
6 <p>{{s2 <em>Disclaimer</em>: All filter examples given here are really only ex amples and are not meant to be used.}}</p> 6 <p>{{s2 <em>Disclaimer</em>: All filter examples given here are really only ex amples and are not meant to be used.}}</p>
7 7
8 <h2 id="introduction">{{s3 Introduction to Adblock Plus filters}}</h2> 8 <h2 id="introduction">{{s3 Introduction to Adblock Plus filters}}</h2>
9 9
10 <p>{{s4 The options described in this section should be enough for users who h ave to create a filter occasionally.}}</p> 10 <p>{{s4 The options described in this section should be enough for users who h ave to create a filter occasionally.}}</p>
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 useful to filter subscription authors who are extending another filter subscri ption that they 240 useful to filter subscription authors who are extending another filter subscri ption that they
241 cannot change.}} {{s102 For example, the rule <code><fix>##div.textad</fix></c ode> can be 241 cannot change.}} {{s102 For example, the rule <code><fix>##div.textad</fix></c ode> can be
242 disabled on <code><fix>example.com</fix></code> using the exception rule 242 disabled on <code><fix>example.com</fix></code> using the exception rule
243 <code><fix>example.com#@#div.textad</fix></code>.}} {{s103 The combination of these two 243 <code><fix>example.com#@#div.textad</fix></code>.}} {{s103 The combination of these two
244 rules has exactly the same effect as the single rule 244 rules has exactly the same effect as the single rule
245 <code><fix>~example.com##div.textad</fix></code>.}} {{s104 It is recommended t hat you use 245 <code><fix>~example.com##div.textad</fix></code>.}} {{s104 It is recommended t hat you use
246 exception rules only when you cannot change an overly general element hiding r ule, in all the 246 exception rules only when you cannot change an overly general element hiding r ule, in all the
247 other cases limiting this rule to the necessary domains is preferable.}} 247 other cases limiting this rule to the necessary domains is preferable.}}
248 </p> 248 </p>
249 249
250 <h3 id="elemhide_emulation">{{s112 Advanced element hiding}}</h3>
kzar 2017/07/10 13:09:18 Please give strings human-friendly names when maki
hub 2017/07/10 14:52:32 ok.
251
252 <p>
253 {{s113 Advanced hiding rules will hide elements that matches the CSS selector directly.}}
254 {{s114 <code><fix>example.com#?#div.textad</fix></code> will directly hide <co de><fix>&lt;div&gt;</fix></code> elements with the <code><fix>textad</fix></code > class.}}
255 {{s115 These filters only exist as <a href="#generic-specific">specific filter s</a>: a domain is mandatory.}}
256 </p>
257 <p>
258 {{s116 <a href="#elemhide_exceptions">Exception rules</a> above can be applied to the advanced hiding rules the same way.}}
259 </p>
260 <p>
261 {{s117 Advanced hiding rules also introduce new pseudo-class selectors for whe n a plain CSS selector isn't enough.}} {{s117 <code><fix>:-abp-has(selector)</fi x></code> will select the element whose content match the enclosed selector.}} { {s118 <code><fix>:-abp-properties(properties)</fix></code> will match elements b ased on their CSS style properties.}}
262 </p>
263 <p>
264 {{s118 <code><fix>:-abp-properties(properties)</fix></code> will select elemen ts based on properties of their stylesheet.}}
265 {{s119 For example, <code><fix>:-abp-properties(width:300px;height:250px;)</fi x></code> will select elements that have <code><fix>width</fix></code> and <code ><fix>height</fix></code> set to the specified values <code><fix>300px</fix></co de> and <code><fix>250px</fix></code> respectively.}}
266 {{s120 The <a href="https://adblockplus.org/development-builds/new-css-propert y-filter-syntax">older syntax</a> for the filters is deprecated and will be auto matically converted to the new format&nbsp;; the syntax to select the style prop erties remain the same.}}
267 </p>
268 <p>
269 {{s121 <code><fix>:-abp-has(selector)</fix></code> will select elements based on their content.}}
270 {{s122 For example, <code><fix>:-abp-has(> div > a.advertiser)</fix></code> wi ll select elements that contain as a direct descendant a <code><fix>&lt;div&gt;< /fix></code> that contains an <code><fix>&lt;a&gt;</fix></code> with the class < code><fix>advertiser</fix></code>. The inner selector matching determine whether the selection occur. It is important that <code><fix>:-abp-has()</fix></code> b e applied to a restricted number of elements to avoid performance issues. Like a ny regular pseudo-class you can combine it with the CSS selector syntax.}}
271 </p>
272
250 <h3 id="elemhide_simplified">{{s105 Simplified element hiding syntax}}</h3> 273 <h3 id="elemhide_simplified">{{s105 Simplified element hiding syntax}}</h3>
251 274
252 <p>{{s106 Adblock Plus supports simplified element hiding syntax (e.g. <code>< fix>#div(id=foo)</fix></code>) for backwards compatibility only. Using this synt ax is discouraged, usual CSS selectors are preferred. Support for this syntax mi ght be removed at some point.}}</p> 275 <p>{{s106 Adblock Plus supports simplified element hiding syntax (e.g. <code>< fix>#div(id=foo)</fix></code>) for backwards compatibility only. Using this synt ax is discouraged, usual CSS selectors are preferred. Support for this syntax mi ght be removed at some point.}}</p>
253 276
254 <h3 id="generic-specific">{{generic-specific-title Generic / Specific filters} }</h3> 277 <h3 id="generic-specific">{{generic-specific-title Generic / Specific filters} }</h3>
255 278
256 <p>{{generic-specific-explanation-p1 With the <code><fix>$generichide</fix></c ode> and <code><fix>$genericblock</fix></code> filter options the distinction be tween generic and specific filters becomes important.}}</p> 279 <p>{{generic-specific-explanation-p1 With the <code><fix>$generichide</fix></c ode> and <code><fix>$genericblock</fix></code> filter options the distinction be tween generic and specific filters becomes important.}}</p>
257 <p>{{generic-specific-explanation-p2 We classify a filter to be <strong>specif ic</strong> if it matches one or more domains or matches a sitekey. If a filter has no domains specified (or only domain exceptions) and no sitekey then it coun ts as <strong>generic</strong>. For example, <code><fix>example.com##div.textad< /fix></code> is a specific filter, whereas both <code><fix>##div.textad</fix></c ode> and <code><fix>~example.com##div.textad</fix></code> are generic.}}</p> 280 <p>{{generic-specific-explanation-p2 We classify a filter to be <strong>specif ic</strong> if it matches one or more domains or matches a sitekey. If a filter has no domains specified (or only domain exceptions) and no sitekey then it coun ts as <strong>generic</strong>. For example, <code><fix>example.com##div.textad< /fix></code> is a specific filter, whereas both <code><fix>##div.textad</fix></c ode> and <code><fix>~example.com##div.textad</fix></code> are generic.}}</p>
258 <p>{{generic-specific-explanation-p3 Note that with blocking rules the domain must be specified under the $domain option for them to be considered specific. F or example, <code><fix>||example.com^</fix></code> is considered generic whereas <code><fix>*/ads/*$domain=example.com</fix></code> is site-specific.}}</p> 281 <p>{{generic-specific-explanation-p3 Note that with blocking rules the domain must be specified under the $domain option for them to be considered specific. F or example, <code><fix>||example.com^</fix></code> is considered generic whereas <code><fix>*/ads/*$domain=example.com</fix></code> is site-specific.}}</p>
259 282
(...skipping 11 matching lines...) Expand all
271 {{s110 The data used for creating the signature is a concatenated list of requ est variables (namely URI, host and user agent) separated by the <code><fix>NUL< /fix></code> character "\0". For example:}} 294 {{s110 The data used for creating the signature is a concatenated list of requ est variables (namely URI, host and user agent) separated by the <code><fix>NUL< /fix></code> character "\0". For example:}}
272 </p> 295 </p>
273 296
274 <pre> 297 <pre>
275 /index.html?q=foo\0www.example.com\0Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv :30.0) Gecko/20100101 Firefox/30.0 298 /index.html?q=foo\0www.example.com\0Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv :30.0) Gecko/20100101 Firefox/30.0
276 </pre> 299 </pre>
277 300
278 <p> 301 <p>
279 {{s111 Finally, generate the signature for this string by using the signature algorithm SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE (default when using OpenSSL).}} 302 {{s111 Finally, generate the signature for this string by using the signature algorithm SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE (default when using OpenSSL).}}
280 </p> 303 </p>
OLDNEW
« no previous file with comments | « pages/filter-cheatsheet.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld