<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -231,12 +231,12 @@ HTML Purifier uses iconv to support other character encodings, as such,
 any encoding that iconv supports &lt;http://www.gnu.org/software/libiconv/&gt;
 HTML Purifier supports with this code:
 
-    $config-&gt;set('Core', 'Encoding', /* put your encoding here */);
+    $config-&gt;set('Core.Encoding', /* put your encoding here */);
 
 An example usage for Latin-1 websites (the most common encoding for English
 websites):
 
-    $config-&gt;set('Core', 'Encoding', 'ISO-8859-1');
+    $config-&gt;set('Core.Encoding', 'ISO-8859-1');
 
 Note that HTML Purifier's support for non-Unicode encodings is crippled by the
 fact that any character not supported by that encoding will be silently
@@ -251,7 +251,7 @@ reason, I do not include the solution in this document).
 For those of you using HTML 4.01 Transitional, you can disable
 XHTML output like this:
 
-    $config-&gt;set('HTML', 'Doctype', 'HTML 4.01 Transitional');
+    $config-&gt;set('HTML.Doctype', 'HTML 4.01 Transitional');
 
 Other supported doctypes include:
 
@@ -277,14 +277,14 @@ are, respectively, %HTML.Allowed, %URI.MakeAbsolute and %URI.Base, and
 %AutoFormat.AutoParagraph. The %Namespace.Directive naming convention
 translates to:
 
-    $config-&gt;set('Namespace', 'Directive', $value);
+    $config-&gt;set('Namespace.Directive', $value);
 
 E.g.
 
-    $config-&gt;set('HTML', 'Allowed', 'p,b,a[href],i');
-    $config-&gt;set('URI', 'Base', 'http://www.example.com');
-    $config-&gt;set('URI', 'MakeAbsolute', true);
-    $config-&gt;set('AutoFormat', 'AutoParagraph', true);
+    $config-&gt;set('HTML.Allowed', 'p,b,a[href],i');
+    $config-&gt;set('URI.Base', 'http://www.example.com');
+    $config-&gt;set('URI.MakeAbsolute', true);
+    $config-&gt;set('AutoFormat.AutoParagraph', true);
 
 
 ---------------------------------------------------------------------------
@@ -318,11 +318,11 @@ If you are unable or unwilling to give write permissions to the cache
 directory, you can either disable the cache (and suffer a performance
 hit):
 
-    $config-&gt;set('Core', 'DefinitionCache', null);
+    $config-&gt;set('Core.DefinitionCache', null);
 
 Or move the cache directory somewhere else (no trailing slash):
 
-    $config-&gt;set('Cache', 'SerializerPath', '/home/user/absolute/path');
+    $config-&gt;set('Cache.SerializerPath', '/home/user/absolute/path');
 
 
 ---------------------------------------------------------------------------
@@ -363,8 +363,8 @@ If your website is in a different encoding or doctype, use this code:
     require_once '/path/to/htmlpurifier/library/HTMLPurifier.auto.php';
 
     $config = HTMLPurifier_Config::createDefault();
-    $config-&gt;set('Core', 'Encoding', 'ISO-8859-1'); // replace with your encoding
-    $config-&gt;set('HTML', 'Doctype', 'HTML 4.01 Transitional'); // replace with your doctype
+    $config-&gt;set('Core.Encoding', 'ISO-8859-1'); // replace with your encoding
+    $config-&gt;set('HTML.Doctype', 'HTML 4.01 Transitional'); // replace with your doctype
     $purifier = new HTMLPurifier($config);
 
     $clean_html = $purifier-&gt;purify($dirty_html);</diff>
      <filename>INSTALL</filename>
    </modified>
    <modified>
      <diff>@@ -18,14 +18,13 @@ afraid to cast your vote for the next feature to be implemented!
 - Incorporate download and resize support as implemented here:
   http://htmlpurifier.org/phorum/read.php?3,2795,3628
 - Think about allowing explicit order of operations hooks for transforms
