OLD | NEW |
1 { | 1 { |
2 "title": { | 2 "title": { |
3 "message": "Writing Adblock Plus filters" | 3 "message": "Writing Adblock Plus filters" |
4 }, | 4 }, |
5 "s1": { | 5 "s1": { |
6 "message": "Current Adblock Plus versions allow you to \"tweak\" your filter
s in many different ways. This document explains the choices that you have and h
ow they can be used." | 6 "message": "Current Adblock Plus versions allow you to \"tweak\" your filter
s in many different ways. This document explains the choices that you have and h
ow they can be used." |
7 }, | 7 }, |
8 "s2": { | 8 "s2": { |
9 "message": "<em>Disclaimer</em>: All filter examples given here are really o
nly examples and are not meant to be used." | 9 "message": "<em>Disclaimer</em>: All filter examples given here are really o
nly examples and are not meant to be used." |
10 }, | 10 }, |
11 "s3": { | 11 "s3": { |
12 "message": "Introduction to Adblock Plus filters" | 12 "message": "Introduction to Adblock Plus filters" |
13 }, | 13 }, |
14 "s4": { | 14 "s4": { |
15 "message": "The options described in this section should be enough for users
who have to create a filter occasionally." | 15 "message": "The options described in this section should be enough for users
who have to create a filter occasionally." |
16 }, | 16 }, |
17 "s5": { | 17 "s5": { |
18 "message": "Basic filter rules" | 18 "message": "Basic filter rules" |
19 }, | 19 }, |
20 "s6": { | 20 "s6": { |
21 "message": "The most trivial filter you can define is of course the address
of banner you want to block. However, often this address changes every time you
open a page. For example it could be" | 21 "message": "The most trivial filter you can define is of course the address
of banner you want to block. However, often this address changes every time you
open a page. For example it could be" |
22 }, | 22 }, |
23 "s7": { | 23 "s7": { |
| 24 "message": "http://example.com/ads/banner123.gif" |
| 25 }, |
| 26 "s8": { |
24 "message": "where 123 is a random number. Here blocking the complete address
won't help you, you need a more general filter -- like" | 27 "message": "where 123 is a random number. Here blocking the complete address
won't help you, you need a more general filter -- like" |
25 }, | 28 }, |
26 "s8": { | 29 "s9": { |
| 30 "message": "http://example.com/ads/banner*.gif" |
| 31 }, |
| 32 "s10": { |
27 "message": ". Or maybe even" | 33 "message": ". Or maybe even" |
28 }, | 34 }, |
29 "s9": { | 35 "s11": { |
| 36 "message": "http://example.com/ads/*" |
| 37 }, |
| 38 "s12": { |
30 "message": "." | 39 "message": "." |
31 }, | 40 }, |
32 "s10": { | 41 "s13": { |
33 "message": "<em>Note</em>: Make sure that you are not replacing too much by
wildcards. The filter" | 42 "message": "<em>Note</em>: Make sure that you are not replacing too much by
wildcards. The filter" |
34 }, | 43 }, |
35 "s11": { | 44 "s14": { |
| 45 "message": "http://example.com/*" |
| 46 }, |
| 47 "s15": { |
36 "message": "will definitely block all banners but it will also block everyth
ing else from example.com that you still might want to see." | 48 "message": "will definitely block all banners but it will also block everyth
ing else from example.com that you still might want to see." |
37 }, | 49 }, |
38 "s12": { | 50 "s16": { |
39 "message": "Defining exception rules" | 51 "message": "Defining exception rules" |
40 }, | 52 }, |
41 "s13": { | 53 "s17": { |
42 "message": "Sometimes you will notice that one of your filters that is usual
ly working quite well blocks in some case blocks something that it shouldn't be
blocking. You don't want to remove this filter but you still don't want it to ma
tch in this one case." | 54 "message": "Sometimes you will notice that one of your filters that is usual
ly working quite well blocks in some case blocks something that it shouldn't be
blocking. You don't want to remove this filter but you still don't want it to ma
tch in this one case." |
43 }, | 55 }, |
44 "s14": { | 56 "s18": { |
45 "message": "That's what exception rules are good for -- they allow you to de
fine cases where filters shouldn't be applied. For example if you are unhappy wi
th your filter" | 57 "message": "That's what exception rules are good for -- they allow you to de
fine cases where filters shouldn't be applied. For example if you are unhappy wi
th your filter" |
46 }, | 58 }, |
47 "s15": { | 59 "s19": { |
| 60 "message": "adv" |
| 61 }, |
| 62 "s20": { |
48 "message": "blocking" | 63 "message": "blocking" |
49 }, | 64 }, |
50 "s16": { | 65 "s21": { |
| 66 "message": "http://example.com/advice.html" |
| 67 }, |
| 68 "s22": { |
51 "message": ", you can define an exception rule" | 69 "message": ", you can define an exception rule" |
52 }, | 70 }, |
53 "s17": { | 71 "s23": { |
| 72 "message": "@@advice" |
| 73 }, |
| 74 "s24": { |
54 "message": ". Exception rules are no different from filter rules, you can us
e wildcards or regular expressions. You only have to precede them by" | 75 "message": ". Exception rules are no different from filter rules, you can us
e wildcards or regular expressions. You only have to precede them by" |
55 }, | 76 }, |
56 "s18": { | 77 "s25": { |
| 78 "message": "@@" |
| 79 }, |
| 80 "s26": { |
57 "message": "to indicate an exception rule." | 81 "message": "to indicate an exception rule." |
58 }, | 82 }, |
59 "s19": { | 83 "s27": { |
60 "message": "Exception rules can do more. If an exception rule starts with ht
tp:// or https:// (optionally with a pipe before it) it will make whole pages an
exception. For example, if your exception rule is" | 84 "message": "Exception rules can do more. If an exception rule starts with ht
tp:// or https:// (optionally with a pipe before it) it will make whole pages an
exception. For example, if your exception rule is" |
61 }, | 85 }, |
62 "s20": { | 86 "s28": { |
| 87 "message": "@@|http://example.com" |
| 88 }, |
| 89 "s29": { |
63 "message": "and you open some page from example.com -- Adblock Plus will be
entirely disabled on this page and nothing will be blocked." | 90 "message": "and you open some page from example.com -- Adblock Plus will be
entirely disabled on this page and nothing will be blocked." |
64 }, | 91 }, |
65 "s21": { | 92 "s30": { |
66 "message": "Matching at beginning/end of an address" | 93 "message": "Matching at beginning/end of an address" |
67 }, | 94 }, |
68 "s22": { | 95 "s31": { |
69 "message": "Usually Adblock Plus treats every filter as if it had a wildcard
at its beginning and end, e.g. there is not difference between the filters" | 96 "message": "Usually Adblock Plus treats every filter as if it had a wildcard
at its beginning and end, e.g. there is not difference between the filters" |
70 }, | 97 }, |
71 "s23": { | 98 "s32": { |
| 99 "message": "ad" |
| 100 }, |
| 101 "s33": { |
72 "message": "and" | 102 "message": "and" |
73 }, | 103 }, |
74 "s24": { | 104 "s34": { |
| 105 "message": "*ad*" |
| 106 }, |
| 107 "s35": { |
75 "message": ". While this is usually unproblematic, sometimes you wish that t
he filter you defined only matches at the beginning or end of an address. For ex
ample you might want to block all Flash, but if you add the filter" | 108 "message": ". While this is usually unproblematic, sometimes you wish that t
he filter you defined only matches at the beginning or end of an address. For ex
ample you might want to block all Flash, but if you add the filter" |
76 }, | 109 }, |
77 "s25": { | 110 "s36": { |
| 111 "message": "swf" |
| 112 }, |
| 113 "s37": { |
78 "message": "the address" | 114 "message": "the address" |
79 }, | 115 }, |
80 "s26": { | 116 "s38": { |
| 117 "message": "http://example.com/swf/index.html" |
| 118 }, |
| 119 "s39": { |
81 "message": "will also be blocked." | 120 "message": "will also be blocked." |
82 }, | 121 }, |
83 "s27": { | 122 "s40": { |
84 "message": "Solution to this problem: add a pipe symbol to the filter to sho
w that there should be definitely the end of the address at this point. For exam
ple the filter" | 123 "message": "Solution to this problem: add a pipe symbol to the filter to sho
w that there should be definitely the end of the address at this point. For exam
ple the filter" |
85 }, | 124 }, |
86 "s28": { | 125 "s41": { |
| 126 "message": "swf|" |
| 127 }, |
| 128 "s42": { |
87 "message": "will block" | 129 "message": "will block" |
88 }, | 130 }, |
89 "s29": { | 131 "s43": { |
| 132 "message": "http://example.com/annoyingflash.swf" |
| 133 }, |
| 134 "s44": { |
90 "message": "but not" | 135 "message": "but not" |
91 }, | 136 }, |
92 "s30": { | 137 "s46": { |
93 "message": ". And the filter" | 138 "message": ". And the filter" |
94 }, | 139 }, |
95 "s31": { | 140 "s47": { |
96 "message": "|http://baddomain.example/" | 141 "message": "|http://baddomain.example/" |
97 }, | 142 }, |
98 "s32": { | 143 "s49": { |
99 "message": "will block" | |
100 }, | |
101 "s33": { | |
102 "message": "http://baddomain.example/banner.gif" | 144 "message": "http://baddomain.example/banner.gif" |
103 }, | 145 }, |
104 "s34": { | 146 "s51": { |
105 "message": "but not" | |
106 }, | |
107 "s35": { | |
108 "message": "http://gooddomain.example/analyze?http://baddomain.example" | 147 "message": "http://gooddomain.example/analyze?http://baddomain.example" |
109 }, | 148 }, |
110 "s36": { | 149 "s53": { |
111 "message": "." | |
112 }, | |
113 "s37": { | |
114 "message": "Sometimes one wants to block" | 150 "message": "Sometimes one wants to block" |
115 }, | 151 }, |
116 "s38": { | 152 "s54": { |
| 153 "message": "http://example.com/banner.gif" |
| 154 }, |
| 155 "s55": { |
117 "message": "as well as" | 156 "message": "as well as" |
118 }, | 157 }, |
119 "s39": { | 158 "s56": { |
120 "message": "and" | 159 "message": "https://example.com/banner.gif" |
121 }, | 160 }, |
122 "s40": { | 161 "s58": { |
| 162 "message": "http://www.example.com/banner.gif" |
| 163 }, |
| 164 "s59": { |
123 "message": ". This can be achieved by putting two pipe symbols in front of t
he filter which makes sure the filter matches at the beginning of the domain nam
e:" | 165 "message": ". This can be achieved by putting two pipe symbols in front of t
he filter which makes sure the filter matches at the beginning of the domain nam
e:" |
124 }, | 166 }, |
125 "s41": { | 167 "s60": { |
| 168 "message": "||example.com/banner.gif" |
| 169 }, |
| 170 "s61": { |
126 "message": "will block all these addresses while not blocking" | 171 "message": "will block all these addresses while not blocking" |
127 }, | 172 }, |
128 "s42": { | 173 "s62": { |
129 "message": "http://badexample.com/banner.gif" | 174 "message": "http://badexample.com/banner.gif" |
130 }, | 175 }, |
131 "s43": { | 176 "s63": { |
132 "message": "or" | 177 "message": "or" |
133 }, | 178 }, |
134 "s44": { | 179 "s64": { |
135 "message": "http://gooddomain.example/analyze?http://example.com/banner.gif" | 180 "message": "http://gooddomain.example/analyze?http://example.com/banner.gif" |
136 }, | 181 }, |
137 "s45": { | 182 "s65": { |
138 "message": "(requires Adblock Plus 1.1 or higher)." | 183 "message": "(requires Adblock Plus 1.1 or higher)." |
139 }, | 184 }, |
140 "s46": { | 185 "s66": { |
141 "message": "Marking separator characters" | 186 "message": "Marking separator characters" |
142 }, | 187 }, |
143 "s47": { | 188 "s67": { |
144 "message": "Often you need to accept any separator character in a filter. Fo
r example, you might write a filter that blocks" | 189 "message": "Often you need to accept any separator character in a filter. Fo
r example, you might write a filter that blocks" |
145 }, | 190 }, |
146 "s48": { | 191 "s68": { |
147 "message": "and" | 192 "message": "http://example.com/" |
148 }, | 193 }, |
149 "s49": { | 194 "s70": { |
150 "message": "but not" | 195 "message": "http://example.com:8000/" |
151 }, | 196 }, |
152 "s50": { | 197 "s72": { |
| 198 "message": "http://example.com.ar/" |
| 199 }, |
| 200 "s73": { |
153 "message": ". Here the symbol ^ can be used as a placeholder for a single se
parator character:" | 201 "message": ". Here the symbol ^ can be used as a placeholder for a single se
parator character:" |
154 }, | 202 }, |
155 "s51": { | 203 "s74": { |
156 "message": "(requires Adblock Plus 1.1 or higher)." | 204 "message": "http://example.com^" |
157 }, | 205 }, |
158 "s52": { | 206 "s76": { |
159 "message": "Separator character is anything but a letter, a digit, or one of
the following:" | 207 "message": "Separator character is anything but a letter, a digit, or one of
the following: _ - . %. The end of the address is also accepted as separator. I
n the following example all separator characters are shown in red: http:" |
160 }, | 208 }, |
161 "s53": { | 209 "s77": { |
162 "message": ". The end of the address is also accepted as separator. In the f
ollowing example all separator characters are shown in red:" | 210 "message": "//" |
163 }, | 211 }, |
164 "s54": { | 212 "s78": { |
165 "message": ". So this address can be blocked with the filter" | 213 "message": "example.com" |
166 }, | 214 }, |
167 "s55": { | 215 "s79": { |
168 "message": "or" | 216 "message": ":" |
169 }, | 217 }, |
170 "s56": { | 218 "s80": { |
171 "message": "or" | 219 "message": "8000" |
172 }, | 220 }, |
173 "s57": { | 221 "s81": { |
174 "message": "." | 222 "message": "/" |
175 }, | 223 }, |
176 "s58": { | 224 "s82": { |
| 225 "message": "foo.bar" |
| 226 }, |
| 227 "s83": { |
| 228 "message": "?" |
| 229 }, |
| 230 "s84": { |
| 231 "message": "a" |
| 232 }, |
| 233 "s85": { |
| 234 "message": "=" |
| 235 }, |
| 236 "s86": { |
| 237 "message": "12" |
| 238 }, |
| 239 "s87": { |
| 240 "message": "&" |
| 241 }, |
| 242 "s88": { |
| 243 "message": "b" |
| 244 }, |
| 245 "s90": { |
| 246 "message": "%D1%82%D0%B5%D1%81%D1%82. So this address can be blocked with th
e filter" |
| 247 }, |
| 248 "s91": { |
| 249 "message": "^example.com^" |
| 250 }, |
| 251 "s93": { |
| 252 "message": "^%D1%82%D0%B5%D1%81%D1%82^" |
| 253 }, |
| 254 "s95": { |
| 255 "message": "^foo.bar^" |
| 256 }, |
| 257 "s97": { |
177 "message": "Comments" | 258 "message": "Comments" |
178 }, | 259 }, |
179 "s59": { | 260 "s98": { |
180 "message": "Any rule that starts with an exclamation mark is considered a co
mment. It will still show up in the filter list but in grey instead of black. Ad
block Plus will ignore this rule for actual blocking so it is safe to write ther
e whatever you want. You can place a comment rule above a real filter to describ
e what it is doing. Or you can put a comment on top of your filter list stating
your authorship (most filter list authors do that)." | 261 "message": "Any rule that starts with an exclamation mark is considered a co
mment. It will still show up in the filter list but in grey instead of black. Ad
block Plus will ignore this rule for actual blocking so it is safe to write ther
e whatever you want. You can place a comment rule above a real filter to describ
e what it is doing. Or you can put a comment on top of your filter list stating
your authorship (most filter list authors do that)." |
181 }, | 262 }, |
182 "s60": { | 263 "s99": { |
183 "message": "Special comments" | 264 "message": "Special comments" |
184 }, | 265 }, |
185 "s61": { | 266 "s100": { |
186 "message": "Special comments will only have an effect in downloaded filter l
ists, not in custom filters." | 267 "message": "Special comments will only have an effect in downloaded filter l
ists, not in custom filters. They can set a number of parameters for the filter
list:" |
187 }, | 268 }, |
188 "s62": { | 269 "s101": { |
189 "message": "They can set a number\n of parameters for the filter list:" | 270 "message": "! Homepage: http://example.com/" |
190 }, | 271 }, |
191 "s63": { | 272 "s102": { |
192 "message": "This comment determines which webpage should be linked as filter
list homepage." | 273 "message": "This comment determines which webpage should be linked as filter
list homepage." |
193 }, | 274 }, |
194 "s64": { | 275 "s103": { |
195 "message": "This comment sets a fixed title for the filter list." | 276 "message": "! Title: FooList" |
196 }, | 277 }, |
197 "s65": { | 278 "s104": { |
198 "message": "If this comment is present the user will no longer be able to ch
ange\n the title." | 279 "message": "This comment sets a fixed title for the filter list. If this com
ment is present the user will no longer be able to change the title." |
199 }, | 280 }, |
200 "s66": { | 281 "s105": { |
| 282 "message": "! Expires: 5 days" |
| 283 }, |
| 284 "s106": { |
201 "message": "This comment sets the update interval for the filter list, the v
alue can be given in days (e.g." | 285 "message": "This comment sets the update interval for the filter list, the v
alue can be given in days (e.g." |
202 }, | 286 }, |
203 "s67": { | 287 "s107": { |
204 "message": ") or hours\n (e.g." | 288 "message": "5 days" |
205 }, | 289 }, |
206 "s68": { | 290 "s108": { |
207 "message": ")." | 291 "message": ") or hours (e.g." |
208 }, | 292 }, |
209 "s69": { | 293 "s109": { |
210 "message": "Any value between 1 hour and 14 days is possible." | 294 "message": "8 hours" |
211 }, | 295 }, |
212 "s70": { | 296 "s110": { |
213 "message": "Note that the update\n will not necessarily happen after th
is time interval." | 297 "message": "). Any value between 1 hour and 14 days is possible. Note that t
he update will not necessarily happen after this time interval. The actual updat
e time is slightly randomized and depends on some additional factors to reduce s
erver load." |
214 }, | 298 }, |
215 "s71": { | 299 "s111": { |
216 "message": "The actual update time is slightly randomized and depends on\n
some additional factors to reduce server load." | 300 "message": "! Checksum: OaopkIiiAl77sSHk/VAWDA" |
217 }, | 301 }, |
218 "s72": { | 302 "s112": { |
219 "message": "This comment makes sure that accidental corruption of the data w
on't result\n in broken filters." | 303 "message": "This comment makes sure that accidental corruption of the data w
on't result in broken filters. For example, some firewall software might modify
the filter" |
220 }, | 304 }, |
221 "s73": { | 305 "s113": { |
222 "message": "For example, some firewall software might modify the filter" | |
223 }, | |
224 "s74": { | |
225 "message": "*/adnetwork/*" | 306 "message": "*/adnetwork/*" |
226 }, | 307 }, |
227 "s75": { | 308 "s114": { |
228 "message": "on download\n in an attempt to protect the user against ads
." | 309 "message": "on download in an attempt to protect the user against ads. It wi
ll remove part of the filter so that Adblock Plus will only see the filter" |
229 }, | 310 }, |
230 "s76": { | 311 "s115": { |
231 "message": "It will remove part of the filter so that Adblock Plus will only
see\n the filter" | 312 "message": "**" |
232 }, | 313 }, |
233 "s77": { | 314 "s116": { |
234 "message": "." | 315 "message": ". A checksum comment in the filter list protects against this sc
enario, any modifications will have the result that the checksum no longer match
es and Adblock Plus will ignore the data." |
235 }, | 316 }, |
236 "s78": { | 317 "s117": { |
237 "message": "A checksum comment in the filter list protects against this scen
ario, any modifications\n will have the result that the checksum no longer
matches and Adblock Plus will ignore the data." | |
238 }, | |
239 "s79": { | |
240 "message": "To calculate the checksum the following steps need to be perform
ed:" | 318 "message": "To calculate the checksum the following steps need to be perform
ed:" |
241 }, | 319 }, |
242 "s80": { | 320 "s118": { |
243 "message": "Remove the existing checksum comment if any." | 321 "message": "Remove the existing checksum comment if any." |
244 }, | 322 }, |
245 "s81": { | 323 "s119": { |
246 "message": "Encode filter list text using UTF-8 encoding." | 324 "message": "Encode filter list text using UTF-8 encoding." |
247 }, | 325 }, |
248 "s82": { | 326 "s120": { |
249 "message": "Convert all line breaks to Unix style (replace" | 327 "message": "Convert all line breaks to Unix style (replace" |
250 }, | 328 }, |
251 "s83": { | 329 "s121": { |
| 330 "message": "\\r" |
| 331 }, |
| 332 "s122": { |
252 "message": "by" | 333 "message": "by" |
253 }, | 334 }, |
254 "s84": { | 335 "s123": { |
| 336 "message": "\\n" |
| 337 }, |
| 338 "s124": { |
255 "message": "if present)." | 339 "message": "if present)." |
256 }, | 340 }, |
257 "s85": { | 341 "s125": { |
258 "message": "Remove empty lines (replace sequences of the" | 342 "message": "Remove empty lines (replace sequences of the" |
259 }, | 343 }, |
260 "s86": { | 344 "s127": { |
261 "message": "character by a single" | 345 "message": "character by a single" |
262 }, | 346 }, |
263 "s87": { | 347 "s129": { |
264 "message": "character)." | 348 "message": "character)." |
265 }, | 349 }, |
266 "s88": { | 350 "s130": { |
267 "message": "Calculate the base64-encoded MD5 checksum of the text, remove tr
ailing" | 351 "message": "Calculate the base64-encoded MD5 checksum of the text, remove tr
ailing" |
268 }, | 352 }, |
269 "s89": { | 353 "s132": { |
270 "message": "characters if any." | 354 "message": "characters if any." |
271 }, | 355 }, |
272 "s90": { | 356 "s133": { |
273 "message": "You can also have a look at the Python-based reference implement
ations to\n <a>validate a checksum</a> and to\n <a>add a checksum to a
file</a>." | 357 "message": "You can also have a look at the Python-based reference implement
ations to <a>validate a checksum</a> and to <a>add a checksum to a file</a>." |
274 }, | 358 }, |
275 "s91": { | 359 "s134": { |
276 "message": "This comment indicates that the filter list has moved to a new d
ownload address." | 360 "message": "! Redirect: http://example.com/list.txt" |
277 }, | 361 }, |
278 "s92": { | 362 "s135": { |
279 "message": "Adblock Plus will ignore any file\n contents beyond that co
mment and immediately try downloading from the new address." | 363 "message": "This comment indicates that the filter list has moved to a new d
ownload address. Adblock Plus will ignore any file contents beyond that comment
and immediately try downloading from the new address. In case of success the add
ress of the filter list will be updated in the settings. This comment is ignored
if the new address is the same as the current address, meaning that it can be u
sed to enforce the \"canonical\" address of the filter list." |
280 }, | 364 }, |
281 "s93": { | 365 "s136": { |
282 "message": "In case of success the address\n of the filter list will be
updated in the settings." | 366 "message": "! Version: 1234" |
283 }, | 367 }, |
284 "s94": { | 368 "s137": { |
285 "message": "This comment is ignored if the new address is the same as the\n
current address, meaning that it can be used to enforce the \"canonical\" a
ddress of the filter list." | 369 "message": "This comment defines a numerical version of the filter list. Thi
s version number will be displayed in issue reports and can be used to verify th
at the report refers to the current version of the filter list." |
286 }, | 370 }, |
287 "s95": { | 371 "s138": { |
288 "message": "This comment defines a numerical version of the filter list." | |
289 }, | |
290 "s96": { | |
291 "message": "This version number will be displayed in issue reports\n an
d can be used to verify that the report refers to the current version of the fil
ter list." | |
292 }, | |
293 "s97": { | |
294 "message": "Advanced features" | 372 "message": "Advanced features" |
295 }, | 373 }, |
296 "s98": { | 374 "s139": { |
297 "message": "The features described in this section are usually used only by
power users and filterlist creators. Feel free to skip it." | 375 "message": "The features described in this section are usually used only by
power users and filterlist creators. Feel free to skip it." |
298 }, | 376 }, |
299 "s99": { | 377 "s140": { |
300 "message": "Specifying filter options" | 378 "message": "Specifying filter options" |
301 }, | 379 }, |
302 "s100": { | 380 "s141": { |
303 "message": "Adblock Plus allows you to specify a number of options to modify
the behavior of a filter. You list these options separated with commas after a
dollar sign ($) at the end of the filter, for example:" | 381 "message": "Adblock Plus allows you to specify a number of options to modify
the behavior of a filter. You list these options separated with commas after a
dollar sign ($) at the end of the filter, for example:" |
304 }, | 382 }, |
305 "s101": { | 383 "s142": { |
306 "message": "Here" | 384 "message": "Here" |
307 }, | 385 }, |
308 "s102": { | 386 "s143": { |
| 387 "message": "*/ads/*" |
| 388 }, |
| 389 "s144": { |
309 "message": "is the actual filter and" | 390 "message": "is the actual filter and" |
310 }, | 391 }, |
311 "s103": { | 392 "s145": { |
312 "message": "and" | 393 "message": "script" |
313 }, | 394 }, |
314 "s104": { | 395 "s147": { |
| 396 "message": "match-case" |
| 397 }, |
| 398 "s148": { |
315 "message": "are its options. Currently the following options are supported:" | 399 "message": "are its options. Currently the following options are supported:" |
316 }, | 400 }, |
317 "s105": { | 401 "s149": { |
318 "message": "Type options: determine which types of elements a filter can blo
ck (or whitelist in case of an exception rule). Multiple type options can be spe
cified to indicate that the filter should be applied to several types of element
s. Possible types are:" | 402 "message": "Type options: determine which types of elements a filter can blo
ck (or whitelist in case of an exception rule). Multiple type options can be spe
cified to indicate that the filter should be applied to several types of element
s. Possible types are:" |
319 }, | 403 }, |
320 "s106": { | 404 "s151": { |
321 "message": "-- external scripts loaded via HTML script tag" | 405 "message": "-- external scripts loaded via HTML script tag" |
322 }, | 406 }, |
323 "s107": { | 407 "s152": { |
| 408 "message": "image" |
| 409 }, |
| 410 "s153": { |
324 "message": "-- regular images, typically loaded via HTML img tag" | 411 "message": "-- regular images, typically loaded via HTML img tag" |
325 }, | 412 }, |
326 "s108": { | 413 "s154": { |
| 414 "message": "stylesheet" |
| 415 }, |
| 416 "s155": { |
327 "message": "-- external CSS stylesheet files" | 417 "message": "-- external CSS stylesheet files" |
328 }, | 418 }, |
329 "s109": { | 419 "s156": { |
| 420 "message": "object" |
| 421 }, |
| 422 "s157": { |
330 "message": "-- content handled by browser plugins, e.g. Flash or Java" | 423 "message": "-- content handled by browser plugins, e.g. Flash or Java" |
331 }, | 424 }, |
332 "s110": { | 425 "s158": { |
333 "message": "-- requests started by the" | 426 "message": "xmlhttprequest" |
334 }, | 427 }, |
335 "s111": { | 428 "s159": { |
336 "message": "http://www.w3.org/TR/XMLHttpRequest/" | 429 "message": "-- requests started by the <a>XMLHttpRequest object</a>" |
337 }, | 430 }, |
338 "s112": { | 431 "s160": { |
339 "message": "XMLHttpRequest object" | 432 "message": "object-subrequest" |
340 }, | 433 }, |
341 "s113": { | 434 "s161": { |
342 "message": "-- requests started plugins like Flash" | 435 "message": "-- requests started plugins like Flash" |
343 }, | 436 }, |
344 "s114": { | 437 "s162": { |
| 438 "message": "subdocument" |
| 439 }, |
| 440 "s163": { |
345 "message": "-- embedded pages, usually included via HTML frames" | 441 "message": "-- embedded pages, usually included via HTML frames" |
346 }, | 442 }, |
347 "s115": { | 443 "s164": { |
| 444 "message": "document" |
| 445 }, |
| 446 "s165": { |
348 "message": "-- the page itself (only <a>exception rules</a> can be applied t
o the page)" | 447 "message": "-- the page itself (only <a>exception rules</a> can be applied t
o the page)" |
349 }, | 448 }, |
350 "s116": { | 449 "s166": { |
| 450 "message": "elemhide" |
| 451 }, |
| 452 "s167": { |
351 "message": "-- for exception rules only, similar to" | 453 "message": "-- for exception rules only, similar to" |
352 }, | 454 }, |
353 "s117": { | 455 "s169": { |
354 "message": "but only disables <a>element hiding rules</a> on the page rather
than all filter rules (Adblock Plus 1.2 and higher required)" | 456 "message": "but only disables <a>element hiding rules</a> on the page rather
than all filter rules (Adblock Plus 1.2 and higher required)" |
355 }, | 457 }, |
356 "s118": { | 458 "s170": { |
| 459 "message": "other" |
| 460 }, |
| 461 "s171": { |
357 "message": "-- types of requests not covered in the list above" | 462 "message": "-- types of requests not covered in the list above" |
358 }, | 463 }, |
359 "s119": { | 464 "s172": { |
360 "message": "The type options" | 465 "message": "The type options" |
361 }, | 466 }, |
362 "s120": { | 467 "s173": { |
| 468 "message": "background" |
| 469 }, |
| 470 "s174": { |
363 "message": "," | 471 "message": "," |
364 }, | 472 }, |
365 "s121": { | 473 "s175": { |
366 "message": "," | 474 "message": "xbl" |
367 }, | 475 }, |
368 "s122": { | 476 "s177": { |
369 "message": "and" | 477 "message": "ping" |
370 }, | 478 }, |
371 "s123": { | 479 "s179": { |
372 "message": "are outdated and should no\n longer be used." | 480 "message": "dtd" |
373 }, | 481 }, |
374 "s124": { | 482 "s180": { |
| 483 "message": "are outdated and should no longer be used." |
| 484 }, |
| 485 "s181": { |
375 "message": "Inverse type options: specify the element types the filter shoul
d <strong>not</strong> be applied to. Possible inverse type options:" | 486 "message": "Inverse type options: specify the element types the filter shoul
d <strong>not</strong> be applied to. Possible inverse type options:" |
376 }, | 487 }, |
377 "s125": { | 488 "s182": { |
378 "message": "," | 489 "message": "~script" |
379 }, | 490 }, |
380 "s126": { | 491 "s184": { |
381 "message": "," | 492 "message": "~image" |
382 }, | 493 }, |
383 "s127": { | 494 "s186": { |
384 "message": "," | 495 "message": "~stylesheet" |
385 }, | 496 }, |
386 "s128": { | 497 "s188": { |
387 "message": "," | 498 "message": "~object" |
388 }, | 499 }, |
389 "s129": { | 500 "s190": { |
390 "message": "," | 501 "message": "~xmlhttprequest" |
391 }, | 502 }, |
392 "s130": { | 503 "s192": { |
393 "message": "," | 504 "message": "~object-subrequest" |
394 }, | 505 }, |
395 "s131": { | 506 "s194": { |
396 "message": "," | 507 "message": "~subdocument" |
397 }, | 508 }, |
398 "s132": { | 509 "s196": { |
399 "message": "," | 510 "message": "~document" |
400 }, | 511 }, |
401 "s133": { | 512 "s198": { |
402 "message": "," | 513 "message": "~elemhide" |
403 }, | 514 }, |
404 "s134": { | 515 "s200": { |
| 516 "message": "~other" |
| 517 }, |
| 518 "s201": { |
405 "message": "Restriction to third-party/first-party requests: If the" | 519 "message": "Restriction to third-party/first-party requests: If the" |
406 }, | 520 }, |
407 "s135": { | 521 "s202": { |
| 522 "message": "third-party" |
| 523 }, |
| 524 "s203": { |
408 "message": "option is specified, the filter is only applied to requests from
a different origin than the currently viewed page. Similarly," | 525 "message": "option is specified, the filter is only applied to requests from
a different origin than the currently viewed page. Similarly," |
409 }, | 526 }, |
410 "s136": { | 527 "s204": { |
| 528 "message": "~third-party" |
| 529 }, |
| 530 "s205": { |
411 "message": "restricts the filter to requests from the same origin as the cur
rently viewed page." | 531 "message": "restricts the filter to requests from the same origin as the cur
rently viewed page." |
412 }, | 532 }, |
413 "s137": { | 533 "s206": { |
414 "message": "Domain restrictions: The option" | 534 "message": "Domain restrictions: The option" |
415 }, | 535 }, |
416 "s138": { | 536 "s207": { |
| 537 "message": "domain=example.com" |
| 538 }, |
| 539 "s208": { |
417 "message": "means that the filter should only be applied on pages from \"exa
mple.com\" domain. Multiple domains can be specified using \"|\" as separator: w
ith the option" | 540 "message": "means that the filter should only be applied on pages from \"exa
mple.com\" domain. Multiple domains can be specified using \"|\" as separator: w
ith the option" |
418 }, | 541 }, |
419 "s139": { | 542 "s209": { |
420 "message": "the filter will only be applied on pages from "example.com&
quot; or "example.net" domains. If a domain name is preceded with &quo
t;~", the filter should <strong>not</strong> be applied on pages from this
domain. For example," | 543 "message": "domain=example.com|example.net" |
421 }, | 544 }, |
422 "s140": { | 545 "s210": { |
| 546 "message": "the filter will only be applied on pages from \"example.com\" or
\"example.net\" domains. If a domain name is preceded with \"~\", the filter sh
ould <strong>not</strong> be applied on pages from this domain. For example," |
| 547 }, |
| 548 "s211": { |
| 549 "message": "domain=~example.com" |
| 550 }, |
| 551 "s212": { |
423 "message": "means that the filter should be applied on pages from any domain
but \"example.com\" and" | 552 "message": "means that the filter should be applied on pages from any domain
but \"example.com\" and" |
424 }, | 553 }, |
425 "s141": { | 554 "s213": { |
| 555 "message": "domain=example.com|~foo.example.com" |
| 556 }, |
| 557 "s214": { |
426 "message": "restricts the filter to the \"example.com\" domain with the exce
ption of \"foo.example.com\" subdomain." | 558 "message": "restricts the filter to the \"example.com\" domain with the exce
ption of \"foo.example.com\" subdomain." |
427 }, | 559 }, |
428 "s142": { | 560 "s216": { |
429 "message": "-- makes the filter only apply to addresses with matching letter
case, e.g. the filter" | 561 "message": "-- makes the filter only apply to addresses with matching letter
case, e.g. the filter" |
430 }, | 562 }, |
431 "s143": { | 563 "s217": { |
432 "message": "will block" | 564 "message": "*/BannerAd.gif$match-case" |
433 }, | 565 }, |
434 "s144": { | 566 "s219": { |
435 "message": "but not" | 567 "message": "http://example.com/BannerAd.gif" |
436 }, | 568 }, |
437 "s145": { | 569 "s221": { |
438 "message": "." | 570 "message": "http://example.com/bannerad.gif" |
439 }, | 571 }, |
440 "s146": { | 572 "s223": { |
| 573 "message": "collapse" |
| 574 }, |
| 575 "s224": { |
441 "message": "-- this option will override the global \"Hide placeholders of b
locked elements\" option and make sure the filter always hides the element. Simi
larly the" | 576 "message": "-- this option will override the global \"Hide placeholders of b
locked elements\" option and make sure the filter always hides the element. Simi
larly the" |
442 }, | 577 }, |
443 "s147": { | 578 "s225": { |
| 579 "message": "~collapse" |
| 580 }, |
| 581 "s226": { |
444 "message": "option will make sure the filter never hides the element." | 582 "message": "option will make sure the filter never hides the element." |
445 }, | 583 }, |
446 "s148": { | 584 "s227": { |
447 "message": "-- for any address matching a blocking rule with\n this opt
ion and not matching any exception rules with this option a\n <a>Do-Not-Tra
ck header</a> will be sent (requires\n Adblock Plus 1.3.5 or higher)." | 585 "message": "donottrack" |
448 }, | 586 }, |
449 "s149": { | 587 "s228": { |
450 "message": "For backwards compatibility it is recommended\n to use this
option in combination with contradicting type options, this will prevent this\n
filter from blocking anything in earlier Adblock Plus versions:" | 588 "message": "-- for any address matching a blocking rule with this option and
not matching any exception rules with this option a <a>Do-Not-Track header</a>
will be sent (requires Adblock Plus 1.3.5 or higher). For backwards compatibilit
y it is recommended to use this option in combination with contradicting type op
tions, this will prevent this filter from blocking anything in earlier Adblock P
lus versions:" |
451 }, | 589 }, |
452 "s150": { | 590 "s229": { |
| 591 "message": "*$donottrack,image,~image" |
| 592 }, |
| 593 "s230": { |
453 "message": "Using regular expressions" | 594 "message": "Using regular expressions" |
454 }, | 595 }, |
455 "s151": { | 596 "s231": { |
456 "message": "If you want even more control about what your filters match and
what they don't match, you can use regular expressions. For example the filter" | 597 "message": "If you want even more control about what your filters match and
what they don't match, you can use regular expressions. For example the filter" |
457 }, | 598 }, |
458 "s152": { | 599 "s232": { |
| 600 "message": "/banner\\d+/" |
| 601 }, |
| 602 "s233": { |
459 "message": "will match" | 603 "message": "will match" |
460 }, | 604 }, |
461 "s153": { | 605 "s234": { |
462 "message": "and" | 606 "message": "banner123" |
463 }, | 607 }, |
464 "s154": { | 608 "s236": { |
465 "message": "but not" | 609 "message": "banner321" |
466 }, | 610 }, |
467 "s155": { | 611 "s238": { |
468 "message": ". You can check out" | 612 "message": "banners" |
469 }, | 613 }, |
470 "s156": { | 614 "s239": { |
471 "message": "https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Regul
ar_Expressions#Writing_a_Regular_Expression_Pattern" | 615 "message": ". You can check out <a>documentation on regular expressions</a>
to learn how to write them." |
472 }, | 616 }, |
473 "s157": { | 617 "s240": { |
474 "message": "documentation on regular expressions" | |
475 }, | |
476 "s158": { | |
477 "message": "to learn how to write them." | |
478 }, | |
479 "s159": { | |
480 "message": "<em>Note</em>: For performance reasons it is recommended not to
use regular expressions if they can be avoided." | 618 "message": "<em>Note</em>: For performance reasons it is recommended not to
use regular expressions if they can be avoided." |
481 }, | 619 }, |
482 "s160": { | 620 "s241": { |
483 "message": "Element hiding" | 621 "message": "Element hiding" |
484 }, | 622 }, |
485 "s161": { | 623 "s242": { |
486 "message": "Basic rules" | 624 "message": "Basic rules" |
487 }, | 625 }, |
488 "s162": { | 626 "s243": { |
489 "message": "Sometimes you will find advertisements that can't be blocked bec
ause they are embedded as text in the web page itself. If you look at the source
code of the web page you might find something like this:" | 627 "message": "Sometimes you will find advertisements that can't be blocked bec
ause they are embedded as text in the web page itself. If you look at the source
code of the web page you might find something like this:" |
490 }, | 628 }, |
491 "s163": { | 629 "s244": { |
492 "message": "<div class=\"textad\">\nCheapest tofu, only here and now!\n</div
>\n<div id=\"sponsorad\">\nReally cheap tofu, click here!\n</div>\n<textad>\nOnl
y here you get the best tofu!\n</textad>" | |
493 }, | |
494 "s164": { | |
495 "message": "You need to download the web page so you will necessarily downlo
ad the advertisements. All you can do here is to hide the advertisement so you d
on't need to see it. That's what element hiding is meant for." | 630 "message": "You need to download the web page so you will necessarily downlo
ad the advertisements. All you can do here is to hide the advertisement so you d
on't need to see it. That's what element hiding is meant for." |
496 }, | 631 }, |
497 "s165": { | 632 "s245": { |
498 "message": "The first advertisement above is contained inside a div element
with class attribute \"textad\". The following rule will hide exactly this combi
nation:" | 633 "message": "The first advertisement above is contained inside a div element
with class attribute \"textad\". The following rule will hide exactly this combi
nation:" |
499 }, | 634 }, |
500 "s166": { | 635 "s246": { |
| 636 "message": "##div.textad" |
| 637 }, |
| 638 "s247": { |
501 "message": ". Here ## marks an element hiding rule while the rest is a selec
tor identifying the elements that need to be hidden. You can hide elements by th
eir id attribute similarly," | 639 "message": ". Here ## marks an element hiding rule while the rest is a selec
tor identifying the elements that need to be hidden. You can hide elements by th
eir id attribute similarly," |
502 }, | 640 }, |
503 "s167": { | 641 "s248": { |
| 642 "message": "##div#sponsorad" |
| 643 }, |
| 644 "s249": { |
504 "message": "will hide the second advertisement. You don't need to specify th
e element name, the rule" | 645 "message": "will hide the second advertisement. You don't need to specify th
e element name, the rule" |
505 }, | 646 }, |
506 "s168": { | 647 "s250": { |
| 648 "message": "##*#sponsorad" |
| 649 }, |
| 650 "s251": { |
507 "message": "will work just as well. And you can hide elements by element nam
e only, e.g." | 651 "message": "will work just as well. And you can hide elements by element nam
e only, e.g." |
508 }, | 652 }, |
509 "s169": { | 653 "s252": { |
| 654 "message": "##textad" |
| 655 }, |
| 656 "s253": { |
510 "message": "for the third advertisement." | 657 "message": "for the third advertisement." |
511 }, | 658 }, |
512 "s170": { | 659 "s254": { |
513 "message": "The <a>Element Hiding Helper extension</a> helps selecting the c
orrect element and writing the corresponding rule without having to view the sou
rce code of the page. Basic HTML knowledge is useful nevertheless." | 660 "message": "The <a>Element Hiding Helper extension</a> helps selecting the c
orrect element and writing the corresponding rule without having to view the sou
rce code of the page. Basic HTML knowledge is useful nevertheless." |
514 }, | 661 }, |
515 "s171": { | 662 "s255": { |
516 "message": "<em>Note</em>: Element hiding works very differently from normal
filters. This has the implication that no wildcards are supported in element hi
ding rules." | 663 "message": "<em>Note</em>: Element hiding works very differently from normal
filters. This has the implication that no wildcards are supported in element hi
ding rules." |
517 }, | 664 }, |
518 "s172": { | 665 "s256": { |
519 "message": "Limiting rules to certain domains" | 666 "message": "Limiting rules to certain domains" |
520 }, | 667 }, |
521 "s173": { | 668 "s257": { |
522 "message": "Usually you want to hide a specific ad on one specific site, you
don't want your rule to be applied on other sites. For example the rule" | 669 "message": "Usually you want to hide a specific ad on one specific site, you
don't want your rule to be applied on other sites. For example the rule" |
523 }, | 670 }, |
524 "s174": { | 671 "s258": { |
| 672 "message": "##*.sponsor" |
| 673 }, |
| 674 "s259": { |
525 "message": "might hide valid code on some sites. But if you write it as" | 675 "message": "might hide valid code on some sites. But if you write it as" |
526 }, | 676 }, |
527 "s175": { | 677 "s260": { |
| 678 "message": "example.com##*.sponsor" |
| 679 }, |
| 680 "s261": { |
528 "message": "it will be applied on" | 681 "message": "it will be applied on" |
529 }, | 682 }, |
530 "s176": { | 683 "s264": { |
531 "message": "and" | 684 "message": "http://something.example.com/" |
532 }, | 685 }, |
533 "s177": { | 686 "s265": { |
534 "message": "but not on" | 687 "message": "but not on" |
535 }, | 688 }, |
536 "s178": { | 689 "s266": { |
| 690 "message": "http://example.org/" |
| 691 }, |
| 692 "s267": { |
537 "message": ". You can also specify multiple domains -- simply separate them
with commas:" | 693 "message": ". You can also specify multiple domains -- simply separate them
with commas:" |
538 }, | 694 }, |
539 "s179": { | 695 "s268": { |
540 "message": "." | 696 "message": "domain1.example,domain2.example,domain3.example##*.sponsor" |
541 }, | 697 }, |
542 "s180": { | 698 "s270": { |
543 "message": "If a domain name is preceded with "~", the rule will <
strong>not</strong> be applied on pages from this domain (requires Adblock Plus
1.1 or higher). For example," | 699 "message": "If a domain name is preceded with \"~\", the rule will <strong>n
ot</strong> be applied on pages from this domain (requires Adblock Plus 1.1 or h
igher). For example," |
544 }, | 700 }, |
545 "s181": { | 701 "s271": { |
| 702 "message": "~example.com##*.sponsor" |
| 703 }, |
| 704 "s272": { |
546 "message": "will be be applied on pages from any domain but \"example.com\"
and" | 705 "message": "will be be applied on pages from any domain but \"example.com\"
and" |
547 }, | 706 }, |
548 "s182": { | 707 "s273": { |
| 708 "message": "example.com,~foo.example.com##*.sponsor" |
| 709 }, |
| 710 "s274": { |
549 "message": "makes the rule apply on \"example.com\" domain with the exceptio
n of \"foo.example.com\" subdomain." | 711 "message": "makes the rule apply on \"example.com\" domain with the exceptio
n of \"foo.example.com\" subdomain." |
550 }, | 712 }, |
551 "s183": { | 713 "s275": { |
552 "message": "<em>Note</em>: Due to the way how element hiding is implemented,
you really can only limit it to full domain names. You cannot use any other par
t of the address and you cannot use" | 714 "message": "<em>Note</em>: Due to the way how element hiding is implemented,
you really can only limit it to full domain names. You cannot use any other par
t of the address and you cannot use" |
553 }, | 715 }, |
554 "s184": { | 716 "s276": { |
| 717 "message": "domain" |
| 718 }, |
| 719 "s277": { |
555 "message": "as a replacement for" | 720 "message": "as a replacement for" |
556 }, | 721 }, |
557 "s185": { | 722 "s278": { |
558 "message": "." | 723 "message": "domain.example,domain.test" |
559 }, | 724 }, |
560 "s186": { | 725 "s280": { |
561 "message": "<em>Note</em>: Element hiding rules with domain limitation can b
e used to hide browser's user interface elements as well. For example the filter
rule" | 726 "message": "<em>Note</em>: Element hiding rules with domain limitation can b
e used to hide browser's user interface elements as well. For example the filter
rule" |
562 }, | 727 }, |
563 "s187": { | 728 "s281": { |
| 729 "message": "browser##menuitem#javascriptConsole" |
| 730 }, |
| 731 "s282": { |
564 "message": "will hide the JavaScript Console entry in Firefox's Tools menu." | 732 "message": "will hide the JavaScript Console entry in Firefox's Tools menu." |
565 }, | 733 }, |
566 "s188": { | 734 "s283": { |
567 "message": "Attribute selectors" | 735 "message": "Attribute selectors" |
568 }, | 736 }, |
569 "s189": { | 737 "s284": { |
570 "message": "Some advertisers don't make it easy for you -- their text advert
isements have neither an id nor a class attribute. You can use other attributes
to hide those, for example" | 738 "message": "Some advertisers don't make it easy for you -- their text advert
isements have neither an id nor a class attribute. You can use other attributes
to hide those, for example" |
571 }, | 739 }, |
572 "s190": { | 740 "s285": { |
| 741 "message": "##table[width=\"80%\"]" |
| 742 }, |
| 743 "s286": { |
573 "message": "will hide tables with width attribute set to 80%. If you don't w
ant to specify the full value of the attribute," | 744 "message": "will hide tables with width attribute set to 80%. If you don't w
ant to specify the full value of the attribute," |
574 }, | 745 }, |
575 "s191": { | 746 "s287": { |
| 747 "message": "##div[title*=\"adv\"]" |
| 748 }, |
| 749 "s288": { |
576 "message": "will hide all div elements with title attribute containing the s
tring \"adv\". You can also check the beginning and the end of an attribute, for
example" | 750 "message": "will hide all div elements with title attribute containing the s
tring \"adv\". You can also check the beginning and the end of an attribute, for
example" |
577 }, | 751 }, |
578 "s192": { | 752 "s289": { |
| 753 "message": "##div[title^=\"adv\"][title$=\"ert\"]" |
| 754 }, |
| 755 "s290": { |
579 "message": "will hide div elements with title starting with \"adv\" and endi
ng with \"ert\". As you see, you can also use multiple conditions --" | 756 "message": "will hide div elements with title starting with \"adv\" and endi
ng with \"ert\". As you see, you can also use multiple conditions --" |
580 }, | 757 }, |
581 "s193": { | 758 "s291": { |
| 759 "message": "table[width=\"80%\"][bgcolor=\"white\"]" |
| 760 }, |
| 761 "s292": { |
582 "message": "will match tables with width attribute set to 80% and bgcolor at
tribute set to white." | 762 "message": "will match tables with width attribute set to 80% and bgcolor at
tribute set to white." |
583 }, | 763 }, |
584 "s194": { | 764 "s293": { |
585 "message": "Advanced selectors" | 765 "message": "Advanced selectors" |
586 }, | 766 }, |
587 "s195": { | 767 "s294": { |
588 "message": "In general, any CSS selector supported by Firefox can be used fo
r element hiding. For example the following rule will hide anything following a
div element with class \"adheader\":" | 768 "message": "In general, any CSS selector supported by Firefox can be used fo
r element hiding. For example the following rule will hide anything following a
div element with class \"adheader\":" |
589 }, | 769 }, |
590 "s196": { | 770 "s295": { |
591 "message": ". For a full list of CSS list see" | 771 "message": "##div.adheader + *" |
592 }, | 772 }, |
593 "s197": { | 773 "s296": { |
594 "message": "http://www.w3.org/TR/css3-selectors/" | 774 "message": ". For a full list of CSS list see <a>W3C CSS specification</a> (
note that not all selectors are supported by Firefox yet)." |
595 }, | 775 }, |
596 "s198": { | 776 "s297": { |
597 "message": "W3C CSS specification" | |
598 }, | |
599 "s199": { | |
600 "message": "(note that not all selectors are supported by Firefox yet)." | |
601 }, | |
602 "s200": { | |
603 "message": "<em>Note</em>: This functionality is for advanced users only, yo
u should be comfortable with CSS selectors to use it. Adblock Plus won't be able
to check the syntax of the selector you are adding, if you use invalid CSS synt
ax you might break other (valid) rules you have. Check JavaScript Console for CS
S errors." | 777 "message": "<em>Note</em>: This functionality is for advanced users only, yo
u should be comfortable with CSS selectors to use it. Adblock Plus won't be able
to check the syntax of the selector you are adding, if you use invalid CSS synt
ax you might break other (valid) rules you have. Check JavaScript Console for CS
S errors." |
604 }, | 778 }, |
605 "s201": { | 779 "s298": { |
606 "message": "Exception rules" | 780 "message": "Exception rules" |
607 }, | 781 }, |
608 "s202": { | 782 "s299": { |
609 "message": "Exception rules can disable existing rules on particular domains
." | 783 "message": "Exception rules can disable existing rules on particular domains
. These are mostly useful to filter subscription authors who are extending anoth
er filter subscription that they cannot change. For example, the rule" |
610 }, | 784 }, |
611 "s203": { | 785 "s301": { |
612 "message": "These are mostly\n useful to filter subscription authors who ar
e extending another filter subscription that they\n cannot change." | 786 "message": "can be disabled on" |
613 }, | 787 }, |
614 "s204": { | 788 "s303": { |
615 "message": "For example, the rule" | |
616 }, | |
617 "s205": { | |
618 "message": "can be\n disabled on" | |
619 }, | |
620 "s206": { | |
621 "message": "using the exception rule" | 789 "message": "using the exception rule" |
622 }, | 790 }, |
623 "s207": { | 791 "s304": { |
624 "message": "." | 792 "message": "example.com#@#div.textad" |
625 }, | 793 }, |
626 "s208": { | 794 "s305": { |
627 "message": "The combination of these two\n rules has exactly the same effec
t as the single rule" | 795 "message": ". The combination of these two rules has exactly the same effect
as the single rule" |
628 }, | 796 }, |
629 "s209": { | 797 "s306": { |
630 "message": "." | 798 "message": "~example.com##div.textad" |
631 }, | 799 }, |
632 "s210": { | 800 "s307": { |
633 "message": "It is recommended that you use\n exception rules only when you
cannot change an overly general element hiding rule, in all the\n other cases l
imiting this rule to the necessary domains is preferable." | 801 "message": ". It is recommended that you use exception rules only when you c
annot change an overly general element hiding rule, in all the other cases limit
ing this rule to the necessary domains is preferable." |
634 }, | 802 }, |
635 "s211": { | 803 "s308": { |
636 "message": "Simplified element hiding syntax" | 804 "message": "Simplified element hiding syntax" |
637 }, | 805 }, |
638 "s212": { | 806 "s309": { |
639 "message": "Adblock Plus supports simplified element hiding syntax (e.g." | 807 "message": "Adblock Plus supports simplified element hiding syntax (e.g." |
640 }, | 808 }, |
641 "s213": { | 809 "s310": { |
| 810 "message": "#div(id=foo)" |
| 811 }, |
| 812 "s311": { |
642 "message": ") for backwards compatibility only. Using this syntax is discour
aged, usual CSS selectors are preferred. Support for this syntax might be remove
d at some point." | 813 "message": ") for backwards compatibility only. Using this syntax is discour
aged, usual CSS selectors are preferred. Support for this syntax might be remove
d at some point." |
643 } | 814 } |
644 } | 815 } |
OLD | NEW |