Mercurial > projects > dil
view trunk/src/docgen/templates/writer.d @ 444:0bda71dc9c4f
More document template and source listing code.
author | Jari-Matti M?kel? <jmjm@iki.fi> |
---|---|
date | Wed, 17 Oct 2007 03:12:46 +0300 |
parents | |
children | 49f3afd6a0e8 |
line wrap: on
line source
/** * Author: Jari-Matti Mäkelä * License: GPL3 */ module docgen.templates.writer; public import docgen.misc.misc; import tango.io.model.IConduit : OutputStream, InputStream; import tango.util.time.Date; import tango.util.time.Clock; import tango.text.convert.Sprint; struct TemplateOptions { DocFormat docFormat; char[] title = "Test project"; char[] versionString = "1.0"; char[] copyright; char[] paperSize = "a4paper"; bool literateStyle = true; } interface TemplateWriter { void generateTemplate(); } abstract class AbstractTemplateWriter : TemplateWriter { protected TemplateWriterFactory factory; protected OutputStream[] outputs; this(TemplateWriterFactory factory, OutputStream[] outputs) { this.factory = factory; this.outputs = outputs; } protected static char[] timeNow() { auto date = Clock.toDate; auto sprint = new Sprint!(char); return sprint.format("{0} {1} {2} {3}", date.asDay(), date.asMonth(), date.day, date.year).dup; } } interface TemplateWriterFactory { TemplateOptions *options(); TemplateWriter createTemplateWriter(OutputStream[] outputs); } abstract class AbstractTemplateWriterFactory : TemplateWriterFactory { protected TemplateOptions m_options; public TemplateOptions *options() { return &m_options; } }