-- Make it dead easy for other authors to maintain their own configuration
-  pools. Encourage them to namespace them (this flies counter to our
-  &quot;hey, let's use convention idea&quot;, so that's why the &quot;register&quot; extra
-  field will end up being a good idea: because it means we can forgo
-  convention for external things
+- Add &quot;register&quot; field to config schemas to eliminate dependence on
+  naming conventions
 - Make it easy for people to cache their entire configuration (so that
   they have one script they run to change configuration, and then a stub
   loader to get that configuration)
+- Add examples to everything (make built-in which also automatically
+  gives output)
 
 FUTURE VERSIONS
 ---------------</diff>
      <filename>TODO</filename>
    </modified>
    <modified>
      <diff>@@ -17,202 +17,9 @@
 &lt;div id=&quot;home&quot;&gt;&lt;a href=&quot;http://htmlpurifier.org/&quot;&gt;HTML Purifier&lt;/a&gt; End-User Documentation&lt;/div&gt;
 
 &lt;p&gt;
-  &lt;strong&gt;Warning:&lt;/strong&gt; This document may be out-of-date. When in doubt,
-  consult the source code documentation.
+  Please see &lt;a href=&quot;enduser-customize.html&quot;&gt;Customize!&lt;/a&gt;
 &lt;/p&gt;
 
-&lt;p&gt;HTML Purifier currently natively supports only a subset of HTML's
-allowed elements, attributes, and behavior; specifically, this subset
-is the set of elements that are safe for untrusted users to use.
-However, HTML Purifier is often utilized to ensure standards-compliance
-from input that is trusted (making it a sort of Tidy substitute),
-and often users need to define new elements or attributes. The
-advanced API is oriented specifically for these use-cases.&lt;/p&gt;
-
-&lt;p&gt;Our goals are to let the user:&lt;/p&gt;
-
-&lt;dl&gt;
-    &lt;dt&gt;Select&lt;/dt&gt;
-    &lt;dd&gt;&lt;ul&gt;
-        &lt;li&gt;Doctype&lt;/li&gt;
-        &lt;!-- &lt;li&gt;Filterset&lt;/li&gt; --&gt;
-        &lt;li&gt;Elements / Attributes / Modules&lt;/li&gt;
-        &lt;li&gt;Tidy&lt;/li&gt;
-    &lt;/ul&gt;&lt;/dd&gt;
-    &lt;dt&gt;Customize&lt;/dt&gt;
-    &lt;dd&gt;&lt;ul&gt;
-        &lt;li&gt;Attributes&lt;/li&gt;
-        &lt;li&gt;Elements&lt;/li&gt;
-        &lt;!--&lt;li&gt;Doctypes&lt;/li&gt;--&gt;
-    &lt;/ul&gt;&lt;/dd&gt;
-&lt;/dl&gt;
-
-&lt;h2&gt;Select&lt;/h2&gt;
-
-&lt;p&gt;For basic use, the user will have to specify some basic parameters. This
-is not strictly necessary, as HTML Purifier's default setting will always
-output safe code, but is required for standards-compliant output.&lt;/p&gt;
-
-&lt;h3&gt;Selecting a Doctype&lt;/h3&gt;
-
-&lt;p&gt;The first thing to select is the &lt;strong&gt;doctype&lt;/strong&gt;. This
-is essential for standards-compliant output.&lt;/p&gt;
-
-&lt;p class=&quot;technical&quot;&gt;This identifier is based
-on the name the W3C has given to the document type and &lt;em&gt;not&lt;/em&gt;
-the DTD identifier.&lt;/p&gt;
-
-&lt;p&gt;This parameter is set via the configuration object:&lt;/p&gt;
-
-&lt;pre&gt;$config-&gt;set('HTML', 'Doctype', 'XHTML 1.0 Transitional');&lt;/pre&gt;
-
-&lt;p&gt;Due to historical reasons, the default doctype is XHTML 1.0
-Transitional, however, we really shouldn't be guessing what the user's
-doctype is. Fortunantely, people who can't be bothered to set this won't
-be bothered when their pages stop validating.&lt;/p&gt;
-
-&lt;h3&gt;Selecting Elements / Attributes / Modules&lt;/h3&gt;
-
-&lt;p&gt;HTML Purifier will, by default, allow as many elements and attributes
-as possible. However, a user may decide to roll their own filterset by
-selecting modules, elements and attributes to allow for their own
-specific use-case. This can be done using %HTML.Allowed:&lt;/p&gt;
-
-&lt;pre&gt;$config-&gt;set('HTML', 'Allowed', 'a[href|title],em,p,blockquote');&lt;/pre&gt;
-
-&lt;p class=&quot;technical&quot;&gt;The directive %HTML.Allowed is a convenience feature
-that may be fully expressed with the legacy interface.&lt;/p&gt;
-
-&lt;p&gt;We currently support another interface from older versions:&lt;/p&gt;
-
-&lt;pre&gt;$config-&gt;set('HTML', 'AllowedElements', 'a,em,p,blockquote');
-$config-&gt;set('HTML', 'AllowedAttributes', 'a.href,a.title');&lt;/pre&gt;
-
-&lt;p&gt;A user may also choose to allow modules using a specialized
-directive:&lt;/p&gt;
-
-&lt;pre&gt;$config-&gt;set('HTML', 'AllowedModules', 'Hypertext,Text,Lists');&lt;/pre&gt;
-
-&lt;p&gt;But it is not expected that this feature will be widely used.&lt;/p&gt;
-
-&lt;p class=&quot;technical&quot;&gt;Module selection will work slightly differently
-from the other AllowedElements and AllowedAttributes directives by
-directly modifying the doctype you are operating in, in the spirit of
-XHTML 1.1's modularization. We stop users from shooting themselves in the
-foot by mandating the modules in %HTML.CoreModules be used.&lt;/p&gt;
-
-&lt;p class=&quot;technical&quot;&gt;Modules are distinguished from regular elements by the
-case of their first letter. While XML distinguishes between and allows
-lower and uppercase letters in element names, XHTML uses only lower-case
-element names for sake of consistency.&lt;/p&gt;
-
-&lt;h3&gt;Selecting Tidy&lt;/h3&gt;
-
-&lt;p&gt;The name of this segment of functionality is inspired off of Dave
-Ragget's program HTML Tidy, which purported to help clean up HTML. In
-HTML Purifier, Tidy functionality involves turning unsupported and
-deprecated elements into standards-compliant ones, maintaining
-backwards compatibility, and enforcing best practices.&lt;/p&gt;
-
-&lt;p&gt;This is a complicated feature, and is explained more in depth at
-&lt;a href=&quot;enduser-tidy.html&quot;&gt;the Tidy documentation page&lt;/a&gt;.&lt;/p&gt;
-
-&lt;!--
-&lt;h3&gt;Unified selector&lt;/h3&gt;
-
-&lt;p&gt;Because selecting each and every one of these configuration options
-is a chore, we may wish to offer a specialized configuration method
-for selecting a filterset. Possibility:&lt;/p&gt;
-
-&lt;pre&gt;function selectFilter($doctype, $filterset, $tidy)&lt;/pre&gt;
-
-&lt;p&gt;...which is simply a light wrapper over the individual configuration
-calls. A custom config file format or text format could also be adopted.&lt;/p&gt;
---&gt;
-
-&lt;h2&gt;Customize&lt;/h2&gt;
-
-&lt;p&gt;By reviewing topic posts in the support forum, we determined that
-there were two primarily demanded customization features people wanted:
-to add an attribute to an existing element, and to add an element.
-Thus, we'll want to create convenience functions for these common
-use-cases.&lt;/p&gt;
-
-&lt;p&gt;Note that the functions described here are only available if
-a raw copy of &lt;code&gt;HTMLPurifier_HTMLDefinition&lt;/code&gt; was retrieved.
-Furthermore, caching may prevent your changes from immediately
-being seen: consult &lt;a href=&quot;enduser-customize.html&quot;&gt;enduser-customize.html&lt;/a&gt; on how
-to work around this.&lt;/p&gt;
-
-&lt;h3&gt;Attributes&lt;/h3&gt;
-
-&lt;p&gt;An attribute is bound to an element by a name and has a specific
-&lt;code&gt;AttrDef&lt;/code&gt; that validates it. The interface is therefore:&lt;/p&gt;
-
-&lt;pre&gt;function addAttribute($element, $attribute, $attribute_def);&lt;/pre&gt;
-
-&lt;p&gt;Example of the functionality in action:&lt;/p&gt;
-
-&lt;pre&gt;$def-&gt;addAttribute('a', 'rel', 'Enum#nofollow');&lt;/pre&gt;
-
-&lt;p&gt;The &lt;code&gt;$attribute_def&lt;/code&gt; value is flexible,
-to make things simpler. It can be a literal object or:&lt;/p&gt;
-
-&lt;ul&gt;
-    &lt;!--&lt;li&gt;Class name: We'll instantiate it for you&lt;/li&gt;
-    &lt;li&gt;Function name: We'll create an &lt;code&gt;HTMLPurifier_AttrDef_Anonymous&lt;/code&gt;
-        class with that function registered as a callback.&lt;/li&gt;--&gt;
-    &lt;li&gt;String attribute type: We'll use &lt;code&gt;HTMLPurifier_AttrTypes&lt;/code&gt;
-        to resolve it for you. Any data that follows a hash mark (#) will
-        be used to customize the attribute type: in the example above,
-        we specify which values for Enum to allow.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3&gt;Elements&lt;/h3&gt;
-
-&lt;p&gt;An element requires certain information as specified by
-&lt;code&gt;HTMLPurifier_ElementDef&lt;/code&gt;. However, not all of it is necessary,
-the usual things required are:&lt;/p&gt;
-
-&lt;ul&gt;
-    &lt;li&gt;Attributes&lt;/li&gt;
-    &lt;li&gt;Content model/type&lt;/li&gt;
-    &lt;li&gt;Registration in a content set&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;p&gt;This suggests an API like this:&lt;/p&gt;
-
-&lt;pre&gt;function addElement($element, $type, $contents,
-    $attr_collections = array(); $attributes = array());&lt;/pre&gt;
-
-&lt;p&gt;Each parameter explained in depth:&lt;/p&gt;
-
-&lt;dl&gt;
-    &lt;dt&gt;&lt;code&gt;$element&lt;/code&gt;&lt;/dt&gt;
-    &lt;dd&gt;Element name, ex. 'label'&lt;/dd&gt;
-    &lt;dt&gt;&lt;code&gt;$type&lt;/code&gt;&lt;/dt&gt;
-    &lt;dd&gt;Content set to register in, ex. 'Inline' or 'Flow'&lt;/dd&gt;
-    &lt;dt&gt;&lt;code&gt;$contents&lt;/code&gt;&lt;/dt&gt;
-    &lt;dd&gt;Description of allowed children. This is a merged form of
-        &lt;code&gt;HTMLPurifier_ElementDef&lt;/code&gt;'s member variables
-        &lt;code&gt;$content_model&lt;/code&gt; and &lt;code&gt;$content_model_type&lt;/code&gt;,
-        where the form is &lt;q&gt;Type: Model&lt;/q&gt;, ex. 'Optional: Inline'.
-        There are also a number of predefined templates one may use.&lt;/dd&gt;
-    &lt;dt&gt;&lt;code&gt;$attr_collections&lt;/code&gt;&lt;/dt&gt;
-    &lt;dd&gt;Array (or string if only one) of attribute collection(s) to
-        merge into the attributes array.&lt;/dd&gt;
-    &lt;dt&gt;&lt;code&gt;$attributes&lt;/code&gt;&lt;/dt&gt;
-    &lt;dd&gt;Array of attribute names to attribute definitions, much like
-        the above-described attribute customization.&lt;/dd&gt;
-&lt;/dl&gt;
-
-&lt;p&gt;A possible usage:&lt;/p&gt;
-
-&lt;pre&gt;$def-&gt;addElement('font', 'Inline', 'Optional: Inline', 'Common',
-    array('color' =&gt; 'Color'));&lt;/pre&gt;
-
-&lt;p&gt;See &lt;code&gt;HTMLPurifier/HTMLModule.php&lt;/code&gt; for details.&lt;/p&gt;
-
 &lt;/body&gt;&lt;/html&gt;
 
 &lt;!-- vim: et sw=4 sts=4</diff>
      <filename>docs/dev-advanced-api.html</filename>
    </modified>
    <modified>
      <diff>@@ -155,9 +155,9 @@
 &lt;/p&gt;
 
 &lt;pre&gt;$config = HTMLPurifier_Config::createDefault();
-$config-&gt;set('HTML', 'DefinitionID', 'enduser-customize.html tutorial');
-$config-&gt;set('HTML', 'DefinitionRev', 1);
-$def = $config-&gt;getHTMLDefinition(true);&lt;/pre&gt;
+$config-&amp;gt;set('HTML.DefinitionID', 'enduser-customize.html tutorial');
+$config-&amp;gt;set('HTML.DefinitionRev', 1);
+$def = $config-&amp;gt;getHTMLDefinition(true);&lt;/pre&gt;
 
 &lt;p&gt;
   Assuming that HTML Purifier has already been properly loaded (hint:
@@ -210,10 +210,10 @@ $def = $config-&gt;getHTMLDefinition(true);&lt;/pre&gt;
 &lt;/p&gt;
 
 &lt;pre&gt;$config = HTMLPurifier_Config::createDefault();
-$config-&gt;set('HTML', 'DefinitionID', 'enduser-customize.html tutorial');
-$config-&gt;set('HTML', 'DefinitionRev', 1);
-&lt;strong&gt;$config-&gt;set('Cache', 'DefinitionImpl', null); // remove this later!&lt;/strong&gt;
-$def = $config-&gt;getHTMLDefinition(true);&lt;/pre&gt;
+$config-&amp;gt;set('HTML.DefinitionID', 'enduser-customize.html tutorial');
+$config-&amp;gt;set('HTML.DefinitionRev', 1);
+&lt;strong&gt;$config-&amp;gt;set('Cache.DefinitionImpl', null); // TODO: remove this later!&lt;/strong&gt;
+$def = $config-&amp;gt;getHTMLDefinition(true);&lt;/pre&gt;
 
 &lt;p&gt;
   A few things should be mentioned about the caching mechanism before
@@ -266,10 +266,10 @@ $def = $config-&gt;getHTMLDefinition(true);&lt;/pre&gt;
 &lt;/p&gt;
 
 &lt;pre&gt;$config = HTMLPurifier_Config::createDefault();
-$config-&gt;set('HTML', 'DefinitionID', 'enduser-customize.html tutorial');
-$config-&gt;set('HTML', 'DefinitionRev', 1);
-$config-&gt;set('Cache', 'DefinitionImpl', null); // remove this later!
-$def = $config-&gt;getHTMLDefinition(true);
+$config-&amp;gt;set('HTML.DefinitionID', 'enduser-customize.html tutorial');
+$config-&amp;gt;set('HTML.DefinitionRev', 1);
+$config-&amp;gt;set('Cache.DefinitionImpl', null); // remove this later!
+$def = $config-&amp;gt;getHTMLDefinition(true);
 &lt;strong&gt;$def-&gt;addAttribute('a', 'target', 'Enum#_blank,_self,_target,_top');&lt;/strong&gt;&lt;/pre&gt;
 
 &lt;p&gt;
@@ -384,11 +384,11 @@ $def = $config-&gt;getHTMLDefinition(true);
 &lt;/p&gt;
 
 &lt;pre&gt;$config = HTMLPurifier_Config::createDefault();
-$config-&gt;set('HTML', 'DefinitionID', 'enduser-customize.html tutorial');
-$config-&gt;set('HTML', 'DefinitionRev', 1);
-$config-&gt;set('Cache', 'DefinitionImpl', null); // remove this later!
-$def = $config-&gt;getHTMLDefinition(true);
-&lt;strong&gt;$def-&gt;addAttribute('a', 'target', new HTMLPurifier_AttrDef_Enum(
+$config-&amp;gt;set('HTML.DefinitionID', 'enduser-customize.html tutorial');
+$config-&amp;gt;set('HTML.DefinitionRev', 1);
+$config-&amp;gt;set('Cache.DefinitionImpl', null); // remove this later!
+$def = $config-&amp;gt;getHTMLDefinition(true);
+&lt;strong&gt;$def-&amp;gt;addAttribute('a', 'target', new HTMLPurifier_AttrDef_Enum(
   array('_blank','_self','_target','_top')
 ));&lt;/strong&gt;&lt;/pre&gt;
 
@@ -731,14 +731,14 @@ $def = $config-&gt;getHTMLDefinition(true);
 &lt;/p&gt;
 
 &lt;pre&gt;$config = HTMLPurifier_Config::createDefault();
-$config-&gt;set('HTML', 'DefinitionID', 'enduser-customize.html tutorial');
-$config-&gt;set('HTML', 'DefinitionRev', 1);
-$config-&gt;set('Cache', 'DefinitionImpl', null); // remove this later!
-$def = $config-&gt;getHTMLDefinition(true);
-$def-&gt;addAttribute('a', 'target', new HTMLPurifier_AttrDef_Enum(
+$config-&amp;gt;set('HTML.DefinitionID', 'enduser-customize.html tutorial');
+$config-&amp;gt;set('HTML.DefinitionRev', 1);
+$config-&amp;gt;set('Cache.DefinitionImpl', null); // remove this later!
+$def = $config-&amp;gt;getHTMLDefinition(true);
+$def-&amp;gt;addAttribute('a', 'target', new HTMLPurifier_AttrDef_Enum(
   array('_blank','_self','_target','_top')
 ));
-&lt;strong&gt;$form = $def-&gt;addElement(
+&lt;strong&gt;$form = $def-&amp;gt;addElement(
   'form',   // name
   'Block',  // content set
   'Flow', // allowed children
@@ -749,7 +749,7 @@ $def-&gt;addAttribute('a', 'target', new HTMLPurifier_AttrDef_Enum(
     'name' =&gt; 'ID'
   )
 );
-$form-&gt;excludes = array('form' =&gt; true);&lt;/strong&gt;&lt;/pre&gt;
+$form-&amp;gt;excludes = array('form' =&gt; true);&lt;/strong&gt;&lt;/pre&gt;
 
 &lt;p&gt;
   Each of the parameters corresponds to one of the questions we asked.</diff>
      <filename>docs/enduser-customize.html</filename>
    </modified>
    <modified>
      <diff>@@ -31,7 +31,7 @@ by default.&lt;/p&gt;
 
 &lt;p&gt;IDs, however, are quite useful functionality to have, so if users start
 complaining about broken anchors you'll probably want to turn them back on
-with %HTML.EnableAttrID. But before you go mucking around with the config
+with %Attr.EnableID. But before you go mucking around with the config
 object, it's probably worth to take some precautions to keep your page
 validating. Why?&lt;/p&gt;
 
@@ -56,8 +56,8 @@ validating. Why?&lt;/p&gt;
 deal with the most obvious solution: preventing users from using any IDs that
 appear elsewhere on the document.  The method is simple:&lt;/p&gt;
 
-&lt;pre&gt;$config-&gt;set('HTML', 'EnableAttrID', true);
-$config-&gt;set('Attr', 'IDBlacklist' array(
+&lt;pre&gt;$config-&amp;gt;set('Attr.EnableID', true);
+$config-&amp;gt;set('Attr.IDBlacklist' array(
     'list', 'of', 'attribute', 'values', 'that', 'are', 'forbidden'
 ));&lt;/pre&gt;
 
@@ -88,8 +88,8 @@ all, they might have simply specified a duplicate ID by accident.&lt;/p&gt;
 &lt;p&gt;This method, too, is quite simple: add a prefix to all user IDs. With this
 code:&lt;/p&gt;
 
-&lt;pre&gt;$config-&gt;set('HTML', 'EnableAttrID', true);
-$config-&gt;set('Attr', 'IDPrefix', 'user_');&lt;/pre&gt;
+&lt;pre&gt;$config-&amp;gt;set('Attr.EnableID', true);
+$config-&amp;gt;set('Attr.IDPrefix', 'user_');&lt;/pre&gt;
 
 &lt;p&gt;...this:&lt;/p&gt;
 
@@ -109,7 +109,7 @@ user_ to the beginning.&amp;quot;&lt;/p&gt;
 nothing about multiple HTML Purifier outputs on one page.  Thus, we have
 a second configuration value to piggy-back off of: %Attr.IDPrefixLocal:&lt;/p&gt;
 
-&lt;pre&gt;$config-&gt;set('Attr', 'IDPrefixLocal', 'comment' . $id . '_');&lt;/pre&gt;
+&lt;pre&gt;$config-&amp;gt;set('Attr.IDPrefixLocal', 'comment' . $id . '_');&lt;/pre&gt;
 
 &lt;p&gt;This new attributes does nothing but append on to regular IDPrefix, but is
 special in that it is volatile: it's value is determined at run-time and
@@ -137,7 +137,7 @@ anchors is beyond me.&lt;/p&gt;
 
 &lt;p&gt;To revert back to pre-1.2.0 behavior, simply:&lt;/p&gt;
 
-&lt;pre&gt;$config-&gt;set('HTML', 'EnableAttrID', true);&lt;/pre&gt;
+&lt;pre&gt;$config-&amp;gt;set('Attr.EnableID', true);&lt;/pre&gt;
 
 &lt;p&gt;Don't come crying to me when your page mysteriously stops validating, though.&lt;/p&gt;
 </diff>
      <filename>docs/enduser-id.html</filename>
    </modified>
    <modified>
      <diff>@@ -76,7 +76,7 @@ associated with it, although it may change depending on your doctype.&lt;/p&gt;
 change the level of cleaning by setting the %HTML.TidyLevel configuration
 directive:&lt;/p&gt;
 
-&lt;pre&gt;$config-&gt;set('HTML', 'TidyLevel', 'heavy'); // burn baby burn!&lt;/pre&gt;
+&lt;pre&gt;$config-&amp;gt;set('HTML.TidyLevel', 'heavy'); // burn baby burn!&lt;/pre&gt;
 
 &lt;h2&gt;Is the light level really light?&lt;/h2&gt;
 
@@ -165,17 +165,17 @@ smoketest&lt;/a&gt;.&lt;/p&gt;
 so happy about the br@clear implementation. That's perfectly fine!
 HTML Purifier will make accomodations:&lt;/p&gt;
 
-&lt;pre&gt;$config-&gt;set('HTML', 'Doctype', 'XHTML 1.0 Transitional');
-$config-&gt;set('HTML', 'TidyLevel', 'heavy'); // all changes, minus...
-&lt;strong&gt;$config-&gt;set('HTML', 'TidyRemove', 'br@clear');&lt;/strong&gt;&lt;/pre&gt;
+&lt;pre&gt;$config-&amp;gt;set('HTML.Doctype', 'XHTML 1.0 Transitional');
+$config-&amp;gt;set('HTML.TidyLevel', 'heavy'); // all changes, minus...
+&lt;strong&gt;$config-&amp;gt;set('HTML.TidyRemove', 'br@clear');&lt;/strong&gt;&lt;/pre&gt;
 
 &lt;p&gt;That third line does the magic, removing the br@clear fix
 from the module, ensuring that &lt;code&gt;&amp;lt;br clear=&quot;both&quot; /&amp;gt;&lt;/code&gt;
 will pass through unharmed. The reverse is possible too:&lt;/p&gt;
 
-&lt;pre&gt;$config-&gt;set('HTML', 'Doctype', 'XHTML 1.0 Transitional');
-$config-&gt;set('HTML', 'TidyLevel', 'none'); // no changes, plus...
-&lt;strong&gt;$config-&gt;set('HTML', 'TidyAdd', 'p@align');&lt;/strong&gt;&lt;/pre&gt;
+&lt;pre&gt;$config-&amp;gt;set('HTML.Doctype', 'XHTML 1.0 Transitional');
+$config-&amp;gt;set('HTML.TidyLevel', 'none'); // no changes, plus...
+&lt;strong&gt;$config-&amp;gt;set('HTML.TidyAdd', 'p@align');&lt;/strong&gt;&lt;/pre&gt;
 
 &lt;p&gt;In this case, all transformations are shut off, except for the p@align
 one, which you found handy.&lt;/p&gt;</diff>
      <filename>docs/enduser-tidy.html</filename>
    </modified>
    <modified>
      <diff>@@ -75,7 +75,7 @@ passes through HTML Purifier &lt;em&gt;unharmed&lt;/em&gt;.
 &lt;p&gt;And the corresponding usage:&lt;/p&gt;
 
 &lt;pre&gt;&amp;lt;?php
-    $config-&gt;set('Filter', 'YouTube', true);
+    $config-&amp;gt;set('Filter.YouTube', true);
 ?&amp;gt;&lt;/pre&gt;
 
 &lt;p&gt;There is a bit going in the two code snippets, so let's explain.&lt;/p&gt;</diff>
      <filename>docs/enduser-youtube.html</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5bf7ac4e9f1798ab6c7bcc9ce299c5bbbb23396f</id>
    </parent>
  </parents>
  <author>
    <name>Edward Z. Yang</name>
    <email>edwardzyang@thewritingpot.com</email>
  </author>
  <url>http://github.com/ezyang/htmlpurifier/commit/77b60a4206db5e0d854b47ad4985773381d8ebb1</url>
  <id>77b60a4206db5e0d854b47ad4985773381d8ebb1</id>
  <committed-date>2009-05-29T20:46:40-07:00</committed-date>
  <authored-date>2009-05-29T20:46:40-07:00</authored-date>
  <message>Update documentation to new configuration format.
Signed-off-by: Edward Z. Yang &lt;edwardzyang@thewritingpot.com&gt;</message>
  <tree>708cf4f18397ac37b0e7b43d6c0cc6749a9ed5af</tree>
  <committer>
    <name>Edward Z. Yang</name>
    <email>edwardzyang@thewritingpot.com</email>
  </committer>
</commit>
