[Checkins] SVN: zope.app.apidoc/trunk/ Improved static apidoc to
create standalone static apidoc.
Julian Bonilla
gator99 at gmail.com
Wed Sep 26 13:08:54 EDT 2007
Log message for revision 80118:
Improved static apidoc to create standalone static apidoc.
Changed:
U zope.app.apidoc/trunk/buildout.cfg
U zope.app.apidoc/trunk/setup.py
U zope.app.apidoc/trunk/src/zope/app/apidoc/static.py
U zope.app.apidoc/trunk/src/zope/app/apidoc/utilities.py
-=-
Modified: zope.app.apidoc/trunk/buildout.cfg
===================================================================
--- zope.app.apidoc/trunk/buildout.cfg 2007-09-26 16:46:16 UTC (rev 80117)
+++ zope.app.apidoc/trunk/buildout.cfg 2007-09-26 17:08:54 UTC (rev 80118)
@@ -1,9 +1,13 @@
[buildout]
develop = .
-parts = test
+parts = test static-apidoc
find-links = http://download.zope.org/distribution/
[test]
recipe = zc.recipe.testrunner
defaults = ['--tests-pattern', '^f?tests$']
eggs = zope.app.apidoc [test]
+
+[static-apidoc]
+recipe = zc.recipe.egg
+eggs = zope.app.apidoc
\ No newline at end of file
Modified: zope.app.apidoc/trunk/setup.py
===================================================================
--- zope.app.apidoc/trunk/setup.py 2007-09-26 16:46:16 UTC (rev 80117)
+++ zope.app.apidoc/trunk/setup.py 2007-09-26 17:08:54 UTC (rev 80118)
@@ -70,6 +70,9 @@
static=['mechanize'],
),
include_package_data = True,
-
+ entry_points = """
+ [console_scripts]
+ static-apidoc = zope.app.apidoc.static:main
+ """,
zip_safe = False,
)
Modified: zope.app.apidoc/trunk/src/zope/app/apidoc/static.py
===================================================================
--- zope.app.apidoc/trunk/src/zope/app/apidoc/static.py 2007-09-26 16:46:16 UTC (rev 80117)
+++ zope.app.apidoc/trunk/src/zope/app/apidoc/static.py 2007-09-26 17:08:54 UTC (rev 80118)
@@ -118,6 +118,11 @@
class OnlineBrowser(mechanize.Browser, object):
+ def __init__(self, factory=None, history=None, request_class=None):
+ if factory == None:
+ factory = ApiDocDefaultFactory()
+ mechanize.Browser.__init__(self, factory, history, request_class)
+
def setUserAndPassword(self, user, pw):
"""Specify the username and password to use for the retrieval."""
hash = base64.encodestring(user+':'+pw).strip()
@@ -339,7 +344,36 @@
# files.
self.browser.close()
+class ApiDocDefaultFactory(mechanize._html.DefaultFactory):
+ """Based on sgmllib."""
+ def __init__(self, i_want_broken_xhtml_support=False):
+ mechanize._html.Factory.__init__(
+ self,
+ forms_factory=mechanize._html.FormsFactory(),
+ links_factory=ApiDocLinksFactory(),
+ title_factory=mechanize._html.TitleFactory(),
+ is_html_p=mechanize._html.make_is_html(allow_xhtml=i_want_broken_xhtml_support),
+ )
+class ApiDocLinksFactory(mechanize._html.LinksFactory):
+
+ def __init__(self,
+ link_parser_class=None,
+ link_class=Link,
+ urltags=None,
+ ):
+ if urltags is None:
+
+ urltags = {
+ "a": "href",
+ "area": "href",
+ "frame": "src",
+ "iframe": "src",
+ "link": "href",
+ "script": "src",
+ }
+ mechanize._html.LinksFactory.__init__(self, link_parser_class, link_class, urltags)
+
###############################################################################
# Command-line UI
Modified: zope.app.apidoc/trunk/src/zope/app/apidoc/utilities.py
===================================================================
--- zope.app.apidoc/trunk/src/zope/app/apidoc/utilities.py 2007-09-26 16:46:16 UTC (rev 80117)
+++ zope.app.apidoc/trunk/src/zope/app/apidoc/utilities.py 2007-09-26 17:08:54 UTC (rev 80118)
@@ -17,6 +17,7 @@
"""
__docformat__ = 'restructuredtext'
+import cgi
import re
import sys
import types
@@ -324,6 +325,11 @@
text = dedentString(text)
+ if not isinstance(text, unicode):
+ text = text.decode('latin-1', 'replace')
+ # We need to escape all HTML
+ text = cgi.escape(text)
source = createObject(format, text)
+
renderer = getMultiAdapter((source, TestRequest()))
return renderer.render()
More information about the Checkins
mailing list