[svn r38650] Added env var for creating relative links to the py lib docs (in the nav bar),
added script to generate py lib's docs and api docs in a subdir in one go. --HG-- branch : trunk
This commit is contained in:
parent
0b575823d0
commit
cb8041a34a
|
@ -31,12 +31,15 @@ class LayoutPage(confrest.PyPage):
|
|||
self.body.insert(0, self.nav)
|
||||
|
||||
def update_menubar_links(self, node):
|
||||
docrelpath = py.std.os.environ.get('APIGEN_DOCRELPATH', '../py/doc')
|
||||
if not docrelpath.endswith('/'):
|
||||
docrelpath += '/'
|
||||
for item in node:
|
||||
if not isinstance(item, py.xml.Tag):
|
||||
continue
|
||||
if (item.__class__.__name__ == 'a' and hasattr(item.attr, 'href')
|
||||
and not item.attr.href.startswith('http://')):
|
||||
item.attr.href = self.relpath + '../py/doc/' + item.attr.href
|
||||
item.attr.href = self.relpath + docrelpath + item.attr.href
|
||||
|
||||
def setup_scripts_styles(self, copyto=None):
|
||||
for path, name in self.stylesheets:
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
""" quick tool to get documentation + apigen docs generated
|
||||
|
||||
given a certain targetpath, apigen docs will be placed in 'apigen',
|
||||
|
||||
user can choose to only build either docs or apigen docs: in this case,
|
||||
the navigation bar will be adjusted
|
||||
"""
|
||||
|
||||
from _findpy import py
|
||||
import py
|
||||
pypath = py.__package__.getpath()
|
||||
|
||||
def run_tests(path, envvars='', args=''):
|
||||
pytestpath = pypath.join('bin/py.test')
|
||||
cmd = ('PYTHONPATH="%s" %s python "%s" %s "%s"' %
|
||||
(pypath.dirpath(), envvars, pytestpath, args, path))
|
||||
print cmd
|
||||
py.process.cmdexec(cmd)
|
||||
|
||||
def build_apigen_docs(targetpath, testargs=''):
|
||||
run_tests(pypath,
|
||||
'APIGEN_TARGET="%s/apigen" APIGEN_DOCRELPATH="../doc/"' % (
|
||||
targetpath,),
|
||||
testargs + ' --apigen="%s/apigen/apigen.py"' % (pypath,))
|
||||
|
||||
def build_docs(targetpath, testargs):
|
||||
docpath = pypath.join('doc')
|
||||
run_tests(docpath, '',
|
||||
testargs + ' --forcegen --apigenrelpath="../apigen/"')
|
||||
topath = targetpath.ensure('doc', dir=True)
|
||||
docpath.copy(topath)
|
||||
|
||||
def build_nav(targetpath, docs=True, api=True):
|
||||
pass
|
||||
|
||||
def build(targetpath, docs=True, api=True, testargs=''):
|
||||
targetpath.ensure(dir=True)
|
||||
if docs:
|
||||
print 'building docs'
|
||||
build_docs(targetpath, testargs)
|
||||
if api:
|
||||
print 'building api'
|
||||
build_apigen_docs(targetpath, testargs)
|
||||
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
if len(sys.argv) == 1:
|
||||
print 'usage: %s <targetdir> [options]'
|
||||
print
|
||||
print ' targetdir: a path to a directory (created if it doesn\'t'
|
||||
print ' exist) where the docs are put'
|
||||
print ' options: options passed to py.test when running the tests'
|
||||
sys.exit(1)
|
||||
targetpath = py.path.local(sys.argv[1])
|
||||
args = ' '.join(sys.argv[2:])
|
||||
build(targetpath, True, True, args)
|
||||
|
Loading…
Reference in New Issue