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
+    );
   }
 }