Mercurial > projects > dil
diff trunk/src/docgen/sourcelisting/latexwriter.d @ 451:3f44c38bf870
Page templates, more flexible writer interfaces, small fixes.
author | Jari-Matti M?kel? <jmjm@iki.fi> |
---|---|
date | Wed, 24 Oct 2007 17:25:52 +0300 |
parents | 757bd048482c |
children | 4e5b35df3060 |
line wrap: on
line diff
--- a/trunk/src/docgen/sourcelisting/latexwriter.d Wed Oct 17 20:55:55 2007 +0200 +++ b/trunk/src/docgen/sourcelisting/latexwriter.d Wed Oct 24 17:25:52 2007 +0300 @@ -8,33 +8,29 @@ import dil.Parser; import tango.io.protocol.Writer : Writer; import tango.io.FileConduit : FileConduit; -import tango.io.Print; +import tango.io.Print: Print; import tango.io.FilePath; import tango.text.convert.Layout : Layout; /** * Adds a code listing section for the given file. */ -class LaTeXWriter : AbstractWriter!(ListingWriterFactory, 2), ListingWriter { - this(ListingWriterFactory factory, OutputStream[] outputs) { - super(factory, outputs); +class LaTeXWriter : AbstractWriter!(ListingWriterFactory), ListingWriter { + DocumentWriter writer; + + this(ListingWriterFactory factory, DocumentWriter writer) { + super(factory); + this.writer = writer; } - void generateListing(Parser parser) { - auto output2 = new Print!(char)(new Layout!(char), outputs[0]); - auto output = new Print!(char)(new Layout!(char), outputs[1]); - /* TODO */ - } + void generateListing(Parser parser) { /* TODO */ } - void generateListing(InputStream input, char[] moduleName) { - auto output2 = new Print!(char)(new Layout!(char), outputs[0]); - - if (cast(FileConduit)outputs[1]) { - char[] fn = (cast(FileConduit)outputs[1]).toUtf8(); - fn = FilePath(fn).file; - output2.format("\\section{{Module {0}}\n", moduleName); - output2.format("\\lstinputlisting[language=d]{{{0}}\n", fn); - } - outputs[1].copy(input); + void generateListing(InputStream input, OutputStream output, char[] moduleName) { + output.copy(input); + + writer.addListing( + moduleName, + FilePath((cast(FileConduit)output.conduit).toUtf8()).file + ); } }