Author: pilgrim
Date: Tue Mar 11 21:52:50 2008
New Revision: 284
Added:
trunk/www/docs/changes-30.html
trunk/www/docs/changes-301.html
trunk/www/docs/changes-31.html
trunk/www/docs/changes-32.html
trunk/www/docs/changes-33.html
trunk/www/docs/changes-401.html
trunk/www/docs/changes-402.html
Modified:
trunk/feedparser/docs/xml/feedparser.xml
trunk/feedparser/feedparser.py
trunk/www/docs/annotated-atom03.html
trunk/www/docs/annotated-atom10.html
trunk/www/docs/annotated-rss10.html
trunk/www/docs/annotated-rss20-dc.html
trunk/www/docs/annotated-rss20.html
trunk/www/docs/changes-40.html
trunk/www/docs/changes-41.html
trunk/www/docs/changes-42.html
trunk/www/docs/character-encoding.html
trunk/www/docs/common-atom-elements.html
trunk/www/docs/common-rss-elements.html
trunk/www/docs/content-normalization.html
trunk/www/docs/date-parsing.html
trunk/www/docs/history.html
trunk/www/docs/html-sanitization.html
trunk/www/docs/http-etag.html
trunk/www/docs/index.html
trunk/www/docs/introduction.html
trunk/www/docs/microformats.html
trunk/www/docs/namespace-handling.html
trunk/www/docs/reference-bozo.html
trunk/www/docs/reference-bozo_exception.html
trunk/www/docs/reference-encoding.html
trunk/www/docs/reference-entry-summary.html
trunk/www/docs/reference-entry-tags.html
trunk/www/docs/reference-entry.html
trunk/www/docs/reference-etag.html
trunk/www/docs/reference-feed-rights.html
trunk/www/docs/reference-feed-tags.html
trunk/www/docs/reference-feed-textinput.html
trunk/www/docs/reference-feed-ttl.html
trunk/www/docs/reference-feed.html
trunk/www/docs/reference-headers.html
trunk/www/docs/reference-href.html
trunk/www/docs/reference-modified.html
trunk/www/docs/reference-namespaces.html
trunk/www/docs/reference-status.html
trunk/www/docs/reference-version.html
trunk/www/docs/reference.html
trunk/www/docs/resolving-relative-links.html
trunk/www/docs/uncommon-atom.html
trunk/www/docs/uncommon-rss.html
Log:
moved more revision history to official docs (from comments at bottom of feedparser.py)
Modified: trunk/feedparser/docs/xml/feedparser.xml
==============================================================================
--- trunk/feedparser/docs/xml/feedparser.xml (original)
+++ trunk/feedparser/docs/xml/feedparser.xml Tue Mar 11 21:52:50 2008
@@ -29,6 +29,9 @@
<!ENTITY rfc "<acronym condition='Request For Comments'>RFC</acronym>">
<!ENTITY rfc822 "&rfc; 822">
<!ENTITY rfc3339 "&rfc; 3339">
+<!ENTITY ebcdic "<acronym>EBCDIC</acronym>">
+<!ENTITY ascii "<acronym>ASCII</acronym>">
+<!ENTITY bom "<acronym condition='Byte Order Mark'>BOM</acronym>">
<!ENTITY iso "<acronym>ISO</acronym>">
<!ENTITY uri "<acronym condition='Uniform Resource Identifier'>URI</acronym>">
<!ENTITY iri "<acronym condition='International Resource Identifier'>IRI</acronym>">
@@ -1636,7 +1639,7 @@
<para>The more I investigate, the more cases I find where &iewin; will treat seemingly innocuous markup as code and blithely execute it. This is why &feedparser; uses a whitelist and not a blacklist. I am reasonably confident that none of the elements or attributes on the whitelist are security risks. I am not at all confident about elements or attributes that I have not explicitly investigated. And I have no confidence at all in my ability to detect strings within attribute values that &iewin; will treat as executable code.</para>
<itemizedlist role="furtherreading">
<title>Elsewhere</title>
-<listitem><para><ulink url="&url_howtoconsumersssafely;">How to consume RSS safely</ulink> explains the platypus attack.</para></listitem>
+<listitem><para><ulink url="&url_howtoconsumersssafely;">How to consume &rss; safely</ulink> explains the platypus attack.</para></listitem>
</itemizedlist>
</section>
@@ -2408,7 +2411,7 @@
<programlisting><xml version="1.0" encoding="utf-8"?></programlisting>
</informalexample>
-<para>If no encoding is given, XML supports the use of a Byte Order Mark to identify the document as some flavor of UTF-32, UTF-16, or UTF-8. <ulink url="&url_sectionf;">Section F of the &xml; specification</ulink> outlines the process for determining the character encoding based on unique properties of the Byte Order Mark in the first two to four bytes of the document.</para>
+<para>If no encoding is given, &xml; supports the use of a Byte Order Mark to identify the document as some flavor of UTF-32, UTF-16, or UTF-8. <ulink url="&url_sectionf;">Section F of the &xml; specification</ulink> outlines the process for determining the character encoding based on unique properties of the Byte Order Mark in the first two to four bytes of the document.</para>
<para>If no encoding is specified and no Byte Order Mark is present, &xml; defaults to UTF-8.</para>
@@ -2462,7 +2465,7 @@
<itemizedlist role="furtherreading">
<title>Elsewhere</title>
<listitem><para><ulink url="&url_rfc3023;">RFC 3023</ulink></para></listitem>
-<listitem><para><ulink url="&url_sectionf;">Section F of the XML specification</ulink></para></listitem>
+<listitem><para><ulink url="&url_sectionf;">Section F of the &xml; specification</ulink></para></listitem>
<listitem><para><ulink url="&url_wellformedness;">On the well-formedness of &xml; documents served as <literal>text/plain</literal></ulink></para></listitem>
<listitem><para><ulink url="&url_cjkcodecs;">CJKCodecs and iconv_codec</ulink></para></listitem>
</itemizedlist>
@@ -3188,7 +3191,7 @@
<title>Changes in version 4.2</title>
<abstract>
<title/>
-<para>Here is a summary of the major changes in &feedparser; 4.2.</para>
+<para>&feedparser; 4.2 was released on &fileversion;.</para>
</abstract>
<itemizedlist>
<listitem><para><xref linkend="advanced.microformats"/>.</para></listitem>
@@ -3208,19 +3211,41 @@
<title>Changes in version 4.1</title>
<abstract>
<title/>
-<para>Here is a summary of the major changes in &feedparser; 4.1.</para>
+<para>&feedparser; 4.1 was released on January 11, 2006.</para>
</abstract>
<itemizedlist>
<listitem><para>Support for the &chardet; to autodetect character encoding of feeds that declare their encoding incorrectly or don't declare it at all. See <xref linkend="advanced.encoding"/> for details of when this gets called.</para></listitem>
<listitem><para>&feedparser; no longer sets a default socket timeout (bug <ulink url="
http://sourceforge.net/tracker/index.php?func=detail&aid=1392140&group_id=112328&atid=661937">1392140</ulink>). If you were relying on this feature, you will need to call <literal>socket.setdefaulttimeout(TIMEOUT_IN_SECONDS)</literal> yourself.</para></listitem>
</itemizedlist>
</section>
+<section id="changes.402">
+<?dbhtml filename="changes-402.html"?>
+<title>Changes in version 4.0.2</title>
+<abstract>
+<title/>
+<para>&feedparser; 4.0.2 was released on December 24, 2005.</para>
+</abstract>
+<itemizedlist>
+<listitem><para>cleared <varname>_debug</varname> flag.</para></listitem>
+</itemizedlist>
+</section>
+<section id="changes.401">
+<?dbhtml filename="changes-401.html"?>
+<title>Changes in version 4.0.1</title>
+<abstract>
+<title/>
+<para>&feedparser; 4.0.1 was released on December 24, 2005.</para>
+</abstract>
+<itemizedlist>
+<listitem><para>bug fixes for &python; 2.1 compatibility.</para></listitem>
+</itemizedlist>
+</section>
<section id="changes.40">
<?dbhtml filename="changes-40.html"?>
<title>Changes in version 4.0</title>
<abstract>
<title/>
-<para>Here is a summary of the major changes in &feedparser; 4.0.</para>
+<para>&feedparser; 4.0 was released on December 23, 2005.</para>
</abstract>
<itemizedlist>
<listitem><para>Support for <xref linkend="annotated.atom10"/>.</para></listitem>
@@ -3230,11 +3255,306 @@
<listitem><para>Lots of things have been renamed to match Atom 1.0 terminology. <literal>issued</literal> is now <xref linkend="reference.entry.published"/>, <literal>modified</literal> is now <xref linkend="reference.entry.updated"/>, and <literal>url</literal> is now <literal>href</literal> everywhere. You can still access these elements with the old names, so you shouldn't need to change any existing code, but don't be surprised if you can't find them during debugging.</para></listitem>
<listitem><para><literal>category</literal> and <literal>categories</literal> have been replaced by <literal>tags</literal>, see <xref linkend="reference.feed.tags"/> and <xref linkend="reference.entry.tags"/>. The old names still work.</para></listitem>
<listitem><para><literal>mode</literal> is gone from all detail and content dictionaries. It was never terribly useful, since &feedparser; unescapes content automatically.</para></listitem>
-<listitem><para><xref linkend="reference.entry.source"/> is now a dictionary of feed metadata as per section 4.2.11 of RFC 4287. &feedparser; no longer supports the RSS 2.0's <literal>source</literal> element.</para></listitem>
+<listitem><para><xref linkend="reference.entry.source"/> is now a dictionary of feed metadata as per section 4.2.11 of RFC 4287. &feedparser; no longer supports the &rss; 2.0's <literal>source</literal> element.</para></listitem>
<listitem><para>Content in unknown namespaces is no longer discarded (<ulink url="
http://sourceforge.net/tracker/index.php?func=detail&aid=993305&group_id=112328&atid=661937">bug 993305</ulink>)</para></listitem>
<listitem><para>Lots of other bug fixes.</para></listitem>
</itemizedlist>
</section>
+<section id="changes.33">
+<?dbhtml filename="changes-33.html"?>
+<title>Changes in version 3.3</title>
+<abstract>
+<title/>
+<para>&feedparser; 3.3 was released on July 15, 2004.</para>
+</abstract>
+<itemizedlist>
+<listitem><para>optimized &ebcdic; to &ascii; conversion</para></listitem>
+<listitem><para>fixed obscure problem tracking <sgmltag>xml:base</sgmltag> and <sgmltag>xml:lang</sgmltag> if element declares it, child doesn't, first grandchild redeclares it, and second grandchild doesn't</para></listitem>
+<listitem><para>refactored date parsing</para></listitem>
+<listitem><para>defined public <function>registerDateHandler</function> so callers can add support for additional date formats at runtime</para></listitem>
+<listitem><para>added support for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1)</para></listitem>
+<listitem><para>added <function>zopeCompatibilityHack()</function> which turns <classname>FeedParserDict</classname> into a regular dictionary, required for <application>Zope</application> compatibility, and also makes command-line debugging easier because pprint module formats real dictionaries better than dictionary-like objects</para></listitem>
+<listitem><para>added <classname>NonXMLContentType</classname> exception, which is stored in <varname>bozo_exception</varname> when a feed is served with a non-&xml; media type such as <constant>'text/plain'</constant></para></listitem>
+<listitem><para>respect <constant>Content-Language</constant> as default language if no <sgmltag>xml:lang</sgmltag> is present</para></listitem>
+<listitem><para><varname>cloud</varname> dict is now <classname>FeedParserDict</classname></para></listitem>
+<listitem><para>generator dict is now <classname>FeedParserDict</classname></para></listitem>
+<listitem><para>better tracking of <sgmltag>xml:lang</sgmltag>, including support for <literal>xml:lang=''</literal> to unset the current language</para></listitem>
+<listitem><para>recognize &rss; 1.0 feeds even when &rss; 1.0 namespace is not the default namespace</para></listitem>
+<listitem><para>don't overwrite final status on redirects (scenarios: redirecting to a &uri; that returns <constant>304</constant>, redirecting to a &uri; that redirects to another &uri; with a different type of redirect)</para></listitem>
+<listitem><para>add support for <constant>HTTP 303</constant> redirects</para></listitem>
+</itemizedlist>
+</section>
+<section id="changes.32">
+<?dbhtml filename="changes-32.html"?>
+<title>Changes in version 3.2</title>
+<abstract>
+<title/>
+<para>&feedparser; 3.2 was released on July 3, 2004.</para>
+</abstract>
+<itemizedlist>
+<listitem><para>use <filename class='headerfile'>cjkcodecs</filename> and <filename class='headerfile'>iconv_codec</filename> if available</para></listitem>
+<listitem><para>always convert feed to UTF-8 before passing to &xml; parser</para></listitem>
+<listitem><para>completely revamped logic for determining character encoding and attempting &xml; parsing (much faster)</para></listitem>
+<listitem><para>increased default timeout to 20 seconds</para></listitem>
+<listitem><para>test for presence of <constant>Location</constant> header on redirects</para></listitem>
+<listitem><para>added tests for many alternate character encodings</para></listitem>
+<listitem><para>support various &ebcdic; encodings</para></listitem>
+<listitem><para>support UTF-16BE and UTF16-LE with or without a &bom;</para></listitem>
+<listitem><para>support UTF-8 with a &bom;</para></listitem>
+<listitem><para>support UTF-32BE and UTF-32LE with or without a &bom;</para></listitem>
+<listitem><para>fixed crashing bug if no &xml; parsers are available</para></listitem>
+<listitem><para>added support for <literal>'Content-encoding: deflate'</literal></para></listitem>
+<listitem><para>send blank <literal>'Accept-encoding: '</literal> header if neither <filename class='headerfile'>gzip</filename> nor <filename class='headerfile'>zlib</filename> modules are available</para></listitem>
+</itemizedlist>
+</section>
+<section id="changes.31">
+<?dbhtml filename="changes-31.html"?>
+<title>Changes in version 3.1</title>
+<abstract>
+<title/>
+<para>&feedparser; 3.1 was released on June 28, 2004.</para>
+</abstract>
+<itemizedlist>
+<listitem><para>added and passed tests for converting &html; entities to Unicode equivalents in illformed feeds (aaronsw)</para></listitem>
+<listitem><para>added and passed tests for converting character entities to Unicode equivalents in illformed feeds (aaronsw)</para></listitem>
+<listitem><para>test for valid parsers when setting <constant>XML_AVAILABLE</constant></para></listitem>
+<listitem><para>make version and encoding available when server returns a <constant>304</constant></para></listitem>
+<listitem><para>add <varname>handlers</varname> parameter to pass arbitrary <filename class='headerfile'>urllib2</filename> handlers (like digest auth or proxy support)</para></listitem>
+<listitem><para>add code to parse username/password out of url and send as basic authentication</para></listitem>
+<listitem><para>expose downloading-related exceptions in <varname>bozo_exception</varname> (aaronsw)</para></listitem>
+<listitem><para>added <methodname>__contains__</methodname> method to <classname>FeedParserDict</classname> (aaronsw)</para></listitem>
+<listitem><para>added <varname>publisher_detail</varname> (aaronsw)</para></listitem>
+</itemizedlist>
+</section>
+<section id="changes.301">
+<?dbhtml filename="changes-301.html"?>
+<title>Changes in version 3.0.1</title>
+<abstract>
+<title/>
+<para>&feedparser; 3.0.1 was released on June 21, 2004.</para>
+</abstract>
+<itemizedlist>
+<listitem><para>default to <constant>us-ascii</constant> for all <literal>text/*</literal> content types</para></listitem>
+<listitem><para>recover from malformed <constant>content-type</constant> header parameter with no equals sign (<literal>"text/xml; charset:iso-8859-1"</literal>)</para></listitem>
+<listitem><para>docs: added <filename>reference-feed.html</filename> and <filename>reference-entry.html</filename> (bug #977723)</para></listitem>
+<listitem><para>docs: fixed <varname>entry[i]</varname> in documentation (should be <varname>entries[i]</varname>) (bug #977722)</para></listitem>
+<listitem><para>docs: added note about Unicode string usage (bug #977716)</para></listitem>
+<listitem><para>docs: added <filename>basic-existence.html</filename> (bug #977704)</para></listitem>
+<listitem><para>docs: fixed description of feed title (bug #977685)</para></listitem>
+<listitem><para>docs: fixed typo in annotated &rss; 1.0 feed (bug #977682)</para></listitem>
+</itemizedlist>
+</section>
+<section id="changes.30.and.friends">
+<?dbhtml filename="changes-30.html"?>
+<title>Changes in version 3.0 and the 26 betas that preceded it</title>
+<abstract>
+<title/>
+<para>This got a little out of hand.</para>
+</abstract>
+
+<bridgehead id="changes.30" renderas="sect3">Changes in version 3.0</bridgehead>
+<para>&feedparser; 3.0 was released on June 21, 2004.</para>
+<itemizedlist>
+<listitem><para>don't try <constant>iso-8859-1</constant> (can't distinguish between <constant>iso-8859-1</constant> and <constant>windows-1252</constant> anyway, and most incorrectly marked feeds are <constant>windows-1252</constant>)</para></listitem>
+<listitem><para>fixed regression that could cause the same encoding to be tried twice (even if it failed the first time)</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30fc3" renderas="sect3">Changes in version 3.0fc3</bridgehead>
+<para>&feedparser; 3.0fc3 was released on June 18, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed bug in <function>_changeEncodingDeclaration</function> that failed to parse UTF-16 encoded feeds</para></listitem>
+<listitem><para>made <varname>source</varname> into a FeedParserDict</para></listitem>
+<listitem><para>duplicate <literal>admin:generatorAgent/@rdf:resource</literal> in <varname>generator_detail.url</varname></para></listitem>
+<listitem><para>added support for <sgmltag>image</sgmltag></para></listitem>
+<listitem><para>refactored <function>parse()</function> fallback logic to try other encodings if SAX parsing fails (previously it would only try other encodings if re-encoding failed)</para></listitem>
+<listitem><para>remove <function>unichr</function> madness in <methodname>normalize_attrs</methodname> now that we're properly tracking encoding in and out of <classname>BaseHTMLProcessor</classname></para></listitem>
+<listitem><para>set <varname>feed.language</varname> from root-level <sgmltag class='attribute'>xml:lang</sgmltag></para></listitem>
+<listitem><para>set <varname>
entry.id</varname> from <sgmltag class='attribute'>rdf:about</sgmltag></para></listitem>
+<listitem><para>send <constant>Accept</constant> header</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30fc2" renderas="sect3">Changes in version 3.0fc2</bridgehead>
+<para>&feedparser; 3.0fc2 was released on May 10, 2004.</para>
+<itemizedlist>
+<listitem><para>added and passed Sam's <literal>amp</literal> tests</para></listitem>
+<listitem><para>added and passed my <sgmltag>blink</sgmltag> tag tests</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30fc1" renderas="sect3">Changes in version 3.0fc1</bridgehead>
+<para>&feedparser; 3.0fc1 was released on April 23, 2004.</para>
+<itemizedlist>
+<listitem><para>made <varname>results.entries[0].links[0]</varname> and <varname>results.entries[0].enclosures[0]</varname> into <classname>FeedParserDict</classname></para></listitem>
+<listitem><para>fixed typo that could cause the same encoding to be tried twice (even if it failed the first time)</para></listitem>
+<listitem><para>fixed DOCTYPE stripping when DOCTYPE contained entity declarations</para></listitem>
+<listitem><para>better <sgmltag>textinput</sgmltag> and <sgmltag>image</sgmltag> tracking in illformed &rss; 1.0 feeds</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b23" renderas="sect3">Changes in version 3.0b23</bridgehead>
+<para>&feedparser; 3.0b23 was released on April 21, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed <constant>UnicodeDecodeError</constant> for feeds that contain high-bit characters in attributes in embedded &html; in description (thanks Thijs van de Vossen)</para></listitem>
+<listitem><para>moved <varname>guid</varname>, <varname>date</varname>, and <varname>date_parsed</varname> to mapped keys in <classname>FeedParserDict</classname></para></listitem>
+<listitem><para>tweaked <methodname>FeedParserDict.has_key</methodname> to return <constant>True</constant> if asking about a mapped key</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b22" renderas="sect3">Changes in version 3.0b22</bridgehead>
+<para>&feedparser; 3.0b22 was released on April 19, 2004.</para>
+<itemizedlist>
+<listitem><para>changed <varname>channel</varname> to <varname>feed</varname>, <varname>item</varname> to <varname>entries</varname> in <varname>results</varname> dict</para></listitem>
+<listitem><para>changed <varname>results</varname> dict to allow getting values with <varname>results.key</varname> as well as <varname>results[key]</varname></para></listitem>
+<listitem><para>work around embedded illformed &html; with half a DOCTYPE</para></listitem>
+<listitem><para>work around malformed <constant>Content-Type</constant> header</para></listitem>
+<listitem><para>if character encoding is wrong, try several common ones before falling back to regexes (if this works, <varname>bozo_exception</varname> is set to <constant>CharacterEncodingOverride</constant></para></listitem>
+<listitem><para>fixed character encoding issues in <classname>BaseHTMLProcessor</classname> by tracking encoding and converting from Unicode to raw strings before feeding data to <classname>sgmllib.SGMLParser</classname></para></listitem>
+<listitem><para>convert each value in results to Unicode (if possible), even if using regex-based parsing</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b21" renderas="sect3">Changes in version 3.0b21</bridgehead>
+<para>&feedparser; 3.0b21 was released on April 14, 2004.</para>
+<itemizedlist>
+<listitem><para>added Hot RSS support</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b20" renderas="sect3">Changes in version 3.0b20</bridgehead>
+<para>&feedparser; 3.0b20 was released on April 7, 2004.</para>
+<itemizedlist>
+<listitem><para>added &cdf; support</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b19" renderas="sect3">Changes in version 3.0b19</bridgehead>
+<para>&feedparser; 3.0b19 was released on March 15, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed bug exploding author information when author name was in parentheses</para></listitem>
+<listitem><para>removed ultra-problematic <filename class='headerfile'>mxTidy</filename> support</para></listitem>
+<listitem><para>patch to workaround crash in PyXML/expat when encountering invalid entities (MarkMoraes)</para></listitem>
+<listitem><para>support for <sgmltag>textinput</sgmltag>/<sgmltag>textInput</sgmltag></para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b18" renderas="sect3">Changes in version 3.0b18</bridgehead>
+<para>&feedparser; 3.0b18 was released on February 17, 2004.</para>
+<itemizedlist>
+<listitem><para>always map <sgmltag>description</sgmltag> to <varname>summary_detail</varname> (Andrei)</para></listitem>
+<listitem><para>use <filename class='headerfile'>libxml2</filename> (if available)</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b17" renderas="sect3">Changes in version 3.0b17</bridgehead>
+<para>&feedparser; 3.0b17 was released on February 13, 2004.</para>
+<itemizedlist>
+<listitem><para>determine character encoding as per <ulink url="&url_rfc3023;">RFC 3023</ulink></para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b16" renderas="sect3">Changes in version 3.0b16</bridgehead>
+<para>&feedparser; 3.0b16 was released on February 12, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed support for &rss; 0.90 (broken in b15)</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b15" renderas="sect3">Changes in version 3.0b15</bridgehead>
+<para>&feedparser; 3.0b15 was released on February 11, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed bug resolving relative links in <sgmltag>wfw:commentRSS</sgmltag></para></listitem>
+<listitem><para>fixed bug capturing author and contributor &uri;</para></listitem>
+<listitem><para>fixed bug resolving relative links in author and contributor &uri;</para></listitem>
+<listitem><para>fixed bug resolving relative links in generator &uri;</para></listitem>
+<listitem><para>added support for recognizing &rss; 1.0</para></listitem>
+<listitem><para>passed Simon Fell's namespace tests, and included them permanently in the test suite with his permission</para></listitem>
+<listitem><para>fixed namespace handling under &python; 2.1</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b14" renderas="sect3">Changes in version 3.0b14</bridgehead>
+<para>&feedparser; 3.0b14 was released on February 8, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed CDATA handling in non-wellformed feeds under &python; 2.1</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b13" renderas="sect3">Changes in version 3.0b13</bridgehead>
+<para>&feedparser; 3.0b13 was released on February 8, 2004.</para>
+<itemizedlist>
+<listitem><para>better handling of empty &html; tags (<sgmltag>br</sgmltag>, <sgmltag>hr</sgmltag>, <sgmltag>img</sgmltag>, etc.) in embedded markup, in either &html; or &xhtml; form (<sgmltag><br></sgmltag>, <sgmltag><br/></sgmltag>, <sgmltag><br /></sgmltag>)</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b12" renderas="sect3">Changes in version 3.0b12</bridgehead>
+<para>&feedparser; 3.0b12 was released on February 6, 2004.</para>
+<itemizedlist>
+<listitem><para>fiddled with <function>decodeEntities</function> (still not right)</para></listitem>
+<listitem><para>added support to &atom; 0.2 <sgmltag>subtitle</sgmltag></para></listitem>
+<listitem><para>added support for &atom; content model in <sgmltag>copyright</sgmltag></para></listitem>
+<listitem><para>better sanitizing of dangerous &html; elements with end tags (<sgmltag>script</sgmltag>, <sgmltag>frameset</sgmltag>)</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b11" renderas="sect3">Changes in version 3.0b11</bridgehead>
+<para>&feedparser; 3.0b11 was released on February 2, 2004.</para>
+<itemizedlist>
+<listitem><para>added <sgmltag>rights</sgmltag> to list of elements that can contain dangerous markup</para></listitem>
+<listitem><para>fiddled with <function>decodeEntities</function> (not right)</para></listitem>
+<listitem><para>liberalized date parsing even further</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b10" renderas="sect3">Changes in version 3.0b10</bridgehead>
+<para>&feedparser; 3.0b10 was released on January 31, 2004.</para>
+<itemizedlist>
+<listitem><para>incorporated ISO-8601 date parsing routines from <filename class='headerfile'>xml.util.iso8601</filename></para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b9" renderas="sect3">Changes in version 3.0b9</bridgehead>
+<para>&feedparser; 3.0b9 was released on January 29, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed check for presence of <function>dict</function> function</para></listitem>
+<listitem><para>added support for <sgmltag>summary</sgmltag></para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b8" renderas="sect3">Changes in version 3.0b8</bridgehead>
+<para>&feedparser; 3.0b8 was released on January 28, 2004.</para>
+<itemizedlist>
+<listitem><para>added support for <sgmltag>contributor</sgmltag></para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b7" renderas="sect3">Changes in version 3.0b7</bridgehead>
+<para>&feedparser; 3.0b7 was released on January 28, 2004.</para>
+<itemizedlist>
+<listitem><para>support &atom;-style <sgmltag>author</sgmltag> element in <varname>author_detail</varname> (dictionary of <varname>name</varname>, <varname>url</varname>, <varname>email</varname>)</para></listitem>
+<listitem><para>map <varname>author</varname> to <varname>author_detail</varname> if <varname>author</varname> contains name + email address</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b6" renderas="sect3">Changes in version 3.0b6</bridgehead>
+<para>&feedparser; 3.0b6 was released on January 27, 2004.</para>
+<itemizedlist>
+<listitem><para>added feed type and version detection, <varname>result['version']</varname> will be one of <constant>SUPPORTED_VERSIONS.keys()</constant> or empty string if unrecognized</para></listitem>
+<listitem><para>added support for <sgmltag>creativeCommons:license</sgmltag> and <sgmltag>cc:license</sgmltag></para></listitem>
+<listitem><para>added support for full &atom; content model in <sgmltag>title</sgmltag>, <sgmltag>tagline</sgmltag>, <sgmltag>info</sgmltag>, <sgmltag>copyright</sgmltag>, <sgmltag>summary</sgmltag></para></listitem>
+<listitem><para>fixed bug with gzip encoding (not always telling server we support it when we do)</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b5" renderas="sect3">Changes in version 3.0b5</bridgehead>
+<para>&feedparser; 3.0b5 was released on January 26, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed bug parsing multiple links at feed level</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b4" renderas="sect3">Changes in version 3.0b4</bridgehead>
+<para>&feedparser; 3.0b4 was released on January 26, 2004.</para>
+<itemizedlist>
+<listitem><para>fixed <sgmltag>xml:lang</sgmltag> inheritance</para></listitem>
+<listitem><para>fixed multiple bugs tracking <sgmltag>xml:base</sgmltag> &uri;, one for documents that don't define one explicitly and one for documents that define an outer and an inner <sgmltag>xml:base</sgmltag> that goes out of scope before the end of the document</para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b3" renderas="sect3">Changes in version 3.0b3</bridgehead>
+<para>&feedparser; 3.0b3 was released on January 23, 2004.</para>
+<itemizedlist>
+<listitem><para>parse entire feed with real &xml; parser (if available)</para></listitem>
+<listitem><para>added several new supported namespaces</para></listitem>
+<listitem><para>fixed bug tracking naked markup in <sgmltag>description</sgmltag></para></listitem>
+<listitem><para>added support for <sgmltag>enclosure</sgmltag></para></listitem>
+<listitem><para>added support for <sgmltag>source</sgmltag></para></listitem>
+<listitem><para>re-added support for <sgmltag>cloud</sgmltag> which got dropped somehow</para></listitem>
+<listitem><para>added support for <sgmltag>expirationDate</sgmltag></para></listitem>
+</itemizedlist>
+
+<bridgehead id="changes.30b2" renderas="sect3">Changes in version 3.0b2 and 3.0b1</bridgehead>
+<para>&feedparser; 3.0b2 and 3.0b1 have been lost in the mists of time.</para>
+
+</section>
+
</chapter>
<chapter id="reference">
@@ -4066,7 +4386,7 @@
<title>feed.ttl</title>
<abstract>
<title/>
-<para>According to the &rss; specification, <quote><sgmltag>ttl</sgmltag> stands for time to live. It's a number of minutes that indicates how long a channel can be cached before refreshing from the source. This makes it possible for RSS sources to be managed by a file-sharing network such as Gnutella.</quote></para>
+<para>According to the &rss; specification, <quote><sgmltag>ttl</sgmltag> stands for time to live. It's a number of minutes that indicates how long a channel can be cached before refreshing from the source. This makes it possible for &rss; sources to be managed by a file-sharing network such as Gnutella.</quote></para>
</abstract>
<para>No one is quite sure what this means, and no one publishes feeds via file-sharing networks.</para>
<para>Some clients have interpreted this element to be some sort of inline caching mechanism, albeit one that completely ignores the underlying &http; protocol, its robust caching mechanisms, and the huge amount of &http;-savvy network infrastructure that understands them. Given the vague documentation, it is impossible to say that this interpretation is any more ridiculous than the element itself.</para>
@@ -5089,7 +5409,7 @@
<sectioninfo>
<abstract>
<title/>
-<para>A dictionary of all XML namespaces defined in the feed, as <literal>{prefix: namespaceURI}</literal>.</para>
+<para>A dictionary of all &xml; namespaces defined in the feed, as <literal>{prefix: namespaceURI}</literal>.</para>
</abstract>
</sectioninfo>
<title>namespaces</title>
@@ -5099,7 +5419,7 @@
</note>
<tip>
<title/>
-<para>This element always exists, although it may be an empty dictionary if the feed does not define any namespaces (such as an RSS 2.0 feed with no extensions).</para>
+<para>This element always exists, although it may be an empty dictionary if the feed does not define any namespaces (such as an &rss; 2.0 feed with no extensions).</para>
</tip>
</section>
Modified: trunk/feedparser/feedparser.py
==============================================================================
--- trunk/feedparser/feedparser.py (original)
+++ trunk/feedparser/feedparser.py Tue Mar 11 21:52:50 2008
@@ -3683,143 +3683,5 @@
#2.7.5 - 1/15/2004 - MAP - added workaround for malformed DOCTYPE (seen on many
#
blogspot.com sites); added _debug variable
#2.7.6 - 1/16/2004 - MAP - fixed bug with StringIO importing
-#3.0b3 - 1/23/2004 - MAP - parse entire feed with real XML parser (if available);
-# added several new supported namespaces; fixed bug tracking naked markup in
-# description; added support for enclosure; added support for source; re-added
-# support for cloud which got dropped somehow; added support for expirationDate
-#3.0b4 - 1/26/2004 - MAP - fixed xml:lang inheritance; fixed multiple bugs tracking
-# xml:base URI, one for documents that don't define one explicitly and one for
-# documents that define an outer and an inner xml:base that goes out of scope
-# before the end of the document
-#3.0b5 - 1/26/2004 - MAP - fixed bug parsing multiple links at feed level
-#3.0b6 - 1/27/2004 - MAP - added feed type and version detection, result['version']
-# will be one of SUPPORTED_VERSIONS.keys() or empty string if unrecognized;
-# added support for creativeCommons:license and cc:license; added support for
-# full Atom content model in title, tagline, info, copyright, summary; fixed bug
-# with gzip encoding (not always telling server we support it when we do)
-#3.0b7 - 1/28/2004 - MAP - support Atom-style author element in author_detail
-# (dictionary of 'name', 'url', 'email'); map author to author_detail if author
-# contains name + email address
-#3.0b8 - 1/28/2004 - MAP - added support for contributor
-#3.0b9 - 1/29/2004 - MAP - fixed check for presence of dict function; added
-# support for summary
-#3.0b10 - 1/31/2004 - MAP - incorporated ISO-8601 date parsing routines from
-# xml.util.iso8601
-#3.0b11 - 2/2/2004 - MAP - added 'rights' to list of elements that can contain
-# dangerous markup; fiddled with decodeEntities (not right); liberalized
-# date parsing even further
-#3.0b12 - 2/6/2004 - MAP - fiddled with decodeEntities (still not right);
-# added support to Atom 0.2 subtitle; added support for Atom content model
-# in copyright; better sanitizing of dangerous HTML elements with end tags
-# (script, frameset)
-#3.0b13 - 2/8/2004 - MAP - better handling of empty HTML tags (br, hr, img,
-# etc.) in embedded markup, in either HTML or XHTML form (<br>, <br/>, <br />)
-#3.0b14 - 2/8/2004 - MAP - fixed CDATA handling in non-wellformed feeds under
-# Python 2.1
-#3.0b15 - 2/11/2004 - MAP - fixed bug resolving relative links in wfw:commentRSS;
-# fixed bug capturing author and contributor URL; fixed bug resolving relative
-# links in author and contributor URL; fixed bug resolvin relative links in
-# generator URL; added support for recognizing RSS 1.0; passed Simon Fell's
-# namespace tests, and included them permanently in the test suite with his
-# permission; fixed namespace handling under Python 2.1
-#3.0b16 - 2/12/2004 - MAP - fixed support for RSS 0.90 (broken in b15)
-#3.0b17 - 2/13/2004 - MAP - determine character encoding as per RFC 3023
-#3.0b18 - 2/17/2004 - MAP - always map description to summary_detail (Andrei);
-# use libxml2 (if available)
-#3.0b19 - 3/15/2004 - MAP - fixed bug exploding author information when author
-# name was in parentheses; removed ultra-problematic mxTidy support; patch to
-# workaround crash in PyXML/expat when encountering invalid entities
-# (MarkMoraes); support for textinput/textInput
-#3.0b20 - 4/7/2004 - MAP - added CDF support
-#3.0b21 - 4/14/2004 - MAP - added Hot RSS support
-#3.0b22 - 4/19/2004 - MAP - changed 'channel' to 'feed', 'item' to 'entries' in
-# results dict; changed results dict to allow getting values with results.key
-# as well as results[key]; work around embedded illformed HTML with half
-# a DOCTYPE; work around malformed Content-Type header; if character encoding
-# is wrong, try several common ones before falling back to regexes (if this
-# works, bozo_exception is set to CharacterEncodingOverride); fixed character
-# encoding issues in BaseHTMLProcessor by tracking encoding and converting
-# from Unicode to raw strings before feeding data to sgmllib.SGMLParser;
-# convert each value in results to Unicode (if possible), even if using
-# regex-based parsing
-#3.0b23 - 4/21/2004 - MAP - fixed UnicodeDecodeError for feeds that contain
-# high-bit characters in attributes in embedded HTML in description (thanks
-# Thijs van de Vossen); moved guid, date, and date_parsed to mapped keys in
-# FeedParserDict; tweaked FeedParserDict.has_key to return True if asking
-# about a mapped key
-#3.0fc1 - 4/23/2004 - MAP - made results.entries[0].links[0] and
-# results.entries[0].enclosures[0] into FeedParserDict; fixed typo that could
-# cause the same encoding to be tried twice (even if it failed the first time);
-# fixed DOCTYPE stripping when DOCTYPE contained entity declarations;
-# better textinput and image tracking in illformed RSS 1.0 feeds
-#3.0fc2 - 5/10/2004 - MAP - added and passed Sam's amp tests; added and passed
-# my blink tag tests
-#3.0fc3 - 6/18/2004 - MAP - fixed bug in _changeEncodingDeclaration that
-# failed to parse utf-16 encoded feeds; made source into a FeedParserDict;
-# duplicate admin:generatorAgent/@rdf:resource in generator_detail.url;
-# added support for image; refactored parse() fallback logic to try other
-# encodings if SAX parsing fails (previously it would only try other encodings
-# if re-encoding failed); remove unichr madness in normalize_attrs now that
-# we're properly tracking encoding in and out of BaseHTMLProcessor; set
-# feed.language from root-level xml:lang; set
entry.id from rdf:about;
-# send Accept header
-#3.0 - 6/21/2004 - MAP - don't try iso-8859-1 (can't distinguish between
-# iso-8859-1 and windows-1252 anyway, and most incorrectly marked feeds are
-# windows-1252); fixed regression that could cause the same encoding to be
-# tried twice (even if it failed the first time)
-#3.0.1 - 6/22/2004 - MAP - default to us-ascii for all text/* content types;
-# recover from malformed content-type header parameter with no equals sign
-# ('text/xml; charset:iso-8859-1')
-#3.1 - 6/28/2004 - MAP - added and passed tests for converting HTML entities
-# to Unicode equivalents in illformed feeds (aaronsw); added and
-# passed tests for converting character entities to Unicode equivalents
-# in illformed feeds (aaronsw); test for valid parsers when setting
-# XML_AVAILABLE; make version and encoding available when server returns
-# a 304; add handlers parameter to pass arbitrary urllib2 handlers (like
-# digest auth or proxy support); add code to parse username/password
-# out of url and send as basic authentication; expose downloading-related
-# exceptions in bozo_exception (aaronsw); added __contains__ method to
-# FeedParserDict (aaronsw); added publisher_detail (aaronsw)
-#3.2 - 7/3/2004 - MAP - use cjkcodecs and iconv_codec if available; always
-# convert feed to UTF-8 before passing to XML parser; completely revamped
-# logic for determining character encoding and attempting XML parsing
-# (much faster); increased default timeout to 20 seconds; test for presence
-# of Location header on redirects; added tests for many alternate character
-# encodings; support various EBCDIC encodings; support UTF-16BE and
-# UTF16-LE with or without a BOM; support UTF-8 with a BOM; support
-# UTF-32BE and UTF-32LE with or without a BOM; fixed crashing bug if no
-# XML parsers are available; added support for 'Content-encoding: deflate';
-# send blank 'Accept-encoding: ' header if neither gzip nor zlib modules
-# are available
-#3.3 - 7/15/2004 - MAP - optimize EBCDIC to ASCII conversion; fix obscure
-# problem tracking xml:base and xml:lang if element declares it, child
-# doesn't, first grandchild redeclares it, and second grandchild doesn't;
-# refactored date parsing; defined public registerDateHandler so callers
-# can add support for additional date formats at runtime; added support
-# for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1); added
-# zopeCompatibilityHack() which turns FeedParserDict into a regular
-# dictionary, required for Zope compatibility, and also makes command-
-# line debugging easier because pprint module formats real dictionaries
-# better than dictionary-like objects; added NonXMLContentType exception,
-# which is stored in bozo_exception when a feed is served with a non-XML
-# media type such as 'text/plain'; respect Content-Language as default
-# language if not xml:lang is present; cloud dict is now FeedParserDict;
-# generator dict is now FeedParserDict; better tracking of xml:lang,
-# including support for xml:lang='' to unset the current language;
-# recognize RSS 1.0 feeds even when RSS 1.0 namespace is not the default
-# namespace; don't overwrite final status on redirects (scenarios:
-# redirecting to a URL that returns 304, redirecting to a URL that
-# redirects to another URL with a different type of redirect); add
-# support for HTTP 303 redirects
-#4.0 - MAP - support for relative URIs in xml:base attribute; fixed
-# encoding issue with mxTidy (phopkins); preliminary support for RFC 3229;
-# support for Atom 1.0; support for iTunes extensions; new 'tags' for
-# categories/keywords/etc. as array of dict
-# {'term': term, 'scheme': scheme, 'label': label} to match Atom 1.0
-# terminology; parse RFC 822-style dates with no time; lots of other
-# bug fixes
-#4.1 - MAP - removed socket timeout; added support for chardet library
-#4.2 - MAP - added support for parsing microformats within content elements:
-# currently supports rel-tag (maps to 'tags'), rel-enclosure (maps to
-# 'enclosures'), XFN links within content elements (maps to 'xfn'),
-# and hCard (parses as vCard); bug [ 1481975 ] Misencoded utf-8/win-1252
+#
+#rest of revision history is in HTML docs now
Modified: trunk/www/docs/annotated-atom03.html
==============================================================================
--- trunk/www/docs/annotated-atom03.html (original)
+++ trunk/www/docs/annotated-atom03.html Tue Mar 11 21:52:50 2008
@@ -27,7 +27,7 @@
</div>
<div></div>
</div>
-<a name="id299514"></a><table class="caution" border="0" summary="">
+<a name="id299525"></a><table class="caution" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/caution.png" alt="Caution" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Even though many of these elements are required according to the specification, real-world feeds may be missing any element. If an element is not present in the feed, it will not be present in the parsed results. You should not rely on any particular element being present.</td></tr>
</table>
Modified: trunk/www/docs/annotated-atom10.html
==============================================================================
--- trunk/www/docs/annotated-atom10.html (original)
+++ trunk/www/docs/annotated-atom10.html Tue Mar 11 21:52:50 2008
@@ -27,7 +27,7 @@
</div>
<div></div>
</div>
-<a name="id299062"></a><table class="caution" border="0" summary="">
+<a name="id299073"></a><table class="caution" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/caution.png" alt="Caution" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Even though many of these elements are required according to the specification, real-world feeds may be missing any element. If an element is not present in the feed, it will not be present in the parsed results. You should not rely on any particular element being present.</td></tr>
</table>
Modified: trunk/www/docs/annotated-rss10.html
==============================================================================
--- trunk/www/docs/annotated-rss10.html (original)
+++ trunk/www/docs/annotated-rss10.html Tue Mar 11 21:52:50 2008
@@ -27,7 +27,7 @@
</div>
<div></div>
</div>
-<a name="id300532"></a><table class="caution" border="0" summary="">
+<a name="id300544"></a><table class="caution" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/caution.png" alt="Caution" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Even though many of these elements are required according to the specification, real-world feeds may be missing any element. If an element is not present in the feed, it will not be present in the parsed results. You should not rely on any particular element being present.</td></tr>
</table>
Modified: trunk/www/docs/annotated-rss20-dc.html
==============================================================================
--- trunk/www/docs/annotated-rss20-dc.html (original)
+++ trunk/www/docs/annotated-rss20-dc.html Tue Mar 11 21:52:50 2008
@@ -27,7 +27,7 @@
</div>
<div></div>
</div>
-<a name="id300314"></a><table class="caution" border="0" summary="">
+<a name="id300325"></a><table class="caution" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/caution.png" alt="Caution" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Even though many of these elements are required according to the specification, real-world feeds may be missing any element. If an element is not present in the feed, it will not be present in the parsed results. You should not rely on any particular element being present.</td></tr>
</table>
Modified: trunk/www/docs/annotated-rss20.html
==============================================================================
--- trunk/www/docs/annotated-rss20.html (original)
+++ trunk/www/docs/annotated-rss20.html Tue Mar 11 21:52:50 2008
@@ -27,7 +27,7 @@
</div>
<div></div>
</div>
-<a name="id299945"></a><table class="caution" border="0" summary="">
+<a name="id299956"></a><table class="caution" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/caution.png" alt="Caution" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Even though many of these elements are required according to the specification, real-world feeds may be missing any element. If an element is not present in the feed, it will not be present in the parsed results. You should not rely on any particular element being present.</td></tr>
</table>
Added: trunk/www/docs/changes-30.html
==============================================================================
--- (empty file)
+++ trunk/www/docs/changes-30.html Tue Mar 11 21:52:50 2008
@@ -0,0 +1,244 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Changes in version 3.0 and the 26 betas that preceded it [Universal Feed Parser]</title>
+<link rel="stylesheet" href="../css/feedparser.css" type="text/css">
+<link rev="made" href="mailto:
ma...@diveintomark.org">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
+<link rel="start" href="index.html" title="Documentation">
+<link rel="up" href="history.html" title="Revision history">
+<link rel="prev" href="changes-301.html" title="Changes in version 3.0.1">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body id="feedparser-org" class="docs">
+<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
+<p id="breadcrumb">You are here: <a href="../">Home</a> → <a href="index.html">Documentation</a> → <a href="history.html">Revision history</a> → <span class="thispage">Changes in version 3.0 and the 26 betas that preceded it</span></p>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title">
+<a name="changes.30.and.friends" class="skip" href="#changes.30.and.friends" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 3.0 and the 26 betas that preceded it</h2></div></div>
+<div></div>
+</div>
+<div class="abstract"><p>This got a little out of hand.</p></div>
+<h3>
+<a name="changes.30" class="skip" href="#changes.30" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0 was released on June 21, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>don't try <tt class="constant">iso-8859-1</tt> (can't distinguish between <tt class="constant">iso-8859-1</tt> and <tt class="constant">windows-1252</tt> anyway, and most incorrectly marked feeds are <tt class="constant">windows-1252</tt>)</li>
+<li>fixed regression that could cause the same encoding to be tried twice (even if it failed the first time)</li>
+</ul></div>
+<h3>
+<a name="changes.30fc3" class="skip" href="#changes.30fc3" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0fc3</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0fc3 was released on June 18, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>fixed bug in <tt class="function">_changeEncodingDeclaration</tt> that failed to parse UTF-16 encoded feeds</li>
+<li>made <tt class="varname">source</tt> into a FeedParserDict</li>
+<li>duplicate <tt class="literal">admin:generatorAgent/@rdf:resource</tt> in <tt class="varname">generator_detail.url</tt>
+</li>
+<li>added support for <tt class="sgmltag-element">image</tt>
+</li>
+<li>refactored <tt class="function">parse()</tt> fallback logic to try other encodings if SAX parsing fails (previously it would only try other encodings if re-encoding failed)</li>
+<li>remove <tt class="function">unichr</tt> madness in <tt class="methodname">normalize_attrs</tt> now that we're properly tracking encoding in and out of <tt class="classname">BaseHTMLProcessor</tt>
+</li>
+<li>set <tt class="varname">feed.language</tt> from root-level <tt class="sgmltag-attribute">xml:lang</tt>
+</li>
+<li>set <tt class="varname">
entry.id</tt> from <tt class="sgmltag-attribute">rdf:about</tt>
+</li>
+<li>send <tt class="constant">Accept</tt> header</li>
+</ul></div>
+<h3>
+<a name="changes.30fc2" class="skip" href="#changes.30fc2" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0fc2</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0fc2 was released on May 10, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>added and passed Sam's <tt class="literal">amp</tt> tests</li>
+<li>added and passed my <tt class="sgmltag-element">blink</tt> tag tests</li>
+</ul></div>
+<h3>
+<a name="changes.30fc1" class="skip" href="#changes.30fc1" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0fc1</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0fc1 was released on April 23, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>made <tt class="varname">results.entries[0].links[0]</tt> and <tt class="varname">results.entries[0].enclosures[0]</tt> into <tt class="classname">FeedParserDict</tt>
+</li>
+<li>fixed typo that could cause the same encoding to be tried twice (even if it failed the first time)</li>
+<li>fixed DOCTYPE stripping when DOCTYPE contained entity declarations</li>
+<li>better <tt class="sgmltag-element">textinput</tt> and <tt class="sgmltag-element">image</tt> tracking in illformed <acronym title="Rich Site Summary">RSS</acronym> 1.0 feeds</li>
+</ul></div>
+<h3>
+<a name="changes.30b23" class="skip" href="#changes.30b23" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b23</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b23 was released on April 21, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>fixed <tt class="constant">UnicodeDecodeError</tt> for feeds that contain high-bit characters in attributes in embedded <acronym title="HyperText Markup Language">HTML</acronym> in description (thanks Thijs van de Vossen)</li>
+<li>moved <tt class="varname">guid</tt>, <tt class="varname">date</tt>, and <tt class="varname">date_parsed</tt> to mapped keys in <tt class="classname">FeedParserDict</tt>
+</li>
+<li>tweaked <tt class="methodname">FeedParserDict.has_key</tt> to return <tt class="constant">True</tt> if asking about a mapped key</li>
+</ul></div>
+<h3>
+<a name="changes.30b22" class="skip" href="#changes.30b22" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b22</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b22 was released on April 19, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>changed <tt class="varname">channel</tt> to <tt class="varname">feed</tt>, <tt class="varname">item</tt> to <tt class="varname">entries</tt> in <tt class="varname">results</tt> dict</li>
+<li>changed <tt class="varname">results</tt> dict to allow getting values with <tt class="varname">results.key</tt> as well as <tt class="varname">results[key]</tt>
+</li>
+<li>work around embedded illformed <acronym title="HyperText Markup Language">HTML</acronym> with half a DOCTYPE</li>
+<li>work around malformed <tt class="constant">Content-Type</tt> header</li>
+<li>if character encoding is wrong, try several common ones before falling back to regexes (if this works, <tt class="varname">bozo_exception</tt> is set to <tt class="constant">CharacterEncodingOverride</tt>
+</li>
+<li>fixed character encoding issues in <tt class="classname">BaseHTMLProcessor</tt> by tracking encoding and converting from Unicode to raw strings before feeding data to <tt class="classname">sgmllib.SGMLParser</tt>
+</li>
+<li>convert each value in results to Unicode (if possible), even if using regex-based parsing</li>
+</ul></div>
+<h3>
+<a name="changes.30b21" class="skip" href="#changes.30b21" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b21</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b21 was released on April 14, 2004.</p>
+<div class="itemizedlist"><ul><li>added Hot RSS support</li></ul></div>
+<h3>
+<a name="changes.30b20" class="skip" href="#changes.30b20" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b20</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b20 was released on April 7, 2004.</p>
+<div class="itemizedlist"><ul><li>added <acronym title="Channel Definition Format">CDF</acronym> support</li></ul></div>
+<h3>
+<a name="changes.30b19" class="skip" href="#changes.30b19" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b19</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b19 was released on March 15, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>fixed bug exploding author information when author name was in parentheses</li>
+<li>removed ultra-problematic <tt class="filename">mxTidy</tt> support</li>
+<li>patch to workaround crash in PyXML/expat when encountering invalid entities (MarkMoraes)</li>
+<li>support for <tt class="sgmltag-element">textinput</tt>/<tt class="sgmltag-element">textInput</tt>
+</li>
+</ul></div>
+<h3>
+<a name="changes.30b18" class="skip" href="#changes.30b18" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b18</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b18 was released on February 17, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>always map <tt class="sgmltag-element">description</tt> to <tt class="varname">summary_detail</tt> (Andrei)</li>
+<li>use <tt class="filename">libxml2</tt> (if available)</li>
+</ul></div>
+<h3>
+<a name="changes.30b17" class="skip" href="#changes.30b17" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b17</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b17 was released on February 13, 2004.</p>
+<div class="itemizedlist"><ul><li>determine character encoding as per <a href="
http://www.ietf.org/rfc/rfc3023.txt">RFC 3023</a>
+</li></ul></div>
+<h3>
+<a name="changes.30b16" class="skip" href="#changes.30b16" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b16</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b16 was released on February 12, 2004.</p>
+<div class="itemizedlist"><ul><li>fixed support for <acronym title="Rich Site Summary">RSS</acronym> 0.90 (broken in b15)</li></ul></div>
+<h3>
+<a name="changes.30b15" class="skip" href="#changes.30b15" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b15</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b15 was released on February 11, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>fixed bug resolving relative links in <tt class="sgmltag-element">wfw:commentRSS</tt>
+</li>
+<li>fixed bug capturing author and contributor <acronym title="Uniform Resource Identifier">URI</acronym>
+</li>
+<li>fixed bug resolving relative links in author and contributor <acronym title="Uniform Resource Identifier">URI</acronym>
+</li>
+<li>fixed bug resolving relative links in generator <acronym title="Uniform Resource Identifier">URI</acronym>
+</li>
+<li>added support for recognizing <acronym title="Rich Site Summary">RSS</acronym> 1.0</li>
+<li>passed Simon Fell's namespace tests, and included them permanently in the test suite with his permission</li>
+<li>fixed namespace handling under <span class="application">Python</span> 2.1</li>
+</ul></div>
+<h3>
+<a name="changes.30b14" class="skip" href="#changes.30b14" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b14</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b14 was released on February 8, 2004.</p>
+<div class="itemizedlist"><ul><li>fixed CDATA handling in non-wellformed feeds under <span class="application">Python</span> 2.1</li></ul></div>
+<h3>
+<a name="changes.30b13" class="skip" href="#changes.30b13" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b13</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b13 was released on February 8, 2004.</p>
+<div class="itemizedlist"><ul><li>better handling of empty <acronym title="HyperText Markup Language">HTML</acronym> tags (<tt class="sgmltag-element">br</tt>, <tt class="sgmltag-element">hr</tt>, <tt class="sgmltag-element">img</tt>, etc.) in embedded markup, in either <acronym title="HyperText Markup Language">HTML</acronym> or <acronym title="Extensible HyperText Markup Language">XHTML</acronym> form (<tt class="sgmltag-element"><br></tt>, <tt class="sgmltag-element"><br/></tt>, <tt class="sgmltag-element"><br /></tt>)</li></ul></div>
+<h3>
+<a name="changes.30b12" class="skip" href="#changes.30b12" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b12</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b12 was released on February 6, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>fiddled with <tt class="function">decodeEntities</tt> (still not right)</li>
+<li>added support to Atom 0.2 <tt class="sgmltag-element">subtitle</tt>
+</li>
+<li>added support for Atom content model in <tt class="sgmltag-element">copyright</tt>
+</li>
+<li>better sanitizing of dangerous <acronym title="HyperText Markup Language">HTML</acronym> elements with end tags (<tt class="sgmltag-element">script</tt>, <tt class="sgmltag-element">frameset</tt>)</li>
+</ul></div>
+<h3>
+<a name="changes.30b11" class="skip" href="#changes.30b11" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b11</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b11 was released on February 2, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>added <tt class="sgmltag-element">rights</tt> to list of elements that can contain dangerous markup</li>
+<li>fiddled with <tt class="function">decodeEntities</tt> (not right)</li>
+<li>liberalized date parsing even further</li>
+</ul></div>
+<h3>
+<a name="changes.30b10" class="skip" href="#changes.30b10" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b10</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b10 was released on January 31, 2004.</p>
+<div class="itemizedlist"><ul><li>incorporated ISO-8601 date parsing routines from <tt class="filename">xml.util.iso8601</tt>
+</li></ul></div>
+<h3>
+<a name="changes.30b9" class="skip" href="#changes.30b9" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b9</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b9 was released on January 29, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>fixed check for presence of <tt class="function">dict</tt> function</li>
+<li>added support for <tt class="sgmltag-element">summary</tt>
+</li>
+</ul></div>
+<h3>
+<a name="changes.30b8" class="skip" href="#changes.30b8" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b8</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b8 was released on January 28, 2004.</p>
+<div class="itemizedlist"><ul><li>added support for <tt class="sgmltag-element">contributor</tt>
+</li></ul></div>
+<h3>
+<a name="changes.30b7" class="skip" href="#changes.30b7" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b7</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b7 was released on January 28, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>support Atom-style <tt class="sgmltag-element">author</tt> element in <tt class="varname">author_detail</tt> (dictionary of <tt class="varname">name</tt>, <tt class="varname">url</tt>, <tt class="varname">email</tt>)</li>
+<li>map <tt class="varname">author</tt> to <tt class="varname">author_detail</tt> if <tt class="varname">author</tt> contains name + email address</li>
+</ul></div>
+<h3>
+<a name="changes.30b6" class="skip" href="#changes.30b6" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b6</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b6 was released on January 27, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>added feed type and version detection, <tt class="varname">result['version']</tt> will be one of <tt class="constant">SUPPORTED_VERSIONS.keys()</tt> or empty string if unrecognized</li>
+<li>added support for <tt class="sgmltag-element">creativeCommons:license</tt> and <tt class="sgmltag-element">cc:license</tt>
+</li>
+<li>added support for full Atom content model in <tt class="sgmltag-element">title</tt>, <tt class="sgmltag-element">tagline</tt>, <tt class="sgmltag-element">info</tt>, <tt class="sgmltag-element">copyright</tt>, <tt class="sgmltag-element">summary</tt>
+</li>
+<li>fixed bug with gzip encoding (not always telling server we support it when we do)</li>
+</ul></div>
+<h3>
+<a name="changes.30b5" class="skip" href="#changes.30b5" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b5</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b5 was released on January 26, 2004.</p>
+<div class="itemizedlist"><ul><li>fixed bug parsing multiple links at feed level</li></ul></div>
+<h3>
+<a name="changes.30b4" class="skip" href="#changes.30b4" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b4</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b4 was released on January 26, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>fixed <tt class="sgmltag-element">xml:lang</tt> inheritance</li>
+<li>fixed multiple bugs tracking <tt class="sgmltag-element">xml:base</tt> <acronym title="Uniform Resource Identifier">URI</acronym>, one for documents that don't define one explicitly and one for documents that define an outer and an inner <tt class="sgmltag-element">xml:base</tt> that goes out of scope before the end of the document</li>
+</ul></div>
+<h3>
+<a name="changes.30b3" class="skip" href="#changes.30b3" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b3</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b3 was released on January 23, 2004.</p>
+<div class="itemizedlist"><ul>
+<li>parse entire feed with real <acronym title="Extensible Markup Language">XML</acronym> parser (if available)</li>
+<li>added several new supported namespaces</li>
+<li>fixed bug tracking naked markup in <tt class="sgmltag-element">description</tt>
+</li>
+<li>added support for <tt class="sgmltag-element">enclosure</tt>
+</li>
+<li>added support for <tt class="sgmltag-element">source</tt>
+</li>
+<li>re-added support for <tt class="sgmltag-element">cloud</tt> which got dropped somehow</li>
+<li>added support for <tt class="sgmltag-element">expirationDate</tt>
+</li>
+</ul></div>
+<h3>
+<a name="changes.30b2" class="skip" href="#changes.30b2" title="link to this bridgehead"><img src="images/permalink.gif" alt="[link]" title="link to this bridgehead" width="8" height="9"></a> Changes in version 3.0b2 and 3.0b1</h3>
+<p><span class="application">Universal Feed Parser</span> 3.0b2 and 3.0b1 have been lost in the mists of time.</p>
+</div>
+<div style="float: left">← <a class="NavigationArrow" href="changes-301.html">Changes in version 3.0.1</a>
+</div>
+<div style="text-align: right">
+<a class="NavigationArrow" href="reference.html">Reference</a> →</div>
+<hr style="clear:both">
+<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
+</div></div>
+</body>
+</html>
Added: trunk/www/docs/changes-301.html
==============================================================================
--- (empty file)
+++ trunk/www/docs/changes-301.html Tue Mar 11 21:52:50 2008
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Changes in version 3.0.1 [Universal Feed Parser]</title>
+<link rel="stylesheet" href="../css/feedparser.css" type="text/css">
+<link rev="made" href="mailto:
ma...@diveintomark.org">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
+<link rel="start" href="index.html" title="Documentation">
+<link rel="up" href="history.html" title="Revision history">
+<link rel="prev" href="changes-31.html" title="Changes in version 3.1">
+<link rel="next" href="changes-30.html" title="Changes in version 3.0 and the 26 betas that preceded it">
+</head>
+<body id="feedparser-org" class="docs">
+<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
+<p id="breadcrumb">You are here: <a href="../">Home</a> → <a href="index.html">Documentation</a> → <a href="history.html">Revision history</a> → <span class="thispage">Changes in version 3.0.1</span></p>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title">
+<a name="changes.301" class="skip" href="#changes.301" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 3.0.1</h2></div></div>
+<div></div>
+</div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 3.0.1 was released on June 21, 2004.</p></div>
+<div class="itemizedlist"><ul>
+<li>default to <tt class="constant">us-ascii</tt> for all <tt class="literal">text/*</tt> content types</li>
+<li>recover from malformed <tt class="constant">content-type</tt> header parameter with no equals sign (<tt class="literal">"text/xml; charset:iso-8859-1"</tt>)</li>
+<li>docs: added <tt class="filename">reference-feed.html</tt> and <tt class="filename">reference-entry.html</tt> (bug #977723)</li>
+<li>docs: fixed <tt class="varname">entry[i]</tt> in documentation (should be <tt class="varname">entries[i]</tt>) (bug #977722)</li>
+<li>docs: added note about Unicode string usage (bug #977716)</li>
+<li>docs: added <tt class="filename">basic-existence.html</tt> (bug #977704)</li>
+<li>docs: fixed description of feed title (bug #977685)</li>
+<li>docs: fixed typo in annotated <acronym title="Rich Site Summary">RSS</acronym> 1.0 feed (bug #977682)</li>
+</ul></div>
+</div>
+<div style="float: left">← <a class="NavigationArrow" href="changes-31.html">Changes in version 3.1</a>
+</div>
+<div style="text-align: right">
+<a class="NavigationArrow" href="changes-30.html">Changes in version 3.0 and the 26 betas that preceded it</a> →</div>
+<hr style="clear:both">
+<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
+</div></div>
+</body>
+</html>
Added: trunk/www/docs/changes-31.html
==============================================================================
--- (empty file)
+++ trunk/www/docs/changes-31.html Tue Mar 11 21:52:50 2008
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Changes in version 3.1 [Universal Feed Parser]</title>
+<link rel="stylesheet" href="../css/feedparser.css" type="text/css">
+<link rev="made" href="mailto:
ma...@diveintomark.org">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
+<link rel="start" href="index.html" title="Documentation">
+<link rel="up" href="history.html" title="Revision history">
+<link rel="prev" href="changes-32.html" title="Changes in version 3.2">
+<link rel="next" href="changes-301.html" title="Changes in version 3.0.1">
+</head>
+<body id="feedparser-org" class="docs">
+<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
+<p id="breadcrumb">You are here: <a href="../">Home</a> → <a href="index.html">Documentation</a> → <a href="history.html">Revision history</a> → <span class="thispage">Changes in version 3.1</span></p>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title">
+<a name="changes.31" class="skip" href="#changes.31" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 3.1</h2></div></div>
+<div></div>
+</div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 3.1 was released on June 28, 2004.</p></div>
+<div class="itemizedlist"><ul>
+<li>added and passed tests for converting <acronym title="HyperText Markup Language">HTML</acronym> entities to Unicode equivalents in illformed feeds (aaronsw)</li>
+<li>added and passed tests for converting character entities to Unicode equivalents in illformed feeds (aaronsw)</li>
+<li>test for valid parsers when setting <tt class="constant">XML_AVAILABLE</tt>
+</li>
+<li>make version and encoding available when server returns a <tt class="constant">304</tt>
+</li>
+<li>add <tt class="varname">handlers</tt> parameter to pass arbitrary <tt class="filename">urllib2</tt> handlers (like digest auth or proxy support)</li>
+<li>add code to parse username/password out of url and send as basic authentication</li>
+<li>expose downloading-related exceptions in <tt class="varname">bozo_exception</tt> (aaronsw)</li>
+<li>added <tt class="methodname">__contains__</tt> method to <tt class="classname">FeedParserDict</tt> (aaronsw)</li>
+<li>added <tt class="varname">publisher_detail</tt> (aaronsw)</li>
+</ul></div>
+</div>
+<div style="float: left">← <a class="NavigationArrow" href="changes-32.html">Changes in version 3.2</a>
+</div>
+<div style="text-align: right">
+<a class="NavigationArrow" href="changes-301.html">Changes in version 3.0.1</a> →</div>
+<hr style="clear:both">
+<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
+</div></div>
+</body>
+</html>
Added: trunk/www/docs/changes-32.html
==============================================================================
--- (empty file)
+++ trunk/www/docs/changes-32.html Tue Mar 11 21:52:50 2008
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Changes in version 3.2 [Universal Feed Parser]</title>
+<link rel="stylesheet" href="../css/feedparser.css" type="text/css">
+<link rev="made" href="mailto:
ma...@diveintomark.org">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
+<link rel="start" href="index.html" title="Documentation">
+<link rel="up" href="history.html" title="Revision history">
+<link rel="prev" href="changes-33.html" title="Changes in version 3.3">
+<link rel="next" href="changes-31.html" title="Changes in version 3.1">
+</head>
+<body id="feedparser-org" class="docs">
+<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
+<p id="breadcrumb">You are here: <a href="../">Home</a> → <a href="index.html">Documentation</a> → <a href="history.html">Revision history</a> → <span class="thispage">Changes in version 3.2</span></p>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title">
+<a name="changes.32" class="skip" href="#changes.32" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 3.2</h2></div></div>
+<div></div>
+</div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 3.2 was released on July 3, 2004.</p></div>
+<div class="itemizedlist"><ul>
+<li>use <tt class="filename">cjkcodecs</tt> and <tt class="filename">iconv_codec</tt> if available</li>
+<li>always convert feed to UTF-8 before passing to <acronym title="Extensible Markup Language">XML</acronym> parser</li>
+<li>completely revamped logic for determining character encoding and attempting <acronym title="Extensible Markup Language">XML</acronym> parsing (much faster)</li>
+<li>increased default timeout to 20 seconds</li>
+<li>test for presence of <tt class="constant">Location</tt> header on redirects</li>
+<li>added tests for many alternate character encodings</li>
+<li>support various <acronym>EBCDIC</acronym> encodings</li>
+<li>support UTF-16BE and UTF16-LE with or without a <acronym title="Byte Order Mark">BOM</acronym>
+</li>
+<li>support UTF-8 with a <acronym title="Byte Order Mark">BOM</acronym>
+</li>
+<li>support UTF-32BE and UTF-32LE with or without a <acronym title="Byte Order Mark">BOM</acronym>
+</li>
+<li>fixed crashing bug if no <acronym title="Extensible Markup Language">XML</acronym> parsers are available</li>
+<li>added support for <tt class="literal">'Content-encoding: deflate'</tt>
+</li>
+<li>send blank <tt class="literal">'Accept-encoding: '</tt> header if neither <tt class="filename">gzip</tt> nor <tt class="filename">zlib</tt> modules are available</li>
+</ul></div>
+</div>
+<div style="float: left">← <a class="NavigationArrow" href="changes-33.html">Changes in version 3.3</a>
+</div>
+<div style="text-align: right">
+<a class="NavigationArrow" href="changes-31.html">Changes in version 3.1</a> →</div>
+<hr style="clear:both">
+<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
+</div></div>
+</body>
+</html>
Added: trunk/www/docs/changes-33.html
==============================================================================
--- (empty file)
+++ trunk/www/docs/changes-33.html Tue Mar 11 21:52:50 2008
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Changes in version 3.3 [Universal Feed Parser]</title>
+<link rel="stylesheet" href="../css/feedparser.css" type="text/css">
+<link rev="made" href="mailto:
ma...@diveintomark.org">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
+<link rel="start" href="index.html" title="Documentation">
+<link rel="up" href="history.html" title="Revision history">
+<link rel="prev" href="changes-40.html" title="Changes in version 4.0">
+<link rel="next" href="changes-32.html" title="Changes in version 3.2">
+</head>
+<body id="feedparser-org" class="docs">
+<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
+<p id="breadcrumb">You are here: <a href="../">Home</a> → <a href="index.html">Documentation</a> → <a href="history.html">Revision history</a> → <span class="thispage">Changes in version 3.3</span></p>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title">
+<a name="changes.33" class="skip" href="#changes.33" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 3.3</h2></div></div>
+<div></div>
+</div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 3.3 was released on July 15, 2004.</p></div>
+<div class="itemizedlist"><ul>
+<li>optimized <acronym>EBCDIC</acronym> to <acronym>ASCII</acronym> conversion</li>
+<li>fixed obscure problem tracking <tt class="sgmltag-element">xml:base</tt> and <tt class="sgmltag-element">xml:lang</tt> if element declares it, child doesn't, first grandchild redeclares it, and second grandchild doesn't</li>
+<li>refactored date parsing</li>
+<li>defined public <tt class="function">registerDateHandler</tt> so callers can add support for additional date formats at runtime</li>
+<li>added support for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1)</li>
+<li>added <tt class="function">zopeCompatibilityHack()</tt> which turns <tt class="classname">FeedParserDict</tt> into a regular dictionary, required for <span class="application">Zope</span> compatibility, and also makes command-line debugging easier because pprint module formats real dictionaries better than dictionary-like objects</li>
+<li>added <tt class="classname">NonXMLContentType</tt> exception, which is stored in <tt class="varname">bozo_exception</tt> when a feed is served with a non-<acronym title="Extensible Markup Language">XML</acronym> media type such as <tt class="constant">'text/plain'</tt>
+</li>
+<li>respect <tt class="constant">Content-Language</tt> as default language if no <tt class="sgmltag-element">xml:lang</tt> is present</li>
+<li>
+<tt class="varname">cloud</tt> dict is now <tt class="classname">FeedParserDict</tt>
+</li>
+<li>generator dict is now <tt class="classname">FeedParserDict</tt>
+</li>
+<li>better tracking of <tt class="sgmltag-element">xml:lang</tt>, including support for <tt class="literal">xml:lang=''</tt> to unset the current language</li>
+<li>recognize <acronym title="Rich Site Summary">RSS</acronym> 1.0 feeds even when <acronym title="Rich Site Summary">RSS</acronym> 1.0 namespace is not the default namespace</li>
+<li>don't overwrite final status on redirects (scenarios: redirecting to a <acronym title="Uniform Resource Identifier">URI</acronym> that returns <tt class="constant">304</tt>, redirecting to a <acronym title="Uniform Resource Identifier">URI</acronym> that redirects to another <acronym title="Uniform Resource Identifier">URI</acronym> with a different type of redirect)</li>
+<li>add support for <tt class="constant">HTTP 303</tt> redirects</li>
+</ul></div>
+</div>
+<div style="float: left">← <a class="NavigationArrow" href="changes-40.html">Changes in version 4.0</a>
+</div>
+<div style="text-align: right">
+<a class="NavigationArrow" href="changes-32.html">Changes in version 3.2</a> →</div>
+<hr style="clear:both">
+<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
+</div></div>
+</body>
+</html>
Modified: trunk/www/docs/changes-40.html
==============================================================================
--- trunk/www/docs/changes-40.html (original)
+++ trunk/www/docs/changes-40.html Tue Mar 11 21:52:50 2008
@@ -9,8 +9,8 @@
<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
<link rel="start" href="index.html" title="Documentation">
<link rel="up" href="history.html" title="Revision history">
-<link rel="prev" href="changes-41.html" title="Changes in version 4.1">
-<link rel="next" href="reference.html" title="Reference">
+<link rel="prev" href="changes-401.html" title="Changes in version 4.0.1">
+<link rel="next" href="changes-33.html" title="Changes in version 3.3">
</head>
<body id="feedparser-org" class="docs">
<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
@@ -21,7 +21,7 @@
<a name="changes.40" class="skip" href="#changes.40" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 4.0</h2></div></div>
<div></div>
</div>
-<div class="abstract"><p>Here is a summary of the major changes in <span class="application">Universal Feed Parser</span> 4.0.</p></div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 4.0 was released on December 23, 2005.</p></div>
<div class="itemizedlist"><ul>
<li>Support for <a href="annotated-atom10.html" title="Atom 1.0">Atom 1.0</a>.</li>
<li>Support for <span class="application">iTunes</span> extensions.</li>
@@ -34,15 +34,15 @@
<li>
<tt class="literal">mode</tt> is gone from all detail and content dictionaries. It was never terribly useful, since <span class="application">Universal Feed Parser</span> unescapes content automatically.</li>
<li>
-<a href="reference-entry-source.html" title="entries[i].source">entries[i].source</a> is now a dictionary of feed metadata as per section 4.2.11 of RFC 4287. <span class="application">Universal Feed Parser</span> no longer supports the RSS 2.0's <tt class="literal">source</tt> element.</li>
+<a href="reference-entry-source.html" title="entries[i].source">entries[i].source</a> is now a dictionary of feed metadata as per section 4.2.11 of RFC 4287. <span class="application">Universal Feed Parser</span> no longer supports the <acronym title="Rich Site Summary">RSS</acronym> 2.0's <tt class="literal">source</tt> element.</li>
<li>Content in unknown namespaces is no longer discarded (<a href="
http://sourceforge.net/tracker/index.php?func=detail&aid=993305&group_id=112328&atid=661937">bug 993305</a>)</li>
<li>Lots of other bug fixes.</li>
</ul></div>
</div>
-<div style="float: left">← <a class="NavigationArrow" href="changes-41.html">Changes in version 4.1</a>
+<div style="float: left">← <a class="NavigationArrow" href="changes-401.html">Changes in version 4.0.1</a>
</div>
<div style="text-align: right">
-<a class="NavigationArrow" href="reference.html">Reference</a> →</div>
+<a class="NavigationArrow" href="changes-33.html">Changes in version 3.3</a> →</div>
<hr style="clear:both">
<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
</div></div>
Added: trunk/www/docs/changes-401.html
==============================================================================
--- (empty file)
+++ trunk/www/docs/changes-401.html Tue Mar 11 21:52:50 2008
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Changes in version 4.0.1 [Universal Feed Parser]</title>
+<link rel="stylesheet" href="../css/feedparser.css" type="text/css">
+<link rev="made" href="mailto:
ma...@diveintomark.org">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
+<link rel="start" href="index.html" title="Documentation">
+<link rel="up" href="history.html" title="Revision history">
+<link rel="prev" href="changes-402.html" title="Changes in version 4.0.2">
+<link rel="next" href="changes-40.html" title="Changes in version 4.0">
+</head>
+<body id="feedparser-org" class="docs">
+<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
+<p id="breadcrumb">You are here: <a href="../">Home</a> → <a href="index.html">Documentation</a> → <a href="history.html">Revision history</a> → <span class="thispage">Changes in version 4.0.1</span></p>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title">
+<a name="changes.401" class="skip" href="#changes.401" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 4.0.1</h2></div></div>
+<div></div>
+</div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 4.0.1 was released on December 24, 2005.</p></div>
+<div class="itemizedlist"><ul><li>bug fixes for <span class="application">Python</span> 2.1 compatibility.</li></ul></div>
+</div>
+<div style="float: left">← <a class="NavigationArrow" href="changes-402.html">Changes in version 4.0.2</a>
+</div>
+<div style="text-align: right">
+<a class="NavigationArrow" href="changes-40.html">Changes in version 4.0</a> →</div>
+<hr style="clear:both">
+<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
+</div></div>
+</body>
+</html>
Added: trunk/www/docs/changes-402.html
==============================================================================
--- (empty file)
+++ trunk/www/docs/changes-402.html Tue Mar 11 21:52:50 2008
@@ -0,0 +1,35 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "
http://www.w3.org/TR/html4/strict.dtd">
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>Changes in version 4.0.2 [Universal Feed Parser]</title>
+<link rel="stylesheet" href="../css/feedparser.css" type="text/css">
+<link rev="made" href="mailto:
ma...@diveintomark.org">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
+<link rel="start" href="index.html" title="Documentation">
+<link rel="up" href="history.html" title="Revision history">
+<link rel="prev" href="changes-41.html" title="Changes in version 4.1">
+<link rel="next" href="changes-401.html" title="Changes in version 4.0.1">
+</head>
+<body id="feedparser-org" class="docs">
+<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
+<p id="breadcrumb">You are here: <a href="../">Home</a> → <a href="index.html">Documentation</a> → <a href="history.html">Revision history</a> → <span class="thispage">Changes in version 4.0.2</span></p>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title">
+<a name="changes.402" class="skip" href="#changes.402" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 4.0.2</h2></div></div>
+<div></div>
+</div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 4.0.2 was released on December 24, 2005.</p></div>
+<div class="itemizedlist"><ul><li>cleared <tt class="varname">_debug</tt> flag.</li></ul></div>
+</div>
+<div style="float: left">← <a class="NavigationArrow" href="changes-41.html">Changes in version 4.1</a>
+</div>
+<div style="text-align: right">
+<a class="NavigationArrow" href="changes-401.html">Changes in version 4.0.1</a> →</div>
+<hr style="clear:both">
+<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
+</div></div>
+</body>
+</html>
Modified: trunk/www/docs/changes-41.html
==============================================================================
--- trunk/www/docs/changes-41.html (original)
+++ trunk/www/docs/changes-41.html Tue Mar 11 21:52:50 2008
@@ -10,7 +10,7 @@
<link rel="start" href="index.html" title="Documentation">
<link rel="up" href="history.html" title="Revision history">
<link rel="prev" href="changes-42.html" title="Changes in version 4.2">
-<link rel="next" href="changes-40.html" title="Changes in version 4.0">
+<link rel="next" href="changes-402.html" title="Changes in version 4.0.2">
</head>
<body id="feedparser-org" class="docs">
<!--#include virtual="/inc/header.html"--><div id="main"><div id="mainInner">
@@ -21,7 +21,7 @@
<a name="changes.41" class="skip" href="#changes.41" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 4.1</h2></div></div>
<div></div>
</div>
-<div class="abstract"><p>Here is a summary of the major changes in <span class="application">Universal Feed Parser</span> 4.1.</p></div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 4.1 was released on January 11, 2006.</p></div>
<div class="itemizedlist"><ul>
<li>Support for the <a href="
http://chardet.feedparser.org/"><span class="application">Universal Encoding Detector</span></a> to autodetect character encoding of feeds that declare their encoding incorrectly or don't declare it at all. See <a href="character-encoding.html" title="Character Encoding Detection">Character Encoding Detection</a> for details of when this gets called.</li>
<li>
@@ -31,7 +31,7 @@
<div style="float: left">← <a class="NavigationArrow" href="changes-42.html">Changes in version 4.2</a>
</div>
<div style="text-align: right">
-<a class="NavigationArrow" href="changes-40.html">Changes in version 4.0</a> →</div>
+<a class="NavigationArrow" href="changes-402.html">Changes in version 4.0.2</a> →</div>
<hr style="clear:both">
<div class="footer"><p class="copyright">Copyright (c) 2004, 2005, 2006, 2007, 2008 Mark Pilgrim</p></div>
</div></div>
Modified: trunk/www/docs/changes-42.html
==============================================================================
--- trunk/www/docs/changes-42.html (original)
+++ trunk/www/docs/changes-42.html Tue Mar 11 21:52:50 2008
@@ -21,7 +21,7 @@
<a name="changes.42" class="skip" href="#changes.42" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Changes in version 4.2</h2></div></div>
<div></div>
</div>
-<div class="abstract"><p>Here is a summary of the major changes in <span class="application">Universal Feed Parser</span> 4.2.</p></div>
+<div class="abstract"><p><span class="application">Universal Feed Parser</span> 4.2 was released on 2006-01-10.</p></div>
<div class="itemizedlist"><ul>
<li>
<a href="microformats.html" title="Microformats">Microformats</a>.</li>
Modified: trunk/www/docs/character-encoding.html
==============================================================================
--- trunk/www/docs/character-encoding.html (original)
+++ trunk/www/docs/character-encoding.html Tue Mar 11 21:52:50 2008
@@ -21,7 +21,7 @@
<a name="advanced.encoding" class="skip" href="#advanced.encoding" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Character Encoding Detection</h2></div></div>
<div></div>
</div>
-<a name="id296588"></a><table class="tip" border="0" summary="">
+<a name="id296592"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Feeds may be published in any character encoding. <span class="application">Python</span> supports only a few character encodings by default. To support the maximum number of character encodings (and be able to parse the maximum number of feeds), you should install <tt class="filename">cjkcodecs</tt> and <tt class="filename">iconv_codec</tt>. Both are available at <a href="
http://cjkpython.i18n.org/">
http://cjkpython.i18n.org/</a>.</td></tr>
</table>
@@ -34,7 +34,7 @@
</div>
<p>In <acronym title="Extensible Markup Language">XML</acronym>, the character encoding is optional and may be given in the <acronym title="Extensible Markup Language">XML</acronym> declaration in the first line of the document, like this:</p>
<div class="informalexample"><pre class="programlisting "><xml version="1.0" encoding="utf-8"?></pre></div>
-<p>If no encoding is given, XML supports the use of a Byte Order Mark to identify the document as some flavor of UTF-32, UTF-16, or UTF-8. <a href="
http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info">Section F of the <acronym title="Extensible Markup Language">XML</acronym> specification</a> outlines the process for determining the character encoding based on unique properties of the Byte Order Mark in the first two to four bytes of the document.</p>
+<p>If no encoding is given, <acronym title="Extensible Markup Language">XML</acronym> supports the use of a Byte Order Mark to identify the document as some flavor of UTF-32, UTF-16, or UTF-8. <a href="
http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info">Section F of the <acronym title="Extensible Markup Language">XML</acronym> specification</a> outlines the process for determining the character encoding based on unique properties of the Byte Order Mark in the first two to four bytes of the document.</p>
<p>If no encoding is specified and no Byte Order Mark is present, <acronym title="Extensible Markup Language">XML</acronym> defaults to UTF-8.</p>
<p><acronym title="Hypertext Transfer Protocol">HTTP</acronym> uses <acronym>MIME</acronym> to define a method of specifying the character encoding, as part of the <tt class="literal">Content-Type</tt> <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header, which looks like this:</p>
<div class="informalexample"><pre class="programlisting ">Content-Type: text/html; charset="utf-8"</pre></div>
@@ -81,7 +81,7 @@
<h3>Elsewhere</h3>
<ul>
<li><a href="
http://www.ietf.org/rfc/rfc3023.txt">RFC 3023</a></li>
-<li><a href="
http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info">Section F of the XML specification</a></li>
+<li><a href="
http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info">Section F of the <acronym title="Extensible Markup Language">XML</acronym> specification</a></li>
<li><a href="
http://www.imc.org/atom-syntax/mail-archive/msg05575.html">On the well-formedness of <acronym title="Extensible Markup Language">XML</acronym> documents served as <tt class="literal">text/plain</tt></a></li>
<li><a href="
http://cjkpython.i18n.org/">CJKCodecs and iconv_codec</a></li>
</ul>
Modified: trunk/www/docs/common-atom-elements.html
==============================================================================
--- trunk/www/docs/common-atom-elements.html (original)
+++ trunk/www/docs/common-atom-elements.html Tue Mar 11 21:52:50 2008
@@ -116,7 +116,7 @@
'language': u'en-US',
'value': u'<div>Watch out for <span>nasty tricks</span></div>'}]</span></pre>
</div>
-<a name="id286186"></a><table class="note" border="0" summary="">
+<a name="id286196"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">The parsed <tt class="sgmltag-element">summary</tt> and <tt class="sgmltag-element">content</tt> are not the same as they appear in the original feed. The original elements contained dangerous <acronym title="HyperText Markup Language">HTML</acronym> markup which was sanitized. See <a href="html-sanitization.html" title="Sanitization">Sanitization</a> for details.</td></tr>
</table>
Modified: trunk/www/docs/common-rss-elements.html
==============================================================================
--- trunk/www/docs/common-rss-elements.html (original)
+++ trunk/www/docs/common-rss-elements.html Tue Mar 11 21:52:50 2008
@@ -77,7 +77,7 @@
<tt class="prompt">>>> </tt><span class="userinput">d.entries[0].id</span>
<span class="computeroutput">u'
http://example.org/guid/1'</span></pre>
</div>
-<a name="id285800"></a><table class="tip" border="0" summary="">
+<a name="id285811"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">You can also access data from <acronym title="Rich Site Summary">RSS</acronym> feeds using Atom terminology. See <a href="content-normalization.html" title="Content Normalization">Content Normalization</a> for details.</td></tr>
</table>
Modified: trunk/www/docs/content-normalization.html
==============================================================================
--- trunk/www/docs/content-normalization.html (original)
+++ trunk/www/docs/content-normalization.html Tue Mar 11 21:52:50 2008
@@ -75,7 +75,7 @@
<tt class="prompt">>>> </tt><span class="userinput">e.updated_parsed</span>
<span class="computeroutput">(2002, 9, 5, 0, 0, 1, 3, 248, 0)</span></pre>
</div>
-<a name="id292465"></a><table class="note" border="0" summary="">
+<a name="id292480"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">For more examples of how <span class="application">Universal Feed Parser</span> normalizes content from different formats, see <a href="annotated-examples.html" title="Annotated Examples">Annotated Examples</a>.</td></tr>
</table>
Modified: trunk/www/docs/date-parsing.html
==============================================================================
--- trunk/www/docs/date-parsing.html (original)
+++ trunk/www/docs/date-parsing.html Tue Mar 11 21:52:50 2008
@@ -70,7 +70,7 @@
</div>
<p>Here is a representative list of the formats that <span class="application">Universal Feed Parser</span> can recognize in any date element:</p>
<div class="table">
-<a name="id287507" class="skip" href="#id287507" title="link to this table"><img src="images/permalink.gif" alt="[link]" title="link to this table" width="8" height="9"></a> <h3 class="title">Recognized Date Formats</h3>
+<a name="id287518" class="skip" href="#id287518" title="link to this table"><img src="images/permalink.gif" alt="[link]" title="link to this table" width="8" height="9"></a> <h3 class="title">Recognized Date Formats</h3>
<table summary="Recognized Date Formats" border="1">
<colgroup>
<col>
@@ -272,7 +272,7 @@
</div>
<p>Your newly-registered date handler will be tried before all the other date handlers built into <span class="application">Universal Feed Parser</span>. (More specifically, all date handlers are tried in "last in, first out" order; i.e. the last handler to be registered is the first one tried, and so on in reverse order of registration.)</p>
<p>If your date handler returns <tt class="constant">None</tt>, or anything other than a <span class="application">Python</span> 9-tuple date, or raises an exception of any kind, the error will be silently ignored and the other registered date handlers will be tried in order. If no date handlers succeed, then the date is not parsed, and the <tt class="sgmltag-element">*_parsed</tt> value will not be present in the results dictionary. The original date string will still be available in the appropriate element in the results dictionary.</p>
-<a name="id288214"></a><table class="tip" border="0" summary="">
+<a name="id288224"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">If you write a new date handler, you are encouraged (but not required) to <a href="
http://sourceforge.net/projects/feedparser/">submit a patch</a> so it can be integrated into the next version of <span class="application">Universal Feed Parser</span>.</td></tr>
</table>
Modified: trunk/www/docs/history.html
==============================================================================
--- trunk/www/docs/history.html (original)
+++ trunk/www/docs/history.html Tue Mar 11 21:52:50 2008
@@ -24,7 +24,14 @@
<div class="toc"><ul>
<li><span class="section"><a href="changes-42.html">Changes in version 4.2</a></span></li>
<li><span class="section"><a href="changes-41.html">Changes in version 4.1</a></span></li>
+<li><span class="section"><a href="changes-402.html">Changes in version 4.0.2</a></span></li>
+<li><span class="section"><a href="changes-401.html">Changes in version 4.0.1</a></span></li>
<li><span class="section"><a href="changes-40.html">Changes in version 4.0</a></span></li>
+<li><span class="section"><a href="changes-33.html">Changes in version 3.3</a></span></li>
+<li><span class="section"><a href="changes-32.html">Changes in version 3.2</a></span></li>
+<li><span class="section"><a href="changes-31.html">Changes in version 3.1</a></span></li>
+<li><span class="section"><a href="changes-301.html">Changes in version 3.0.1</a></span></li>
+<li><span class="section"><a href="changes-30.html">Changes in version 3.0 and the 26 betas that preceded it</a></span></li>
</ul></div>
</div>
<div style="float: left">← <a class="NavigationArrow" href="annotated-rss10.html">RSS 1.0</a>
Modified: trunk/www/docs/html-sanitization.html
==============================================================================
--- trunk/www/docs/html-sanitization.html (original)
+++ trunk/www/docs/html-sanitization.html Tue Mar 11 21:52:50 2008
@@ -32,7 +32,7 @@
<li><a href="reference-entry-summary.html" title="entries[i].summary">entries[i].summary</a></li>
<li><a href="reference-entry-content.html" title="entries[i].content">entries[i].content</a></li>
</ul></div>
-<a name="id288329"></a><table class="note" border="0" summary="">
+<a name="id288340"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">The <a href="
http://feedparser.org/tests/wellformed/sanitize/">unit tests for <acronym title="HyperText Markup Language">HTML</acronym> sanitizing</a> show many different examples of dangerous markup that <span class="application">Universal Feed Parser</span> sanitizes by default.</td></tr>
</table>
@@ -84,7 +84,7 @@
<p>The following <acronym title="Cascading Style Sheets">CSS</acronym> properties are allowed by default in <tt class="sgmltag-attribute">style</tt> attributes (all others are stripped):
<span class="simplelist"><tt class="sgmltag-element">azimuth</tt>, <tt class="sgmltag-element">background-color</tt>, <tt class="sgmltag-element">border-bottom-color</tt>, <tt class="sgmltag-element">border-collapse</tt>, <tt class="sgmltag-element">border-color</tt>, <tt class="sgmltag-element">border-left-color</tt>, <tt class="sgmltag-element">border-right-color</tt>, <tt class="sgmltag-element">border-top-color</tt>, <tt class="sgmltag-element">clear</tt>, <tt class="sgmltag-element">color</tt>, <tt class="sgmltag-element">cursor</tt>, <tt class="sgmltag-element">direction</tt>, <tt class="sgmltag-element">display</tt>, <tt class="sgmltag-element">elevation</tt>, <tt class="sgmltag-element">float</tt>, <tt class="sgmltag-element">font</tt>, <tt class="sgmltag-element">font-family</tt>, <tt class="sgmltag-element">font-size</tt>, <tt class="sgmltag-element">font-style</tt>, <tt class="sgmltag-element">font-variant</tt>, <tt class="sgmltag-element">font-weight</tt>, <tt class="sgmltag-element">height</tt>, <tt class="sgmltag-element">letter-spacing</tt>, <tt class="sgmltag-element">line-height</tt>, <tt class="sgmltag-element">overflow</tt>, <tt class="sgmltag-element">pause</tt>, <tt class="sgmltag-element">pause-after</tt>, <tt class="sgmltag-element">pause-before</tt>, <tt class="sgmltag-element">pitch</tt>, <tt class="sgmltag-element">pitch-range</tt>, <tt class="sgmltag-element">richness</tt>, <tt class="sgmltag-element">speak</tt>, <tt class="sgmltag-element">speak-header</tt>, <tt class="sgmltag-element">speak-numeral</tt>, <tt class="sgmltag-element">speak-punctuation</tt>, <tt class="sgmltag-element">speech-rate</tt>, <tt class="sgmltag-element">stress</tt>, <tt class="sgmltag-element">text-align</tt>, <tt class="sgmltag-element">text-decoration</tt>, <tt class="sgmltag-element">text-indent</tt>, <tt class="sgmltag-element">unicode-bidi</tt>, <tt class="sgmltag-element">vertical-align</tt>, <tt class="sgmltag-element">voice-family</tt>, <tt class="sgmltag-element">volume</tt>, <tt class="sgmltag-element">white-space</tt>, <tt class="sgmltag-element">width</tt></span>
</p>
-<a name="id291783"></a><table class="note" border="0" summary="">
+<a name="id291793"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Not all possible CSS values are allowed for these properties. The allowable values are restricted by a whitelist and a regular expression that allows color values and lengths. <acronym title="Uniform Resource Identifier">URI</acronym>s are not allowed, to prevent <a href="
http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely">platypus attacks</a>. See the <tt class="classname">_HTMLSanitizer</tt> class for more details.</td></tr>
</table>
@@ -148,7 +148,7 @@
<div class="furtherreading">
<h3>Elsewhere</h3>
<ul><li>
-<a href="
http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely">How to consume RSS safely</a> explains the platypus attack.</li></ul>
+<a href="
http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely">How to consume <acronym title="Rich Site Summary">RSS</acronym> safely</a> explains the platypus attack.</li></ul>
</div>
</div>
</div>
Modified: trunk/www/docs/http-etag.html
==============================================================================
--- trunk/www/docs/http-etag.html (original)
+++ trunk/www/docs/http-etag.html Tue Mar 11 21:52:50 2008
@@ -64,7 +64,7 @@
the server sent no data. This is a feature, not a bug!'</span></pre>
</div>
<p>Clients should support both ETag and Last-Modified headers, as some servers support one but not the other.</p>
-<a name="id297637"></a><table class="important" border="0" summary="">
+<a name="id297652"></a><table class="important" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/important.png" alt="Important" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">If you do not support ETag and Last-Modified headers, you will repeatedly download feeds that have not changed. This wastes your bandwidth and the publisher's bandwidth, and the publisher may ban you from accessing their server.</td></tr>
</table>
Modified: trunk/www/docs/index.html
==============================================================================
--- trunk/www/docs/index.html (original)
+++ trunk/www/docs/index.html Tue Mar 11 21:52:50 2008
@@ -116,7 +116,14 @@
<span class="chapter"><a href="history.html">Revision history</a></span><ul>
<li><span class="section"><a href="changes-42.html">Changes in version 4.2</a></span></li>
<li><span class="section"><a href="changes-41.html">Changes in version 4.1</a></span></li>
+<li><span class="section"><a href="changes-402.html">Changes in version 4.0.2</a></span></li>
+<li><span class="section"><a href="changes-401.html">Changes in version 4.0.1</a></span></li>
<li><span class="section"><a href="changes-40.html">Changes in version 4.0</a></span></li>
+<li><span class="section"><a href="changes-33.html">Changes in version 3.3</a></span></li>
+<li><span class="section"><a href="changes-32.html">Changes in version 3.2</a></span></li>
+<li><span class="section"><a href="changes-31.html">Changes in version 3.1</a></span></li>
+<li><span class="section"><a href="changes-301.html">Changes in version 3.0.1</a></span></li>
+<li><span class="section"><a href="changes-30.html">Changes in version 3.0 and the 26 betas that preceded it</a></span></li>
</ul>
</li>
<li>
@@ -212,7 +219,7 @@
<li><span class="section"><a href="reference-feed-textinput.html#reference.feed.textinput.link">feed.textinput.link</a></span></li>
<li><span class="section"><a href="reference-feed-textinput.html#
reference.feed.textinput.name">
feed.textinput.name</a></span></li>
<li><span class="section"><a href="reference-feed-textinput.html#reference.feed.textinput.description">feed.textinput.description</a></span></li>
-<li><span class="section"><a href="reference-feed-textinput.html#id305357">Annotated example</a></span></li>
+<li><span class="section"><a href="reference-feed-textinput.html#id307430">Annotated example</a></span></li>
</ul>
</li>
<li>
Modified: trunk/www/docs/introduction.html
==============================================================================
--- trunk/www/docs/introduction.html (original)
+++ trunk/www/docs/introduction.html Tue Mar 11 21:52:50 2008
@@ -33,7 +33,7 @@
<span class="computeroutput">u'Sample Feed'</span></pre>
</div>
<p>The following example assumes you are on Windows, and that you have saved a feed at <tt class="filename">c:\incoming\atom10.xml</tt>.</p>
-<a name="id242248"></a><table class="note" border="0" summary="">
+<a name="id242426"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<span class="application">Universal Feed Parser</span> works on any platform that can run <span class="application">Python</span>; use the path syntax appropriate for your platform.</td></tr>
Modified: trunk/www/docs/microformats.html
==============================================================================
--- trunk/www/docs/microformats.html (original)
+++ trunk/www/docs/microformats.html Tue Mar 11 21:52:50 2008
@@ -27,7 +27,7 @@
</div>
<div></div>
</div>
-<a name="id292540"></a><table class="note" border="0" summary="">
+<a name="id292556"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">To parse microformats. <span class="application">Universal Feed Parser</span> relies on a third-party library called <a href="
http://www.crummy.com/software/BeautifulSoup/">Beautiful Soup</a>, which is distributed separately. If Beautiful Soup is not installed, <span class="application">Universal Feed Parser</span> will silently skip microformats parsing.</td></tr>
</table>
@@ -159,7 +159,7 @@
ORG:Netscape Communications Corp.
END:vCard</span></pre>
</div>
-<a name="id293395"></a><table class="note" border="0" summary="">
+<a name="id293410"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">There are a growing number of microformats, and <span class="application">Universal Feed Parser</span> does not parse all of them. However, both the <tt class="sgmltag-attribute">rel</tt> and <tt class="sgmltag-attribute">class</tt> attributes survive <a href="html-sanitization.html" title="Sanitization"><acronym title="HyperText Markup Language">HTML</acronym> sanitizing</a>, so applications built on <span class="application">Universal Feed Parser</span> that wish to parse additional microformat content are free to do so.</td></tr>
</table>
@@ -167,11 +167,10 @@
<h3>Elsewhere</h3>
<ul>
<li><a href="
http://microformats.org/">Microformats.org</a></li>
-<li><a href="
http://microformats.org/wiki/hcard">hCard specification</a></li>
-<li><a href="
http://microformats.org/wiki/rel-tag"><tt class="literal">rel=tag</tt> specification</a></li>
<li><a href="
http://microformats.org/wiki/rel-enclosure"><tt class="literal">rel=enclosure</tt> specification</a></li>
<li><a href="
http://microformats.org/wiki/rel-tag"><tt class="literal">rel=tag</tt> specification</a></li>
<li><a href="
http://microformats.org/wiki/XFN"><acronym title="XHTML Friends Network">XFN</acronym> specification</a></li>
+<li><a href="
http://microformats.org/wiki/hcard">hCard specification</a></li>
</ul>
</div>
</div>
Modified: trunk/www/docs/namespace-handling.html
==============================================================================
--- trunk/www/docs/namespace-handling.html (original)
+++ trunk/www/docs/namespace-handling.html Tue Mar 11 21:52:50 2008
@@ -63,7 +63,7 @@
</div>
<p>This is the complete list of namespaces that <span class="application">Universal Feed Parser</span> recognizes and uses to construct the variable names for data in these namespaces:</p>
<div class="table">
-<a name="id293783" class="skip" href="#id293783" title="link to this table"><img src="images/permalink.gif" alt="[link]" title="link to this table" width="8" height="9"></a> <h3 class="title">Recognized Namespaces</h3>
+<a name="id293787" class="skip" href="#id293787" title="link to this table"><img src="images/permalink.gif" alt="[link]" title="link to this table" width="8" height="9"></a> <h3 class="title">Recognized Namespaces</h3>
<table summary="Recognized Namespaces" border="1">
<colgroup>
<col>
@@ -266,12 +266,12 @@
</table>
</div>
<p></p>
-<a name="id294552"></a><table class="note" border="0" summary="">
+<a name="id294556"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<span class="application">Universal Feed Parser</span> treats namespaces as case-insensitive to match the behavior of certain versions of <span class="application">iTunes</span>.</td></tr>
</table>
-<a name="id294571"></a><table class="caution" border="0" summary="">
+<a name="id294575"></a><table class="caution" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/caution.png" alt="Caution" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Data from namespaced elements is not <a href="html-sanitization.html" title="Sanitization">sanitized</a> (even if it contains <acronym title="HyperText Markup Language">HTML</acronym> markup).</td></tr>
</table>
Modified: trunk/www/docs/reference-bozo.html
==============================================================================
--- trunk/www/docs/reference-bozo.html (original)
+++ trunk/www/docs/reference-bozo.html Tue Mar 11 21:52:50 2008
@@ -28,7 +28,7 @@
<div></div>
</div>
<p>See <a href="bozo.html" title="Bozo Detection">Bozo Detection</a> for more details on the <tt class="varname">bozo</tt> bit.</p>
-<a name="id313265"></a><table class="tip" border="0" summary="">
+<a name="id315359"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<tt class="varname">bozo</tt> may not be present. Some platforms, such as Mac OS X 10.2 and some versions of FreeBSD, do not include an <acronym title="Extensible Markup Language">XML</acronym> parser in their <span class="application">Python</span> distributions. <span class="application">Universal Feed Parser</span> will still work on these platforms, but it will not be able to detect whether a feed is well-formed. However, it <span class="emphasis"><em>can</em></span> detect whether a feed's character encoding is incorrectly declared. (This is done in <span class="application">Python</span>, not by the <acronym title="Extensible Markup Language">XML</acronym> parser.) See <a href="character-encoding.html" title="Character Encoding Detection">Character Encoding Detection</a> for details.</td></tr>
Modified: trunk/www/docs/reference-bozo_exception.html
==============================================================================
--- trunk/www/docs/reference-bozo_exception.html (original)
+++ trunk/www/docs/reference-bozo_exception.html Tue Mar 11 21:52:50 2008
@@ -28,7 +28,7 @@
<div></div>
</div>
<p>See <a href="bozo.html" title="Bozo Detection">Bozo Detection</a> for more details.</p>
-<a name="id313353"></a><table class="tip" border="0" summary="">
+<a name="id315447"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<tt class="varname">bozo_exception</tt> will only be present if <tt class="varname">bozo</tt> is <tt class="constant">1</tt>.</td></tr>
Modified: trunk/www/docs/reference-encoding.html
==============================================================================
--- trunk/www/docs/reference-encoding.html (original)
+++ trunk/www/docs/reference-encoding.html Tue Mar 11 21:52:50 2008
@@ -27,11 +27,11 @@
</div>
<div></div>
</div>
-<a name="id312843"></a><table class="note" border="0" summary="">
+<a name="id314937"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">The process by which <span class="application">Universal Feed Parser</span> determines the character encoding of the feed is explained in <a href="character-encoding.html" title="Character Encoding Detection">Character Encoding Detection</a>.</td></tr>
</table>
-<a name="id312864"></a><table class="tip" border="0" summary="">
+<a name="id314957"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">This element always exists, although it may be an empty string if the character encoding can not be determined.</td></tr>
</table>
Modified: trunk/www/docs/reference-entry-summary.html
==============================================================================
--- trunk/www/docs/reference-entry-summary.html (original)
+++ trunk/www/docs/reference-entry-summary.html Tue Mar 11 21:52:50 2008
@@ -40,7 +40,7 @@
<h3>See also</h3>
<ul><li><a href="reference-entry-summary_detail.html" title="entries[i].summary_detail">entries[i].summary_detail</a></li></ul>
</div>
-<a name="id307514"></a><table class="note" border="0" summary="">
+<a name="id309594"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Some feeds include both a <tt class="literal">summary</tt> and <tt class="literal">description</tt> element for each entry. In this case, the first element will be available in <tt class="varname">entry['summary']</tt> and the second will be available in <tt class="varname">entry['content'][0]</tt>.</td></tr>
</table>
Modified: trunk/www/docs/reference-entry-tags.html
==============================================================================
--- trunk/www/docs/reference-entry-tags.html (original)
+++ trunk/www/docs/reference-entry-tags.html Tue Mar 11 21:52:50 2008
@@ -34,7 +34,7 @@
<li><tt class="literal">/rdf:RDF/rdf:channel/rdf:item/dc:subject</tt></li>
</ul>
</div>
-<a name="id310082"></a><table class="note" border="0" summary="">
+<a name="id312162"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Prior to version 4.0, <span class="application">Universal Feed Parser</span> exposed categories in <tt class="varname">feed.category</tt> (the primary category) and <tt class="varname">feed.categories</tt> (a list of tuples containing the domain and term of each category). These uses are still supported for backward compatibility, but you will not see them in the parsed results unless you explicitly ask for them.</td></tr>
</table>
Modified: trunk/www/docs/reference-entry.html
==============================================================================
--- trunk/www/docs/reference-entry.html (original)
+++ trunk/www/docs/reference-entry.html Tue Mar 11 21:52:50 2008
@@ -31,7 +31,7 @@
<li><tt class="literal">/rdf:RDF/rdf:item</tt></li>
</ul>
</div>
-<a name="id306376"></a><table class="tip" border="0" summary="">
+<a name="id308456"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">This element always exists, although it may be an empty list.</td></tr>
</table>
Modified: trunk/www/docs/reference-etag.html
==============================================================================
--- trunk/www/docs/reference-etag.html (original)
+++ trunk/www/docs/reference-etag.html Tue Mar 11 21:52:50 2008
@@ -28,7 +28,7 @@
<div></div>
</div>
<p>The purpose of <tt class="varname">etag</tt> is explained more fully in <a href="http-etag.html" title="ETag and Last-Modified Headers">ETag and Last-Modified Headers</a>.</p>
-<a name="id313068"></a><table class="tip" border="0" summary="">
+<a name="id315162"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<tt class="varname">etag</tt> will only be present if the feed was retrieved from a web server, and only if the web server provided an ETag <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header for the feed. If the feed was parsed from a local file or from a string in memory, <tt class="varname">etag</tt> will not be present.</td></tr>
Modified: trunk/www/docs/reference-feed-rights.html
==============================================================================
--- trunk/www/docs/reference-feed-rights.html (original)
+++ trunk/www/docs/reference-feed-rights.html Tue Mar 11 21:52:50 2008
@@ -24,7 +24,7 @@
<div class="abstract"><p>A human-readable copyright statement for the feed.</p></div>
<p>If this contains <acronym title="HyperText Markup Language">HTML</acronym> or <acronym title="Extensible HyperText Markup Language">XHTML</acronym>, it is <a href="html-sanitization.html" title="Sanitization">sanitized</a> by default.</p>
<p>If this contains <acronym title="HyperText Markup Language">HTML</acronym> or <acronym title="Extensible HyperText Markup Language">XHTML</acronym>, certain (X)HTML elements within this value may contain relative <acronym title="Uniform Resource Identifier">URI</acronym>s. If so, they are <a href="resolving-relative-links.html" title="Relative Link Resolution">resolved according to a set of rules</a>.</p>
-<a name="id302857"></a><table class="note" border="0" summary="">
+<a name="id304929"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">For machine-readable copyright information, see <a href="reference-feed-license.html" title="feed.license">feed.license</a>.</td></tr>
</table>
Modified: trunk/www/docs/reference-feed-tags.html
==============================================================================
--- trunk/www/docs/reference-feed-tags.html (original)
+++ trunk/www/docs/reference-feed-tags.html Tue Mar 11 21:52:50 2008
@@ -34,7 +34,7 @@
<li><tt class="literal">/rdf:RDF/rdf:channel/dc:subject</tt></li>
</ul>
</div>
-<a name="id305911"></a><table class="note" border="0" summary="">
+<a name="id307985"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">Prior to version 4.0, <span class="application">Universal Feed Parser</span> exposed categories in <tt class="varname">feed.category</tt> (the primary category) and <tt class="varname">feed.categories</tt> (a list of tuples containing the domain and term of each category). These uses are still supported for backward compatibility, but you will not see them in the parsed results unless you explicitly ask for them.</td></tr>
</table>
Modified: trunk/www/docs/reference-feed-textinput.html
==============================================================================
--- trunk/www/docs/reference-feed-textinput.html (original)
+++ trunk/www/docs/reference-feed-textinput.html Tue Mar 11 21:52:50 2008
@@ -66,7 +66,7 @@
<div class="section" lang="en">
<div class="titlepage">
<div><div><h3 class="title">
-<a name="id305357" class="skip" href="#id305357" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Annotated example</h3></div></div>
+<a name="id307430" class="skip" href="#id307430" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> Annotated example</h3></div></div>
<div></div>
</div>
<p>This is a text input in a feed:</p>
Modified: trunk/www/docs/reference-feed-ttl.html
==============================================================================
--- trunk/www/docs/reference-feed-ttl.html (original)
+++ trunk/www/docs/reference-feed-ttl.html Tue Mar 11 21:52:50 2008
@@ -21,7 +21,7 @@
<a name="reference.feed.ttl" class="skip" href="#reference.feed.ttl" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> feed.ttl</h2></div></div>
<div></div>
</div>
-<div class="abstract"><p>According to the <acronym title="Rich Site Summary">RSS</acronym> specification, "<span class="quote"><tt class="sgmltag-element">ttl</tt> stands for time to live. It's a number of minutes that indicates how long a channel can be cached before refreshing from the source. This makes it possible for RSS sources to be managed by a file-sharing network such as Gnutella.</span>"</p></div>
+<div class="abstract"><p>According to the <acronym title="Rich Site Summary">RSS</acronym> specification, "<span class="quote"><tt class="sgmltag-element">ttl</tt> stands for time to live. It's a number of minutes that indicates how long a channel can be cached before refreshing from the source. This makes it possible for <acronym title="Rich Site Summary">RSS</acronym> sources to be managed by a file-sharing network such as Gnutella.</span>"</p></div>
<p>No one is quite sure what this means, and no one publishes feeds via file-sharing networks.</p>
<p>Some clients have interpreted this element to be some sort of inline caching mechanism, albeit one that completely ignores the underlying <acronym title="Hypertext Transfer Protocol">HTTP</acronym> protocol, its robust caching mechanisms, and the huge amount of <acronym title="Hypertext Transfer Protocol">HTTP</acronym>-savvy network infrastructure that understands them. Given the vague documentation, it is impossible to say that this interpretation is any more ridiculous than the element itself.</p>
<div class="reference-from">
Modified: trunk/www/docs/reference-feed.html
==============================================================================
--- trunk/www/docs/reference-feed.html (original)
+++ trunk/www/docs/reference-feed.html Tue Mar 11 21:52:50 2008
@@ -31,7 +31,7 @@
<li><tt class="literal">/rdf:RDF/rdf:channel</tt></li>
</ul>
</div>
-<a name="id301274"></a><table class="tip" border="0" summary="">
+<a name="id303346"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">This element always exists, although it may be an empty dictionary.</td></tr>
</table>
Modified: trunk/www/docs/reference-headers.html
==============================================================================
--- trunk/www/docs/reference-headers.html (original)
+++ trunk/www/docs/reference-headers.html Tue Mar 11 21:52:50 2008
@@ -27,7 +27,7 @@
</div>
<div></div>
</div>
-<a name="id313189"></a><table class="tip" border="0" summary="">
+<a name="id315283"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<tt class="varname">headers</tt> will only be present if the feed was retrieved from a web server. If the feed was parsed from a local file or from a string in memory, <tt class="varname">headers</tt> will not be present.</td></tr>
Modified: trunk/www/docs/reference-href.html
==============================================================================
--- trunk/www/docs/reference-href.html (original)
+++ trunk/www/docs/reference-href.html Tue Mar 11 21:52:50 2008
@@ -28,7 +28,7 @@
<div></div>
</div>
<p>If the feed was redirected from the original requested address, <tt class="varname">href</tt> will contain the final (redirected) address.</p>
-<a name="id313007"></a><table class="tip" border="0" summary="">
+<a name="id315102"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<tt class="varname">href</tt> will only be present if the feed was retrieved from a web server. If the feed was parsed from a local file or from a string in memory, <tt class="varname">href</tt> will not be present.</td></tr>
Modified: trunk/www/docs/reference-modified.html
==============================================================================
--- trunk/www/docs/reference-modified.html (original)
+++ trunk/www/docs/reference-modified.html Tue Mar 11 21:52:50 2008
@@ -28,7 +28,7 @@
<div></div>
</div>
<p>The purpose of <tt class="varname">modified</tt> is explained more fully in <a href="http-etag.html" title="ETag and Last-Modified Headers">ETag and Last-Modified Headers</a>.</p>
-<a name="id313135"></a><table class="tip" border="0" summary="">
+<a name="id315229"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<tt class="varname">modified</tt> will only be present if the feed was retrieved from a web server, and only if the web server provided a Last-Modified <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header for the feed. If the feed was parsed from a local file or from a string in memory, <tt class="varname">modified</tt> will not be present.</td></tr>
Modified: trunk/www/docs/reference-namespaces.html
==============================================================================
--- trunk/www/docs/reference-namespaces.html (original)
+++ trunk/www/docs/reference-namespaces.html Tue Mar 11 21:52:50 2008
@@ -22,18 +22,18 @@
<a name="reference.namespaces" class="skip" href="#reference.namespaces" title="link to this section"><img src="images/permalink.gif" alt="[link]" title="link to this section" width="8" height="9"></a> namespaces</h2></div>
<div><div class="abstract">
<h3 class="title"></h3>
-<p>A dictionary of all XML namespaces defined in the feed, as <tt class="literal">{prefix: namespaceURI}</tt>.</p>
+<p>A dictionary of all <acronym title="Extensible Markup Language">XML</acronym> namespaces defined in the feed, as <tt class="literal">{prefix: namespaceURI}</tt>.</p>
</div></div>
</div>
<div></div>
</div>
-<a name="id312789"></a><table class="note" border="0" summary="">
+<a name="id314877"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">The prefixes listed in the <tt class="varname">namespaces</tt> dictionary may not match the prefixes defined in the original feed. See <a href="namespace-handling.html" title="Namespace Handling">Namespace Handling</a> for more details.</td></tr>
</table>
-<a name="id312808"></a><table class="tip" border="0" summary="">
+<a name="id314896"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
-<tr><td colspan="2" align="left" valign="top" width="99%">This element always exists, although it may be an empty dictionary if the feed does not define any namespaces (such as an RSS 2.0 feed with no extensions).</td></tr>
+<tr><td colspan="2" align="left" valign="top" width="99%">This element always exists, although it may be an empty dictionary if the feed does not define any namespaces (such as an <acronym title="Rich Site Summary">RSS</acronym> 2.0 feed with no extensions).</td></tr>
</table>
</div>
<div style="float: left">← <a class="NavigationArrow" href="reference-version.html">version</a>
Modified: trunk/www/docs/reference-status.html
==============================================================================
--- trunk/www/docs/reference-status.html (original)
+++ trunk/www/docs/reference-status.html Tue Mar 11 21:52:50 2008
@@ -30,7 +30,7 @@
<p>If the feed was redirected from its original <acronym title="Uniform Resource Locator">URL</acronym>, <tt class="varname">status</tt> will contain the redirect status code, not the final status code.</p>
<p>If <tt class="varname">status</tt> is <tt class="constant">301</tt>, the feed was permanently redirected to a new <acronym title="Uniform Resource Locator">URL</acronym>. Clients should update their address book to request the new <acronym title="Uniform Resource Locator">URL</acronym> from now on.</p>
<p>If <tt class="varname">status</tt> is <tt class="constant">410</tt>, the feed is gone. Clients should stop polling the feed.</p>
-<a name="id312953"></a><table class="tip" border="0" summary="">
+<a name="id315047"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">
<tt class="varname">status</tt> will only be present if the feed was retrieved from a web server. If the feed was parsed from a local file or from a string in memory, <tt class="varname">status</tt> will not be present.</td></tr>
Modified: trunk/www/docs/reference-version.html
==============================================================================
--- trunk/www/docs/reference-version.html (original)
+++ trunk/www/docs/reference-version.html Tue Mar 11 21:52:50 2008
@@ -66,7 +66,7 @@
<dd><a href="
http://diveintomark.org/archives/2004/04/14/hot-rss">Hot <acronym title="Rich Site Summary">RSS</acronym></a></dd>
</dl></div>
<p>If the feed type is completely unknown, <tt class="varname">version</tt> will be an empty string.</p>
-<a name="id312749"></a><table class="tip" border="0" summary="">
+<a name="id314831"></a><table class="tip" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/tip.png" alt="Tip" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">This element always exists, although it may be an empty string if the version can not be determined.</td></tr>
</table>
Modified: trunk/www/docs/reference.html
==============================================================================
--- trunk/www/docs/reference.html (original)
+++ trunk/www/docs/reference.html Tue Mar 11 21:52:50 2008
@@ -9,7 +9,7 @@
<meta name="keywords" content="RSS, Atom, CDF, XML, feed, parser, Python">
<link rel="start" href="index.html" title="Documentation">
<link rel="up" href="index.html" title="Documentation">
-<link rel="prev" href="changes-40.html" title="Changes in version 4.0">
+<link rel="prev" href="changes-30.html" title="Changes in version 3.0 and the 26 betas that preceded it">
<link rel="next" href="reference-feed.html" title="feed">
</head>
<body id="feedparser-org" class="docs">
@@ -113,7 +113,7 @@
<li><span class="section"><a href="reference-feed-textinput.html#reference.feed.textinput.link">feed.textinput.link</a></span></li>
<li><span class="section"><a href="reference-feed-textinput.html#
reference.feed.textinput.name">
feed.textinput.name</a></span></li>
<li><span class="section"><a href="reference-feed-textinput.html#reference.feed.textinput.description">feed.textinput.description</a></span></li>
-<li><span class="section"><a href="reference-feed-textinput.html#id305357">Annotated example</a></span></li>
+<li><span class="section"><a href="reference-feed-textinput.html#id307430">Annotated example</a></span></li>
</ul>
</li>
<li>
@@ -269,7 +269,7 @@
<li><span class="section"><a href="reference-bozo_exception.html">bozo_exception</a></span></li>
</ul></div>
</div>
-<div style="float: left">← <a class="NavigationArrow" href="changes-40.html">Changes in version 4.0</a>
+<div style="float: left">← <a class="NavigationArrow" href="changes-30.html">Changes in version 3.0 and the 26 betas that preceded it</a>
</div>
<div style="text-align: right">
<a class="NavigationArrow" href="reference-feed.html">feed</a> →</div>
Modified: trunk/www/docs/resolving-relative-links.html
==============================================================================
--- trunk/www/docs/resolving-relative-links.html (original)
+++ trunk/www/docs/resolving-relative-links.html Tue Mar 11 21:52:50 2008
@@ -117,7 +117,7 @@
<p>If no <tt class="literal">Content-Location</tt> <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header is present, the <acronym title="Uniform Resource Locator">URL</acronym> used to retrieve the feed itself is the default base <acronym title="Uniform Resource Identifier">URI</acronym> for all relative links within the feed. If the feed was retrieved via an <acronym title="Hypertext Transfer Protocol">HTTP</acronym> redirect (any <acronym title="Hypertext Transfer Protocol">HTTP</acronym> 3xx status code), then the final <acronym title="Uniform Resource Locator">URL</acronym> of the feed is the default base <acronym title="Uniform Resource Identifier">URI</acronym>.</p>
<p>For example, an <tt class="sgmltag-attribute">xml:base</tt> on the root-level element sets the base <acronym title="Uniform Resource Identifier">URI</acronym> for all <acronym title="Uniform Resource Identifier">URI</acronym>s in the feed.</p>
<div class="example">
-<a name="id295284" class="skip" href="#id295284" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: <tt class="sgmltag-attribute">xml:base</tt> on the root-level element</h3>
+<a name="id295288" class="skip" href="#id295288" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: <tt class="sgmltag-attribute">xml:base</tt> on the root-level element</h3>
<pre class="screen"><tt class="prompt">>>> </tt><span class="userinput"><font color='navy'><b>import</b></font> feedparser</span>
<tt class="prompt">>>> </tt><span class="userinput">d = feedparser.parse("<a href="
http://feedparser.org/docs/examples/base.xml">
http://feedparser.org/docs/examples/base.xml</a>")</span>
<tt class="prompt">>>> </tt><span class="userinput">d.feed.link</span>
@@ -127,7 +127,7 @@
</div>
<p>An <tt class="sgmltag-attribute">xml:base</tt> attribute on an <tt class="sgmltag-element"><entry></tt> overrides the <tt class="sgmltag-attribute">xml:base</tt> on the parent <tt class="sgmltag-element"><feed></tt>.</p>
<div class="example">
-<a name="id295372" class="skip" href="#id295372" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: Overriding <tt class="sgmltag-attribute">xml:base</tt> on an <tt class="sgmltag-element"><entry></tt>
+<a name="id295377" class="skip" href="#id295377" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: Overriding <tt class="sgmltag-attribute">xml:base</tt> on an <tt class="sgmltag-element"><entry></tt>
</h3>
<pre class="screen"><tt class="prompt">>>> </tt><span class="userinput"><font color='navy'><b>import</b></font> feedparser</span>
<tt class="prompt">>>> </tt><span class="userinput">d = feedparser.parse("<a href="
http://feedparser.org/docs/examples/base.xml">
http://feedparser.org/docs/examples/base.xml</a>")</span>
@@ -138,7 +138,7 @@
</div>
<p>An <tt class="sgmltag-attribute">xml:base</tt> on <tt class="sgmltag-element"><content></tt> overrides the <tt class="sgmltag-attribute">xml:base</tt> on the parent <tt class="sgmltag-element"><entry></tt>. In addition, whatever the base <acronym title="Uniform Resource Identifier">URI</acronym> is for the <tt class="sgmltag-element"><content></tt> element (whether defined directly on the <tt class="sgmltag-element"><content></tt> element, or inherited from the parent element) is used as the base <acronym title="Uniform Resource Identifier">URI</acronym> for the embedded <acronym title="HyperText Markup Language">HTML</acronym> or <acronym title="Extensible HyperText Markup Language">XHTML</acronym> markup within the <tt class="sgmltag-element">content</tt>.</p>
<div class="example">
-<a name="id295492" class="skip" href="#id295492" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: Relative links within embedded <acronym title="HyperText Markup Language">HTML</acronym>
+<a name="id295497" class="skip" href="#id295497" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: Relative links within embedded <acronym title="HyperText Markup Language">HTML</acronym>
</h3>
<pre class="screen"><tt class="prompt">>>> </tt><span class="userinput"><font color='navy'><b>import</b></font> feedparser</span>
<tt class="prompt">>>> </tt><span class="userinput">d = feedparser.parse("<a href="
http://feedparser.org/docs/examples/base.xml">
http://feedparser.org/docs/examples/base.xml</a>")</span>
@@ -149,7 +149,7 @@
</div>
<p>The <tt class="sgmltag-attribute">xml:base</tt> affects other attributes in the element in which it is declared.</p>
<div class="example">
-<a name="id295555" class="skip" href="#id295555" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: <tt class="sgmltag-attribute">xml:base</tt> and sibling attributes</h3>
+<a name="id295560" class="skip" href="#id295560" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: <tt class="sgmltag-attribute">xml:base</tt> and sibling attributes</h3>
<pre class="screen"><tt class="prompt">>>> </tt><span class="userinput"><font color='navy'><b>import</b></font> feedparser</span>
<tt class="prompt">>>> </tt><span class="userinput">d = feedparser.parse("<a href="
http://feedparser.org/docs/examples/base.xml">
http://feedparser.org/docs/examples/base.xml</a>")</span>
<tt class="prompt">>>> </tt><span class="userinput">d.entries[0].links[1].rel</span>
@@ -159,7 +159,7 @@
</div>
<p>If no <tt class="sgmltag-attribute">xml:base</tt> is specified on the root-level element, the default base <acronym title="Uniform Resource Identifier">URI</acronym> is given in the <tt class="literal">Content-Location</tt> <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header. This can still be overridden by any child element that declares an <tt class="sgmltag-attribute">xml:base</tt> attribute.</p>
<div class="example">
-<a name="id295652" class="skip" href="#id295652" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: <tt class="literal">Content-Location</tt> <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header</h3>
+<a name="id295656" class="skip" href="#id295656" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: <tt class="literal">Content-Location</tt> <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header</h3>
<pre class="screen"><tt class="prompt">>>> </tt><span class="userinput"><font color='navy'><b>import</b></font> feedparser</span>
<tt class="prompt">>>> </tt><span class="userinput">d = feedparser.parse("<a href="
http://feedparser.org/docs/examples/http_base.xml">
http://feedparser.org/docs/examples/http_base.xml</a>")</span>
<tt class="prompt">>>> </tt><span class="userinput">d.feed.link</span>
@@ -169,7 +169,7 @@
</div>
<p>Finally, if no root-level <tt class="sgmltag-attribute">xml:base</tt> is declared, and no <tt class="literal">Content-Location</tt> <acronym title="Hypertext Transfer Protocol">HTTP</acronym> header is present, the <acronym title="Uniform Resource Locator">URL</acronym> of the feed itself is the default base <acronym title="Uniform Resource Identifier">URI</acronym>. Again, this can still be overridden by any element that declares an <tt class="sgmltag-attribute">xml:base</tt> attribute.</p>
<div class="example">
-<a name="id295760" class="skip" href="#id295760" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: Feed <acronym title="Uniform Resource Locator">URL</acronym> as default base <acronym title="Uniform Resource Identifier">URI</acronym>
+<a name="id295765" class="skip" href="#id295765" title="link to this example"><img src="images/permalink.gif" alt="[link]" title="link to this example" width="8" height="9"></a> <h3 class="title">Example: Feed <acronym title="Uniform Resource Locator">URL</acronym> as default base <acronym title="Uniform Resource Identifier">URI</acronym>
</h3>
<pre class="screen"><tt class="prompt">>>> </tt><span class="userinput"><font color='navy'><b>import</b></font> feedparser</span>
<tt class="prompt">>>> </tt><span class="userinput">d = feedparser.parse("<a href="
http://feedparser.org/docs/examples/no_base.xml">
http://feedparser.org/docs/examples/no_base.xml</a>")</span>
Modified: trunk/www/docs/uncommon-atom.html
==============================================================================
--- trunk/www/docs/uncommon-atom.html (original)
+++ trunk/www/docs/uncommon-atom.html Tue Mar 11 21:52:50 2008
@@ -70,7 +70,7 @@
'href': u'
http://www.example.com/movie.mp4',
'length': u'42301'}</span></pre>
</div>
-<a name="id287037"></a><table class="note" border="0" summary="">
+<a name="id287047"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">For more examples of accessing Atom elements, see the annotated examples <a href="annotated-atom10.html" title="Atom 1.0">Atom 1.0</a> and <a href="annotated-atom03.html" title="Atom 0.3">Atom 0.3</a>.</td></tr>
</table>
Modified: trunk/www/docs/uncommon-rss.html
==============================================================================
--- trunk/www/docs/uncommon-rss.html (original)
+++ trunk/www/docs/uncommon-rss.html Tue Mar 11 21:52:50 2008
@@ -74,7 +74,7 @@
'registerprocedure': u'pingMe',
'protocol': u'soap'}</span></pre>
</div>
-<a name="id286754"></a><table class="note" border="0" summary="">
+<a name="id286764"></a><table class="note" border="0" summary="">
<tr><td rowspan="2" align="center" valign="top" width="1%"><img src="images/note.png" alt="Note" title="" width="24" height="24"></td></tr>
<tr><td colspan="2" align="left" valign="top" width="99%">For more examples of accessing <acronym title="Rich Site Summary">RSS</acronym> elements, see the annotated examples: <a href="annotated-rss10.html" title="RSS 1.0">RSS 1.0</a>, <a href="annotated-rss20.html" title="RSS 2.0">RSS 2.0</a>, and <a href="annotated-rss20-dc.html" title="RSS 2.0 with Namespaces">RSS 2.0 with Namespaces</a>.</td></tr>
</table>