From 18d2e7074f053fb3ba5890795988b9f3b2769606 Mon Sep 17 00:00:00 2001 From: yves Date: Thu, 15 Aug 2013 12:01:23 +0200 Subject: add rendering for dokuwiki --- render.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'render.py') diff --git a/render.py b/render.py index 65181c8..236ae0c 100644 --- a/render.py +++ b/render.py @@ -7,17 +7,19 @@ import optparse from utils import filters, tests, globals class Renderer: - def __init__(self, output_dir): + def __init__(self, output_dir, format): template_dir = os.path.join( os.path.dirname(os.path.abspath(os.path.realpath(__file__))), 'templates') self.env = jinja2.Environment( + trim_blocks = format == "dokuwiki", loader = jinja2.FileSystemLoader(template_dir)) self.env.filters.update(filters) self.env.tests.update(tests) self.env.globals.update(globals) self.output_dir = output_dir self.templates = {} + self.format = format def _render(self, template, filename, **kwargs): if template not in self.templates: @@ -27,13 +29,14 @@ class Renderer: output.write(self.templates[template].render(**kwargs)) def host(self, host, hostdata): - print("Rendering: %s" % host) - hostdata['url'] = "%s.html" % host - self._render('host.html', hostdata['url'], **hostdata) + print("Rendering: %s" % (host)) + hostdata['url'] = "%s.%s" % (host, self.format) + self._render('host.%s' % (self.format), hostdata['url'], **hostdata) def index(self, data): + indexpage = "index.%s" % (self.format) print("Rendering: index") - self._render('index.html', 'index.html', hosts=data) + self._render(indexpage, indexpage, hosts=data) def load_yaml(*args): with open(os.path.join(*args)) as infile: @@ -46,17 +49,28 @@ def main(): "-o", "--output", help="write rendered hostinfo files DEST_DIR", metavar="DEST_DIR", + type="string", default=os.path.join(basename,"htdocs")) optparser.add_option( "-s", "--source", help="read yaml encoded hostinfo data from SRC_DIR", metavar="SRC_DIR", + type="string", default=os.path.join(basename,"data")) + optparser.add_option( + "-f", "--format", + help="output format that is produce: html or dokuwiki" + "[default: %default]", + type="choice", + choices=["html", "dokuwiki"], + default="html" + ) + (options, _ ) = optparser.parse_args() - renderer = Renderer(options.output) + renderer = Renderer(options.output, options.format) hosts = load_yaml(options.source, "metadata", "hosts") data = [] -- cgit v1.2.3-1-g7c22