of which are not only used for building the navigation, but also to actually tell py.test where docs should be generated. Also cleaned up and fixed the situation regarding relative links in the navigation menu and stylesheet/js paths. --HG-- branch : trunk
50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
""" layout definition for generating api/source documents
|
|
|
|
this is the place where customization can be done
|
|
"""
|
|
|
|
import py
|
|
from py.__.doc import confrest
|
|
from py.__.apigen import linker
|
|
from py.__.doc.conftest import get_apigenpath, get_docpath
|
|
|
|
here = py.magic.autopath().dirpath()
|
|
|
|
class LayoutPage(confrest.PyPage):
|
|
""" this provides the layout and style information """
|
|
|
|
stylesheets = [(here.join('../doc/style.css'), 'style.css'),
|
|
(here.join('style.css'), 'apigen_style.css')]
|
|
scripts = [(here.join('api.js'), 'api.js')]
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
self.nav = kwargs.pop('nav')
|
|
super(LayoutPage, self).__init__(*args, **kwargs)
|
|
self.relpath = self.get_relpath()
|
|
self.project.logo.attr.id = 'logo'
|
|
|
|
def get_relpath(self):
|
|
return linker.relpath(self.targetpath.strpath,
|
|
get_apigenpath().strpath) + '/'
|
|
|
|
def set_content(self, contentel):
|
|
self.contentspace.append(contentel)
|
|
|
|
def fill(self):
|
|
super(LayoutPage, self).fill()
|
|
self.body.insert(0, self.nav)
|
|
|
|
def setup_scripts_styles(self, copyto=None):
|
|
for path, name in self.stylesheets:
|
|
if copyto:
|
|
copyto.join(name).write(path.read())
|
|
self.head.append(py.xml.html.link(type='text/css',
|
|
rel='stylesheet',
|
|
href=self.relpath + name))
|
|
for path, name in self.scripts:
|
|
if copyto:
|
|
copyto.join(name).write(path.read())
|
|
self.head.append(py.xml.html.script(type="text/javascript",
|
|
src=self.relpath + name))
|
|
|