summaryrefslogtreecommitdiffstats
path: root/render.py
diff options
context:
space:
mode:
authoryves <steve.harrison@gmx.net>2013-08-15 12:01:23 +0200
committeryves <steve.harrison@gmx.net>2013-08-15 12:01:23 +0200
commit18d2e7074f053fb3ba5890795988b9f3b2769606 (patch)
tree584808f0a3e0b5364fbf56ab35481efda1e7fafc /render.py
parent9159492e38a46a36a861600427f0589f2c4ec180 (diff)
downloadwww-18d2e7074f053fb3ba5890795988b9f3b2769606.tar.gz
www-18d2e7074f053fb3ba5890795988b9f3b2769606.tar.bz2
www-18d2e7074f053fb3ba5890795988b9f3b2769606.zip
add rendering for dokuwiki
Diffstat (limited to 'render.py')
-rw-r--r--render.py26
1 files changed, 20 insertions, 6 deletions
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 = []