[Checkins] SVN: Sandbox/pcardune/z3c.recipe.sphinxdoc/ first attempt at a documentation generation buildout recipe that uses sphinx.

Paul Carduner paulcarduner at gmail.com
Sun Apr 27 18:16:59 EDT 2008


Log message for revision 85792:
  first attempt at a documentation generation buildout recipe that uses sphinx.
  It does not really function yet as the conf.py file needed by sphinx seems to be hardcoded so that configuration cannot live separately from the documentation itself.
  

Changed:
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/.installed.cfg
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/CHANGES.txt
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/README.txt
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/bootstrap.py
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/buildout.cfg
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/setup.py
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/__init__.py
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/__init__.py
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/__init__.py
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/default.css
  A   Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/layout.html

-=-
Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/.installed.cfg
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/.installed.cfg	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/.installed.cfg	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,42 @@
+[buildout]
+installed_develop_eggs = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/develop-eggs/z3c.recipe.sphinxdoc.egg-link
+parts = z3c.recipe.tag test
+
+[z3c.recipe.tag]
+__buildout_installed__ = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/bin/build_tags
+__buildout_signature__ = zc.recipe.egg-1.0.0-py2.5.egg setuptools-0.6c8-py2.5.egg zc.buildout-1.0.1-py2.5.egg
+_b = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/bin
+_d = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/develop-eggs
+_e = /home/pcardune/.buildout/eggs
+bin-directory = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/bin
+develop-eggs-directory = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/develop-eggs
+eggs = z3c.recipe.tag
+eggs-directory = /home/pcardune/.buildout/eggs
+executable = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/python/bin/python
+find-links = http://pypi.python.org/simple
+	http://download.zope.org/ppix
+	http://download.zope.org/distribution
+index = http://download.zope.org/zope3.4
+recipe = zc.recipe.egg
+unzip = true
+
+[test]
+__buildout_installed__ = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/parts/test
+	/home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/bin/test
+__buildout_signature__ = zc.recipe.testrunner-1.0.0-py2.5.egg zc.recipe.egg-1.0.0-py2.5.egg setuptools-0.6c8-py2.5.egg zope.testing-3.5.1-py2.5.egg zc.buildout-1.0.1-py2.5.egg zc.buildout-1.0.1-py2.5.egg
+_b = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/bin
+_d = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/develop-eggs
+_e = /home/pcardune/.buildout/eggs
+bin-directory = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/bin
+defaults = ['--exit-with-status', '--tests-pattern', '^f?tests$', '-v']
+develop-eggs-directory = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/develop-eggs
+eggs = z3c.recipe.tag
+eggs-directory = /home/pcardune/.buildout/eggs
+executable = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/python/bin/python
+find-links = http://pypi.python.org/simple
+	http://download.zope.org/ppix
+	http://download.zope.org/distribution
+index = http://download.zope.org/zope3.4
+location = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/parts/test
+recipe = zc.recipe.testrunner
+script = /home/pcardune/Work/Zope/Sandbox-pcardune/z3c.recipe.sphinxdoc/bin/test


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/.installed.cfg
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/CHANGES.txt
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/CHANGES.txt	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/CHANGES.txt	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,8 @@
+=======
+CHANGES
+=======
+
+0.1.0 (unreleased)
+------------------
+
+- Initial release.


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/CHANGES.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/README.txt
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/README.txt	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/README.txt	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,9 @@
+z3c.recipe.sphinxdoc
+====================
+
+Introduction
+------------
+
+How to use this recipe
+----------------------
+


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/README.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/bootstrap.py
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/bootstrap.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/bootstrap.py	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,124 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+"""
+import os, shutil, sys, tempfile, urllib2
+
+join = os.path.join
+py_version = 'python%s.%s' % (sys.version_info[0], sys.version_info[1])
+
+def mkdir(path):
+    if not os.path.exists(path):
+        print 'Creating %s' % path
+        os.makedirs(path)
+
+def symlink(src, dest):
+    if not os.path.exists(dest):
+        os.symlink(src, dest)
+    else:
+        print 'Symlink %s already exists' % dest
+
+
+def rmtree(dir):
+    if os.path.exists(dir):
+        print 'Deleting tree %s' % dir
+        shutil.rmtree(dir)
+
+def make_exe(fn):
+    if os.name == 'posix':
+        oldmode = os.stat(fn).st_mode & 07777
+        newmode = (oldmode | 0555) & 07777
+        os.chmod(fn, newmode)
+
+def make_virtual_python():
+    if os.name != 'posix':
+        print "This script only works on Unix-like platforms, sorry."
+        return
+
+    lib_dir = join('python', 'lib', py_version)
+    inc_dir = join('python', 'include', py_version)
+    bin_dir = join('python', 'bin')
+
+    if sys.executable.startswith(bin_dir):
+        print 'Please use the *system* python to run this script'
+        return
+
+    mkdir('python')
+    prefix = sys.prefix
+    mkdir(lib_dir)
+    stdlib_dir = join(prefix, 'lib', py_version)
+    for fn in os.listdir(stdlib_dir):
+        if fn != 'site-packages':
+            symlink(join(stdlib_dir, fn), join(lib_dir, fn))
+
+    mkdir(join(lib_dir, 'site-packages'))
+
+    mkdir(inc_dir)
+    stdinc_dir = join(prefix, 'include', py_version)
+    for fn in os.listdir(stdinc_dir):
+        symlink(join(stdinc_dir, fn), join(inc_dir, fn))
+
+    if sys.exec_prefix != sys.prefix:
+        exec_dir = join(sys.exec_prefix, 'lib', py_version)
+        for fn in os.listdir(exec_dir):
+            symlink(join(exec_dir, fn), join(lib_dir, fn))
+
+    mkdir(bin_dir)
+    print 'Copying %s to %s' % (sys.executable, bin_dir)
+    py_executable = join(bin_dir, 'python')
+    if sys.executable != py_executable:
+        shutil.copyfile(sys.executable, py_executable)
+        make_exe(py_executable)
+
+
+if __name__ == "__main__":
+    if sys.executable != os.path.abspath('python/bin/python'):
+        make_virtual_python()
+        sys.exit(os.spawnve(
+                os.P_WAIT, 'python/bin/python',
+                ['python/bin/python'] + sys.argv, os.environ))
+
+    tmpeggs = tempfile.mkdtemp()
+
+    ez = {}
+    exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+                         ).read() in ez
+    ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+    import pkg_resources
+
+    cmd = 'from setuptools.command.easy_install import main; main()'
+    if sys.platform == 'win32':
+        cmd = '"%s"' % cmd # work around spawn lamosity on windows
+
+    ws = pkg_resources.working_set
+    assert os.spawnle(
+        os.P_WAIT, sys.executable, sys.executable,
+        '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
+        dict(os.environ,
+             PYTHONPATH=
+             ws.find(pkg_resources.Requirement.parse('setuptools')).location
+             ),
+        ) == 0
+
+    ws.add_entry(tmpeggs)
+    ws.require('zc.buildout')
+    import zc.buildout.buildout
+    zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
+    shutil.rmtree(tmpeggs)


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/bootstrap.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/buildout.cfg
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/buildout.cfg	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/buildout.cfg	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,15 @@
+[buildout]
+index = http://download.zope.org/zope3.4
+develop = .
+parts = z3c.recipe.tag test
+newest = false
+
+[z3c.recipe.tag]
+recipe = zc.recipe.egg
+unzip = true
+eggs = z3c.recipe.tag
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = z3c.recipe.tag
+defaults = ['--exit-with-status', '--tests-pattern', '^f?tests$', '-v']


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/buildout.cfg
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/setup.py
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/setup.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/setup.py	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+##############################################################################
+#
+# Copyright (c) 2007 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Setup for z3c.recipe.sphinxdoc package
+
+$Id$
+"""
+
+# Check python version
+import sys
+if sys.version_info < (2, 4):
+    print >> sys.stderr, '%s: need Python 2.4 or later.' % sys.argv[0]
+    print >> sys.stderr, 'Your python is %s' % sys.version
+    sys.exit(1)
+
+import os
+from setuptools import setup, find_packages
+
+def read(*rnames):
+    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+setup(
+    name="z3c.recipe.sphinxdoc",
+    version='0.1.0dev',
+    author="Paul Carduner",
+    description="Use Sphinx to build documentation for zope.org.",
+    long_description=(read('README.txt')
+                      +'\n\n'+
+                      read('CHANGES.txt')),
+    license="ZPL 2.1",
+    maintainer="Paul Carduner",
+    maintainer_email="zope-dev at zope.org",
+    classifiers=[
+        "Development Status :: 3 - Alpha",
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: Zope Public License",
+        "Operating System :: OS Independent",
+        "Programming Language :: Python"],
+    url='http://pypi.python.org/pypi/z3c.recipe.sphinxdoc/',
+    packages=find_packages('src'),
+    package_dir={'': 'src'},
+    namespace_packages=['z3c','z3c.recipe'],
+    install_requires=['setuptools',
+                      'zc.buildout',
+                      'zc.recipe.egg',
+                      'Sphinx'],
+    entry_points="""
+    [zc.buildout]
+    sphinxdoc = z3c.recipe.sphinxdoc:ZopeOrgSetup
+
+    [console_scripts]
+    sphinxdoc = z3c.recipe.sphinxdoc:runSphinx
+    """,
+    zip_safe=False,
+    include_package_data=True,
+    )


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/setup.py
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/__init__.py
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/__init__.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/__init__.py	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,22 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id$
+"""
+
+# this is a namespace package
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    pass


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/__init__.py
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/__init__.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/__init__.py	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,22 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id$
+"""
+
+# this is a namespace package
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    pass


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/__init__.py
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/__init__.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/__init__.py	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,119 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+
+import os
+import os.path
+from os.path import join, dirname
+import logging
+
+import shutil
+import zc.buildout
+import zc.recipe.egg
+import zc.buildout.easy_install
+import pkg_resources
+
+confPyTemplate = """
+templates_path = ['.templates']
+source_suffix = '.txt'
+master_doc = 'index'
+project = '%(project)s'
+copyright = '%(copyright)s'
+version = '%(version)s'
+release = '%(release)s'
+today_fmt = '%%B %%d, %%Y'
+pygments_style = 'sphinx'
+html_style = 'default.css'
+html_static_path = ['.static']
+html_last_updated_fmt = '%%b %%d, %%Y'
+"""
+
+class ZopeOrgSetup(object):
+
+    def __init__(self, buildout, name, options):
+        self.buildout = buildout
+        self.name = name
+        self.options = options
+        options['script'] = join(buildout['buildout']['bin-directory'],
+                                 options.get('script', self.name))
+        self.egg = zc.recipe.egg.Egg(self.buildout, self.name, self.options)
+
+    def install(self):
+        installed = []
+        eggs, workingSet = self.egg.working_set(('Sphinx',))
+        docs = [workingSet.find(pkg_resources.Requirement.parse(spec)) for spec in eggs]
+
+        # Create parts directory for configuration files.
+        installDir = join(self.buildout['buildout']['parts-directory'], self.name)
+        if not os.path.isdir(installDir):
+            os.mkdir(installDir)
+
+        #for each egg listed as a buildout option, create a configuration space.
+        for doc in docs:
+            projectDir = join(installDir, doc.project_name)
+            if not os.path.isdir(projectDir):
+                os.mkdir(projectDir)
+            installed.append(projectDir)
+            confPyPath = join(projectDir, 'conf.py')
+            confPy = open(confPyPath, 'w')
+            confPy.write(confPyTemplate % {'project':doc.project_name,
+                                           'copyright':'some copyright',
+                                           'version': doc._version,
+                                           'release': doc._version})
+            confPy.close()
+            installed.append(confPyPath)
+
+            recipeDir = dirname(__file__)
+
+            staticDir = join(projectDir, '.static')
+            if not os.path.isdir(staticDir):
+                os.mkdir(staticDir)
+            installed.append(staticDir)
+            shutil.copy(join(recipeDir,'default.css'),
+                        join(staticDir, 'default.css'))
+            installed.append(join(staticDir, 'default.css'))
+
+            templatesDir = join(projectDir, '.templates')
+            if not os.path.isdir(templatesDir):
+                os.mkdir(templatesDir)
+            installed.append(templatesDir)
+            shutil.copy(join(recipeDir,'layout.html'),
+                        join(templatesDir, 'layout.html'))
+            installed.append(join(templatesDir, 'layout.html'))
+
+            buildDir = self.options.get('build-dir',
+                                        os.path.join(projectDir, 'build'))
+            if not os.path.isdir(buildDir):
+                os.mkdir(buildDir)
+
+            installed.extend(zc.buildout.easy_install.scripts(
+                [(self.options['script'],
+                  'sphinx',
+                  'main')],
+                workingSet,
+                self.options['executable'],
+                self.buildout['buildout']['bin-directory'],
+                extra_paths=self.egg.extra_paths,
+                #                arguments = defaults,
+                initialization = "print 'foo'",
+                ))
+
+        return installed
+
+    update = install
+    ## def update(self):
+    ##     logging.getLogger(self.name).info('Updating???')
+
+
+def runSphinx():
+    print "this would be running sphinx."


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/default.css
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/default.css	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/default.css	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,894 @@
+/*custom css*/
+/**
+ * CUSTOMIZED Sphinx Doc Design
+ */
+
+#zope-page-header{
+  background: #f9f9f9;
+  margin: 0px;
+  width: 999px;
+  margin: auto;
+  border-bottom: 1px solid #d3d3d3;
+}
+
+#portal-logo img{
+  border: 0px;
+  margin: 0.5em 0em 0.5em 36px;
+  float: left;
+}
+
+#zope-page-header ul{
+  height: auto;
+  line-height: 4em;
+  display: inline;
+  text-align: center;
+  padding-bottom: .5em;
+  margin-bottom: 10px;
+}
+
+#zope-page-header ul li{
+  display: inline;
+}
+
+#zope-page-header ul li a{
+  padding: 0em 1em;
+  font-weight: bold;
+  border: 1px solid #f9f9f9;
+}
+
+#zope-page-header ul li a:hover{
+  padding: 0em 1em;
+  border: 1px solid #d3d3d3;
+  background: white;
+  color: #333;
+}
+
+#portal-feature{
+  background: white;
+  padding: 0px 140px 0px 50px;
+  width: 809px;
+  margin: auto;
+}
+#portal-feature img{
+  float: left;
+  margin: 1em 0;
+}
+#feature-blurb{
+  height: auto;
+  font-size: 1.8em;
+  padding: 38px 0px  0.5em 250px;
+}
+#feature-blurb p{
+  line-height: 1.2em;
+  margin: 0 0 .75em;
+}
+
+
+body {
+    font: 75% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;
+    background: #474747 url(http://zode01.lovelysystems.com/body_bg.png) repeat-x scroll left top;
+    color: #333;
+    margin: 0;
+    padding: 0;
+}
+
+/* :::: LAYOUT :::: */
+
+div.document {
+    background-color: white;
+    width: 999px;
+    margin: auto;
+}
+
+div.documentwrapper {
+    float: left;
+    width: 100%;
+}
+
+div.bodywrapper {
+    margin: 0 0 0 230px;
+}
+
+div.body {
+    background-color: white;
+    padding: 0 20px 30px 20px;
+    font-size: 110%;
+    margin-top: 25px;
+    width: 557px;
+}
+
+div.sidebarwrapper {
+    margin: 2.7em;
+    width: 190px;
+}
+
+div.sidebar {
+    float: left;
+    font-size: 90%;
+    padding: 0px;
+    margin-left: -100%;
+}
+
+div.clearer {
+    clear: both;
+}
+
+div.footer {
+    color: #fff;
+    width: 100%;
+    padding: 9px 0 9px 0;
+    text-align: center;
+    font-size: 75%;
+}
+
+div.footer a {
+    color: #fff;
+    text-decoration: underline;
+}
+
+div.related {
+    background: #F9F9F9 url(http://zode01.lovelysystems.com/light_grey_horizontal.png) repeat-x scroll left top;
+    border-bottom: 1px solid #d3d3d3;
+    color: #333;
+    width: 999px;
+    margin: auto;
+    height: 30px;
+    line-height: 30px;
+}
+
+div.related h3 {
+    display: none;
+}
+
+div.related ul {
+    margin: 0;
+    padding: 0 0 0 10px;
+    list-style: none;
+}
+
+div.related li {
+    display: inline;
+}
+
+div.related li.right {
+    float: right;
+    margin-right: 5px;
+}
+
+div.related a {
+    color: #86C81B;
+    text-decoration: underline;
+}
+
+/* ::: TOC :::: */
+div.sidebar h3 {
+    background: #333333 url(http://zode01.lovelysystems.com/dark_grey_horizontal.png) repeat-x scroll left bottom;
+    color: white;
+    font-weight: bold;
+    text-align: center;
+    margin: 0px;
+    margin-bottom: -11px;
+    padding: .5em 0em;
+    border: 1px solid #d3d3d3;
+}
+
+div.sidebar h4 {
+    color: #333;
+    font-size: 120%;
+    font-weight: bold;
+    margin: 5px 0 0 0;
+    padding: 0;
+}
+
+div.sidebar p {
+    color: #333;
+}
+
+div.sidebar p.topless {
+    margin: 5px 10px 10px 10px;
+}
+
+div.sidebar form,
+div.sidebar ul {
+    border: 1px solid #d3d3d3;
+    padding: 10px;
+    list-style: none;
+    color: #333;
+}
+div.sidebar > ul {
+    width: 188px;
+}
+
+div.sidebar ul ul,
+div.sidebar ul.want-points {
+    border: 0px;
+    margin-left: 20px;
+    list-style: square;
+    padding-top: 5px;
+}
+
+div.sidebar ul ul {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+div.sidebar ul ul li{
+    margin: 5px 0px 5px 0px;;
+}
+
+div.sidebar a {
+    color: #86C81B;
+}
+
+div.sidebar form {
+    margin-top: 10px;
+}
+
+div.sidebar input {
+    border: 1px solid #98dbcc;
+    font-family: sans-serif;
+    font-size: 1em;
+}
+
+/* :::: MODULE CLOUD :::: */
+div.modulecloud {
+    margin: -5px 10px 5px 10px;
+    padding: 10px;
+    line-height: 160%;
+    border: 1px solid #cbe7e5;
+    background-color: #f2fbfd;
+}
+
+div.modulecloud a {
+    padding: 0 5px 0 5px;
+}
+
+/* :::: SEARCH :::: */
+ul.search {
+    margin: 10px 0 0 20px;
+    padding: 0;
+}
+
+ul.search li {
+    padding: 5px 0 5px 20px;
+    background-image: url(file.png);
+    background-repeat: no-repeat;
+    background-position: 0 7px;
+}
+
+ul.search li a {
+    font-weight: bold;
+}
+
+ul.search li div.context {
+    color: #888;
+    margin: 2px 0 0 30px;
+    text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+    font-weight: bold;
+}
+
+/* :::: COMMON FORM STYLES :::: */
+
+div.actions {
+    padding: 5px 10px 5px 10px;
+    border-top: 1px solid #cbe7e5;
+    border-bottom: 1px solid #cbe7e5;
+    background-color: #e0f6f4;
+}
+
+form dl {
+    color: #333;
+}
+
+form dt {
+    clear: both;
+    float: left;
+    min-width: 110px;
+    margin-right: 10px;
+    padding-top: 2px;
+}
+
+input#homepage {
+    display: none;
+}
+
+div.error {
+    margin: 5px 20px 0 0;
+    padding: 5px;
+    border: 1px solid #d00;
+    font-weight: bold;
+}
+
+/* :::: INLINE COMMENTS :::: */
+
+div.inlinecomments {
+    position: absolute;
+    right: 20px;
+}
+
+div.inlinecomments a.bubble {
+    display: block;
+    float: right;
+    background-image: url(style/comment.png);
+    background-repeat: no-repeat;
+    width: 25px;
+    height: 25px;
+    text-align: center;
+    padding-top: 3px;
+    font-size: 0.9em;
+    line-height: 14px;
+    font-weight: bold;
+    color: black;
+}
+
+div.inlinecomments a.bubble span {
+    display: none;
+}
+
+div.inlinecomments a.emptybubble {
+    background-image: url(style/nocomment.png);
+}
+
+div.inlinecomments a.bubble:hover {
+    background-image: url(style/hovercomment.png);
+    text-decoration: none;
+    color: #3ca0a4;
+}
+
+div.inlinecomments div.comments {
+    float: right;
+    margin: 25px 5px 0 0;
+    max-width: 50em;
+    min-width: 30em;
+    border: 1px solid #2eabb0;
+    background-color: #f2fbfd;
+    z-index: 150;
+}
+
+div#comments {
+    border: 1px solid #2eabb0;
+    margin-top: 20px;
+}
+
+div#comments div.nocomments {
+    padding: 10px;
+    font-weight: bold;
+}
+
+div.inlinecomments div.comments h3,
+div#comments h3 {
+    margin: 0;
+    padding: 0;
+    background-color: #2eabb0;
+    color: white;
+    border: none;
+    padding: 3px;
+}
+
+div.inlinecomments div.comments div.actions {
+    padding: 4px;
+    margin: 0;
+    border-top: none;
+}
+
+div#comments div.comment {
+    margin: 10px;
+    border: 1px solid #2eabb0;
+}
+
+div.inlinecomments div.comment h4,
+div.commentwindow div.comment h4,
+div#comments div.comment h4 {
+    margin: 10px 0 0 0;
+    background-color: #2eabb0;
+    color: white;
+    border: none;
+    padding: 1px 4px 1px 4px;
+}
+
+div#comments div.comment h4 {
+    margin: 0;
+}
+
+div#comments div.comment h4 a {
+    color: #d5f4f4;
+}
+
+div.inlinecomments div.comment div.text,
+div.commentwindow div.comment div.text,
+div#comments div.comment div.text {
+    margin: -5px 0 -5px 0;
+    padding: 0 10px 0 10px;
+}
+
+div.inlinecomments div.comment div.meta,
+div.commentwindow div.comment div.meta,
+div#comments div.comment div.meta {
+    text-align: right;
+    padding: 2px 10px 2px 0;
+    font-size: 95%;
+    color: #538893;
+    border-top: 1px solid #cbe7e5;
+    background-color: #e0f6f4;
+}
+
+div.commentwindow {
+    position: absolute;
+    width: 500px;
+    border: 1px solid #cbe7e5;
+    background-color: #f2fbfd;
+    display: none;
+    z-index: 130;
+}
+
+div.commentwindow h3 {
+    margin: 0;
+    background-color: #2eabb0;
+    color: white;
+    border: none;
+    padding: 5px;
+    font-size: 1.5em;
+    cursor: pointer;
+}
+
+div.commentwindow div.actions {
+    margin: 10px -10px 0 -10px;
+    padding: 4px 10px 4px 10px;
+    color: #538893;
+}
+
+div.commentwindow div.actions input {
+    border: 1px solid #2eabb0;
+    background-color: white;
+    color: #135355;
+    cursor: pointer;
+}
+
+div.commentwindow div.form {
+    padding: 0 10px 0 10px;
+}
+
+div.commentwindow div.form input,
+div.commentwindow div.form textarea {
+    border: 1px solid #3c9ea2;
+    background-color: white;
+    color: black;
+}
+
+div.commentwindow div.error {
+    margin: 10px 5px 10px 5px;
+    background-color: #fbe5dc;
+    display: none;
+}
+
+div.commentwindow div.form textarea {
+    width: 99%;
+}
+
+div.commentwindow div.preview {
+    margin: 10px 0 10px 0;
+    background-color: #70d0d4;
+    padding: 0 1px 1px 25px;
+}
+
+div.commentwindow div.preview h4 {
+    margin: 0 0 -5px -20px;
+    padding: 4px 0 0 4px;
+    color: white;
+    font-size: 1.3em;
+}
+
+div.commentwindow div.preview div.comment {
+    background-color: #f2fbfd;
+}
+
+div.commentwindow div.preview div.comment h4 {
+    margin: 10px 0 0 0!important;
+    padding: 1px 4px 1px 4px!important;
+    font-size: 1.2em;
+}
+
+/* :::: SUGGEST CHANGES :::: */
+div#suggest-changes-box input, div#suggest-changes-box textarea {
+    border: 1px solid #ccc;
+    background-color: white;
+    color: black;
+}
+
+div#suggest-changes-box textarea {
+    width: 99%;
+    height: 400px;
+}
+
+
+/* :::: PREVIEW :::: */
+div.preview { 
+    background-image: url(style/preview.png);
+    padding: 0 20px 20px 20px;
+    margin-bottom: 30px;
+}
+
+
+/* :::: INDEX PAGE :::: */
+
+table.contentstable {
+    width: 90%;
+}
+
+table.contentstable p.biglink {
+    line-height: 150%;
+}
+
+a.biglink {
+    font-size: 1.3em;
+}
+
+span.linkdescr {
+    font-style: italic;
+    padding-top: 5px;
+    font-size: 90%;
+}
+
+/* :::: INDEX STYLES :::: */
+
+table.indextable td {
+    text-align: left;
+    vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+    margin-top: 0;
+    margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+    height: 10px;
+}
+
+table.indextable tr.cap {
+    margin-top: 10px;
+    background-color: #f2f2f2;
+}
+
+img.toggler {
+    margin-right: 3px;
+    margin-top: 3px;
+    cursor: pointer;
+}
+
+form.pfform {
+    margin: 10px 0 20px 0;
+}
+
+/* :::: GLOBAL STYLES :::: */
+
+.docwarning {
+    background-color: #ffe4e4;
+    padding: 10px;
+    margin: 0 -20px 0 -20px;
+    border-bottom: 1px solid #f66;
+}
+
+p.subhead {
+    font-weight: bold;
+    margin-top: 20px;
+}
+
+a {
+    color: #86C81B;
+    text-decoration: underline;
+}
+
+a:hover {
+    background: #2375bb;
+    color: white;
+    text-decoration: none;
+}
+
+div.body h1,
+div.body h2,
+div.body h3,
+div.body h4,
+div.body h5,
+div.body h6 {
+    font-weight: bold;
+    color: #333;
+    margin: 20px -20px 10px -20px;
+    padding: 3px 0 3px 10px;
+}
+
+div.body h1 {
+    margin-top: 0;
+    font-size: 120%;
+    font-weight: bold;
+}
+div.body h2 { font-size: 115%; }
+div.body h3 { font-size: 130%; }
+div.body h4 { font-size: 120%; }
+div.body h5 { font-size: 110%; }
+div.body h6 { font-size: 100%; }
+
+a.headerlink {
+    color: #c60f0f;
+    font-size: 0.8em;
+    padding: 0 4px 0 4px;
+    text-decoration: none;
+    visibility: hidden;
+}
+
+h1:hover > a.headerlink,
+h2:hover > a.headerlink,
+h3:hover > a.headerlink,
+h4:hover > a.headerlink,
+h5:hover > a.headerlink,
+h6:hover > a.headerlink,
+dt:hover > a.headerlink {
+    visibility: visible;
+}
+
+a.headerlink:hover {
+    background-color: #c60f0f;
+    color: white;
+}
+
+div.body p, div.body dd, div.body li {
+    text-align: justify;
+    line-height: 130%;
+}
+
+div.body td {
+    text-align: left;
+}
+
+ul.fakelist {
+    list-style: none;
+    margin: 10px 0 10px 20px;
+    padding: 0;
+}
+
+/* "Footnotes" heading */
+p.rubric {
+    margin-top: 30px;
+    font-weight: bold;
+}
+
+/* "Topics" */
+
+div.topic {
+    background-color: #eee;
+    border: 1px solid #ccc;
+    padding: 0 7px 0 7px;
+    margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+    font-size: 1.1em;
+    font-weight: bold;
+    margin-top: 10px;
+}
+
+/* Admonitions */
+
+div.admonition {
+    margin-top: 10px;
+    margin-bottom: 10px;
+    padding: 7px;
+}
+
+div.admonition dt {
+    font-weight: bold;
+}
+
+div.admonition dl {
+    margin-bottom: 0;
+}
+
+div.admonition p {
+    display: inline;
+}
+
+div.seealso {
+    background-color: #ffc;
+    border: 1px solid #ff6;
+}
+
+div.warning {
+    background-color: #ffe4e4;
+    border: 1px solid #f66;
+}
+
+div.note {
+    background-color: #eee;
+    border: 1px solid #ccc;
+}
+
+p.admonition-title {
+    margin: 0px 10px 5px 0px;
+    font-weight: bold;
+    display: inline;
+}
+
+p.admonition-title:after {
+    content: ":";
+}
+
+div.body p.centered {
+    text-align: center;
+    margin-top: 25px;
+}
+
+table.docutils {
+    border: 0;
+}
+
+table.docutils td, table.docutils th {
+    padding: 1px 8px 1px 0;
+    border-top: 0;
+    border-left: 0;
+    border-right: 0;
+    border-bottom: 1px solid #aaa;
+}
+
+table.field-list td, table.field-list th {
+    border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+    border: 0 !important;
+}
+
+dl {
+    margin-bottom: 15px;
+    clear: both;
+}
+
+dd p {
+    margin-top: 0px;
+}
+
+dd ul, dd table {
+    margin-bottom: 10px;
+}
+
+dd {
+    margin-top: 3px;
+    margin-bottom: 10px;
+    margin-left: 30px;
+}
+
+.refcount {
+    color: #060;
+}
+
+dt:target,
+.highlight {
+    background-color: #fbe54e;
+}
+
+dl.glossary dt {
+    font-weight: bold;
+    font-size: 1.1em;
+}
+
+th {
+    text-align: left;
+    padding-right: 5px;
+}
+
+pre {
+    padding: 5px;
+    background-color: #efc;
+    color: #333;
+    border: 1px solid #ac9;
+    border-left: none;
+    border-right: none;
+}
+
+td.linenos pre {
+    padding: 0;
+    border: 0;
+    background-color: transparent;
+    color: #aaa;
+}
+
+table.highlighttable {
+    margin-left: 0.5em;
+}
+
+table.highlighttable td {
+    padding: 0 0.5em 0 0.5em;
+}
+
+tt {
+    background-color: #ecf0f3;
+    padding: 0 1px 0 1px;
+    font-size: 0.95em;
+}
+
+tt.descname {
+    background-color: transparent;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+tt.descclassname {
+    background-color: transparent;
+}
+
+tt.xref, a tt {
+    background-color: transparent;
+    font-weight: bold;
+}
+
+.footnote:target  { background-color: #ffa }
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+    background-color: transparent;
+}
+
+.optional {
+    font-size: 1.3em;
+}
+
+.versionmodified {
+    font-style: italic;
+}
+
+form.comment {
+    margin: 0;
+    padding: 10px 30px 10px 30px;
+    background-color: #eee;
+}
+
+form.comment h3 {
+    background-color: #326591;
+    color: white;
+    margin: -10px -30px 10px -30px;
+    padding: 5px;
+    font-size: 1.4em;
+}
+
+form.comment input,
+form.comment textarea {
+    border: 1px solid #ccc;
+    padding: 2px;
+    font-family: sans-serif;
+    font-size: 100%;
+}
+
+form.comment input[type="text"] {
+    width: 240px;
+}
+
+form.comment textarea {
+    width: 100%;
+    height: 200px;
+    margin-bottom: 10px;
+}
+
+.system-message {
+    background-color: #fda;
+    padding: 5px;
+    border: 3px solid red;
+}
+
+/* :::: PRINT :::: */
+ at media print {
+    div.document, 
+    div.documentwrapper, 
+    div.bodywrapper {
+        margin: 0;
+        width : 100%;
+    }
+
+    div.sidebar,
+    div.related,
+    div.footer,
+    div#comments div.new-comment-box,
+    #top-link {
+        display: none;
+    }
+}


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/default.css
___________________________________________________________________
Name: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/layout.html
===================================================================
--- Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/layout.html	                        (rev 0)
+++ Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/layout.html	2008-04-27 22:16:54 UTC (rev 85792)
@@ -0,0 +1,167 @@
+{%- include "macros.html" %}
+{%- block doctype -%}
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+  "http://www.w3.org/TR/html4/loose.dtd">
+{%- endblock %}
+{%- macro relbar %}
+{# this macro needs to stay in layout.html due to it containing blocks #}
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px"><a href="{{ pathto('genindex') }}" title="General Index" accesskey="I">index</a></li>
+        {%- if use_modindex %}
+        <li class="right"><a href="{{ pathto('modindex') }}" title="Global Module Index" accesskey="M">modules</a> |</li>
+        {%- endif %}
+        {%- if next %}
+          <li class="right"><a href="{{ next.link|e }}" title="{{ next.title|striptags }}" accesskey="N">next</a> |</li>
+        {%- endif %}
+        {%- if prev %}
+          <li class="right"><a href="{{ prev.link|e }}" title="{{ prev.title|striptags }}" accesskey="P">previous</a> |</li>
+        {%- endif %}
+        {%- if builder == 'web' %}
+          <li class="right"><a href="{{ pathto('settings') }}"
+                               title="Customize your viewing settings" accesskey="S">settings</a> |</li>
+        {%- endif %}
+        {%- block rootrellink %}
+        <li><a href="{{ pathto('index') }}">{{ project }} v{{ release }} documentation</a> &raquo;</li>
+        {%- endblock %}
+        {%- for parent in parents %}
+          <li><a href="{{ parent.link|e }}" accesskey="U">{{ parent.title }}</a> &raquo;</li>
+        {%- endfor %}
+        {%- block relbaritems %}{% endblock %}
+      </ul>
+    </div>
+{%- endmacro %}
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    {%- if builder != 'htmlhelp' %}
+      {%- set titlesuffix = " &mdash; " + project + " Documentation" %}
+    {%- endif %}
+    <title>{{ title|striptags }}{{ titlesuffix }}</title>
+    {%- if builder == 'web' %}
+    <link rel="stylesheet" href="{{ pathto('index') }}?do=stylesheet{%
+      if in_admin_panel %}&admin=yes{% endif %}" type="text/css">
+    {%- for link, type, title in page_links %}
+    <link rel="alternate" type="{{ type|e(true) }}" title="{{ title|e(true) }}" href="{{ link|e(true) }}">
+    {%- endfor %}
+    {%- else %}
+    <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css">
+    <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css">
+    {%- endif %}
+    {%- if builder != 'htmlhelp' %}
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+        URL_ROOT:   '{{ pathto("", 1) }}',
+        VERSION:    '{{ release }}'
+      };
+    </script>
+    <script type="text/javascript" src="{{ pathto('_static/jquery.js', 1) }}"></script>
+    <script type="text/javascript" src="{{ pathto('_static/interface.js', 1) }}"></script>
+    <script type="text/javascript" src="{{ pathto('_static/doctools.js', 1) }}"></script>
+    {%- endif %}
+{%- block rellinks %}
+    {%- if hasdoc('about') %}
+    <link rel="author" title="About these documents" href="{{ pathto('about') }}">
+    {%- endif %}
+    <link rel="contents" title="Global table of contents" href="{{ pathto('contents') }}">
+    <link rel="index" title="Global index" href="{{ pathto('genindex') }}">
+    <link rel="search" title="Search" href="{{ pathto('search') }}">
+    {%- if hasdoc('copyright') %}
+    <link rel="copyright" title="Copyright" href="{{ pathto('copyright') }}">
+    {%- endif %}
+    <link rel="top" title="{{ project }} Documentation" href="{{ pathto('index') }}">
+    {%- if parents %}
+    <link rel="up" title="{{ parents[-1].title|striptags }}" href="{{ parents[-1].link|e }}">
+    {%- endif %}
+    {%- if next %}
+    <link rel="next" title="{{ next.title|striptags }}" href="{{ next.link|e }}">
+    {%- endif %}
+    {%- if prev %}
+    <link rel="prev" title="{{ prev.title|striptags }}" href="{{ prev.link|e }}">
+    {%- endif %}
+{%- endblock %}
+{%- block extrahead %}{% endblock %}
+  </head>
+  <body>
+    <div id="zope-page-header">
+      <a href="http://zode01.lovelysystems.com" accesskey="1" id="portal-logo">
+	<img width="110" height="36" title="" alt="" src="http://zode01.lovelysystems.com/logo.png"/>
+      </a>
+	
+      <ul id="portal-globalnav">
+	<li class="plain" id="portaltab-index_html">
+	  <a title="" href="http://zode01.lovelysystems.com">Home</a>
+	</li>
+	<li class="plain" id="portaltab-get-started">
+	  <a title="Get Zope" href="http://zode01.lovelysystems.com/get-started">Get started</a>
+	</li>
+	<li class="plain" id="portaltab-examples">
+	  <a title="See what Zope is all about" href="http://zode01.lovelysystems.com/examples">Examples</a>
+	</li>
+	<li class="selected" id="portaltab-projects">
+	  <a title="Learn how to use Zope" href="http://zode01.lovelysystems.com/projects">Projects</a>
+	</li>
+	  <li class="plain" id="portaltab-community">
+	    <a title="All about the Zope community" href="http://zode01.lovelysystems.com/community">Community</a>
+	  </li>
+	  <li class="plain" id="portaltab-foundation">
+	    <a title="All about the Zope Foundation" href="http://zode01.lovelysystems.com/foundation">Foundation</a>
+	  </li>
+      </ul>
+    </div>
+    <div id="portal-feature">
+      <img class="featureImage" title="Projects" alt="Projects" src="http://zode01.lovelysystems.com/home/image_mini"/>
+      <div id="feature-blurb">
+	<p>Zope 3 has lots of documentation embedded in the source code, in the form of doctests, which is sometimes hard to find.</p>
+	<p>Here you can easily browse and search through the documentation.<br />&nbsp;</p>
+      </div>
+    </div>
+{%- block beforerelbar %}{% endblock %}
+{%- block relbar1 %}{{ relbar() }}{% endblock %}
+{%- block afterrelbar %}{% endblock %}
+
+{%- block beforesidebar1 %}{% endblock %}
+{%- block sidebar1 %}{# possible location for sidebar #}{% endblock %}
+{%- block aftersidebar1 %}{% endblock %}
+
+{%- block beforedocument %}
+{% endblock %}
+    <div class="document">
+      <div class="documentwrapper">
+      {%- if builder != 'htmlhelp' %}
+        <div class="bodywrapper">
+      {%- endif %}
+          <div class="body">
+            {% block body %}{% endblock %}
+          </div>
+      {%- if builder != 'htmlhelp' %}
+        </div>
+      {%- endif %}
+      </div>
+{%- block afterdocument %}{% endblock %}
+
+{%- block beforesidebar2 %}{% endblock %}
+{%- block sidebar2 %}{{ sidebar() }}{% endblock %}
+{%- block aftersidebar2 %}{% endblock %}
+      <div class="clearer"></div>
+    </div>
+
+{%- block relbar2 %}{{ relbar() }}{% endblock %}
+
+{%- block beforefooter %}{% endblock %}
+{%- block footer %}
+    <div class="footer">
+    {%- if hasdoc('copyright') %}
+      &copy; <a href="{{ pathto('copyright') }}">Copyright</a> {{ copyright }}.
+    {%- else %}
+      &copy; Copyright {{ copyright }}.
+    {%- endif %}
+    {%- if last_updated %}
+      Last updated on {{ last_updated }}.
+    {%- endif %}
+    </div>
+{%- endblock %}
+{%- block afterfooter %}{% endblock %}
+  </body>
+</html>


Property changes on: Sandbox/pcardune/z3c.recipe.sphinxdoc/src/z3c/recipe/sphinxdoc/layout.html
___________________________________________________________________
Name: svn:eol-style
   + native



More information about the Checkins mailing list