home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 April / PCWorld_2001-04_cd.bin / Software / TemaCD / webclean / config / zaplets.txt < prev   
Text File  |  2000-12-07  |  4KB  |  126 lines

  1.                        ZAPLET FORMAT
  2.                        =============
  3.  
  4. Zaplets are configuration files for blocking URLs and filtering HTML
  5. data.
  6. Each file can have any number of zaplets (including zero).
  7. Each zaplet can have any number of blockers or filters (including
  8. zero).
  9. A zaplet is an XML formatted list of tags which are described below:
  10.  
  11. [XXX make formal DTD specification]
  12.  
  13. 1) <zaplet version="1.0" description="blubb" lang="Perl"></zaplet>
  14.    
  15.    The version tag is for backward compatibility. If a parser does
  16.    not understand a specific version, the zaplet is ignored.
  17.    
  18.    The description can be displayed by configuration tools which
  19.    enable/disable some zaplets.
  20.    
  21.    The lang attribute can restrict the zaplet only to this language.
  22.    If there is no lang attribute, this zaplet can be used by all
  23.    languages.
  24.    If there is a lang attribute, all lang attributes occuring in
  25.    the rules are ignored.
  26.    For language specific things see below.
  27.  
  28.  
  29. 2) <filter
  30.     description=""
  31.     tag=""
  32.     attr=""
  33.     attrvalue=""
  34.     lang=""
  35.     replace_tag
  36.     replace_tag_name
  37.     replace_enclosed_block
  38.     replace_attribute
  39.     replace_attribute_value
  40.     replace_alternate_content
  41.     replace_ifnotmatch
  42.    >this is the replacement text (or none)</filter>
  43.  
  44.    The filter tag applies to HTML content and can replace (or delete if
  45.    the replacement is empty) arbitrary HTML tag blocks.
  46.  
  47.  Option                     Description of this option
  48.  -------------------------------------------------------------------
  49.  description                this text can be displayed by configuration
  50.                             tools which enable/disable some filters.
  51.  tag                        specifies a regular expression to match an
  52.                             HTML tag.
  53.  attr                       specifies a regular expression to match an
  54.                             attribute of an HTML tag.
  55.  attrvalue                  specifies a regular expression to match an
  56.                             attribute value of an HTML tag.
  57.  lang                       restricts this rule to the specified
  58.                             language
  59.  -------------------------------------------------------------------
  60.  Option                     What it does when replacement text is 'foo'
  61.  -------------------------------------------------------------------
  62.  replace_tag                <blink>text</blink>  => footextfoo
  63.  replace_tag_name           <blink>text</blink>  => <foo>text</foo>
  64.  replace_enclosed_block    <blink>text</blink>  => <blink>foo</blink>
  65.  replace_attribute          <a href="bla">..</a> => <a foo>..</a>
  66.  replace_attribute_value    <a href="bla">..</a> => <a href="foo">..</a>
  67.  replace_ifnotmatch         replace if matchers do not match a tag
  68.  
  69.  
  70.   There are several ways to combine these options. We will list now
  71.   all valid combinations.
  72.   Invalid combinations result in dropping the filter rule.
  73.   
  74.   [XXX list all combinations]
  75.   
  76.  
  77. 3) <block description="" host="" path=""/ lang="">
  78.   
  79.   Here we can specify urls to block. We split urls in host and path and
  80.   specify regular expressions for each.
  81.  
  82.  
  83.  
  84.                                 NOTES
  85.                 =====
  86.  
  87. All regular expressions are matched case insensitive.
  88. If a regular expression is not given it matches everything (this is
  89. not the same as giving an empty regular expression!).
  90. Default zaplet version is "1.0".
  91. Default filter options are "replace_tag replace_enclosed_block".
  92. Zaplet files have a .zap extension.
  93.  
  94. XXX quote XML metacharacters!
  95.  
  96.  
  97.                                EXAMPLES
  98.                    ========
  99.  
  100. <zaplet description="BLINK tag">
  101.  
  102. <filter description="Replace BLINK with B"
  103.  tag="blink" replace_tag_name>b</filter>
  104.  
  105. </zaplet>
  106.  
  107.  
  108. <zaplet description="Advertisements">
  109.  
  110. <block description="data from hosts without DNS name"
  111.  host="^[\d.:]+$" path="([=&?]|\.gif$|banner)"/>
  112.  
  113. <filter description="CGI adverts"
  114.  tag="a" attr="href"
  115.  attrvalue="http://.*/cgi-bin/ads?(log)?.*([=&?]|\.gif)"/>
  116.  
  117. </zaplet>
  118.  
  119. # restricted to Python because of ?P<replace> name submatches.
  120. <zaplet description="Redirects" lang="Python">
  121. <filter description="No redirection"
  122.  tag="a" attr="href"
  123.  attrvalue="redirect\.cgi\?.*?location=(?P<replace>[^="&]+)"
  124.  replace_attribute_value/>
  125. </zaplet>
  126.