annotate trunk/src/docgen/docgen.d @ 452:f658ec4a15dd

Simple docgen ui util, some fixes.
author Jari-Matti M?kel? <jmjm@iki.fi>
date Wed, 24 Oct 2007 22:31:38 +0300
parents 49f3afd6a0e8
children 4e5b35df3060
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
395
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
1 /**
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
2 * Author: Jari-Matti Mäkelä
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
3 * License: GPL3
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
4 */
441
13ecfb4278a4 Initial docgen test stuff.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 395
diff changeset
5 module docgen.docgen;
395
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
6
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
7 import docgen.modulegraph.writer;
452
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
8 import docgen.sourcelisting.writers;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
9 import docgen.document.writers;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
10 import docgen.graphutils.writers;
446
49f3afd6a0e8 Refactored writers.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 444
diff changeset
11 import docgen.misc.misc;
452
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
12 import docgen.misc.parser;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
13 import dil.Module;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
14 import tango.core.Array;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
15 import tango.io.stream.FileStream;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
16 import tango.text.Ascii;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
17 import tango.text.Util : replace;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
18
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
19 abstract class DefaultDocGenerator : DocGenerator {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
20 DocGeneratorOptions m_options;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
21 DocumentWriter docWriter;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
22 GraphWriterFactory graphFactory;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
23
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
24 Module[] modules;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
25 Edge[] edges;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
26 Vertex[char[]] vertices;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
27
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
28 this(DocGeneratorOptions options) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
29 m_options = options;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
30 parseSources();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
31 graphFactory = new DefaultGraphWriterFactory(this);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
32 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
33
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
34 // TODO: constructor for situations where parsing has happened elsewhere
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
35
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
36 char[] outPath(char[] file) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
37 return options.outputDir ~ "/" ~ file;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
38 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
39
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
40 void parseSources() {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
41 int id = 1;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
42
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
43 Parser.loadModules(
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
44 options.parser.rootPaths, options.parser.importPaths,
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
45 null, true, -1,
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
46 (char[] fqn, char[] path, Module m) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
47 vertices[m.moduleFQN] = new Vertex(m.moduleFQN, m.filePath, id++);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
48 },
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
49 (Module imported, Module importer) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
50 edges ~= vertices[imported.moduleFQN].addChild(vertices[importer.moduleFQN]);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
51 },
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
52 modules
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
53 );
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
54 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
55
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
56 void createDepGraph(char[] depGraphFile) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
57 auto imgFile = new FileOutput(outPath(depGraphFile));
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
58
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
59 auto writer = graphFactory.createGraphWriter( docWriter );
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
60
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
61 writer.generateGraph(vertices.values, edges, imgFile);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
62
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
63 imgFile.close();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
64 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
65
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
66 public DocGeneratorOptions *options() {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
67 return &m_options;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
68 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
69 }
395
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
70
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
71
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
72 /**
452
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
73 * Main routine for LaTeX doc generation.
395
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
74 */
452
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
75 class LaTeXDocGenerator : DefaultDocGenerator {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
76 this(DocGeneratorOptions options) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
77 super(options);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
78 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
79
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
80 /**
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
81 * Generates document skeleton
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
82 */
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
83 void generateDoc(char[] docFileName) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
84 auto ddf = new DefaultDocumentWriterFactory(this);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
85
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
86 auto docFile = new FileOutput(outPath(docFileName));
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
87 docWriter = ddf.createDocumentWriter( [ docFile ] );
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
88
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
89 docWriter.generateFirstPage();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
90 docWriter.generateTOC(modules);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
91 docWriter.generateModuleSection();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
92 docWriter.generateListingSection();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
93 docWriter.generateDepGraphSection();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
94 docWriter.generateIndexSection();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
95 docWriter.generateLastPage();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
96
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
97 docFile.close();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
98 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
99
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
100 /**
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
101 * Generates documentation for modules
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
102 */
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
103 void generateModules() {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
104 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
105
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
106 /**
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
107 * Generates source file listings.listings
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
108 */
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
109 void generateListings(char[] listingsFile) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
110 auto dlwf = new DefaultListingWriterFactory(this);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
111 auto docFile = new FileOutput(outPath(listingsFile));
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
112 docWriter.setOutput([docFile]);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
113 auto writer = dlwf.createListingWriter(docWriter);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
114
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
115 modules.sort(
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
116 (Module a, Module b){ return icompare(a.moduleFQN, b.moduleFQN); }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
117 );
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
118
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
119 foreach(mod; modules) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
120 auto dstFname = replace(mod.moduleFQN.dup, '.', '_') ~ ".d";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
121
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
122 auto srcFile = new FileInput(mod.filePath);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
123 auto dstFile = new FileOutput(outPath(dstFname));
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
124
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
125 writer.generateListing(srcFile, dstFile, mod.moduleFQN);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
126
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
127 srcFile.close();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
128 dstFile.close();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
129 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
130
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
131 docFile.close();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
132 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
133
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
134 /**
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
135 * Generates dependency graphs.
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
136 */
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
137 void generateDependencies(char[] depGraphTexFile, char[] depGraphFile) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
138 auto docFile = new FileOutput(outPath(depGraphTexFile));
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
139 docWriter.setOutput([docFile]);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
140
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
141 createDepGraph(depGraphFile);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
142
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
143 docFile.close();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
144 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
145
446
49f3afd6a0e8 Refactored writers.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 444
diff changeset
146 public void generate() {
452
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
147 auto docFileName = "document.tex";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
148 auto depGraphTexFile = "dependencies.tex";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
149 auto depGraphFile = "depgraph.dot";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
150 auto listingsFile = "files.tex";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
151
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
152 generateDoc(docFileName);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
153
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
154 if (options.listings.enableListings)
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
155 generateListings(listingsFile);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
156
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
157 generateDependencies(depGraphTexFile, depGraphFile);
395
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
158
ac9cd48151b6 Added couple of docgen modules.
Jari-Matti M?kel? <jmjm@iki.fi>
parents:
diff changeset
159 }
452
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
160 }
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
161
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
162 void main(char[][] args) {
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
163 DocGeneratorOptions options;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
164
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
165 options.graph.graphFormat = GraphFormat.Dot;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
166 options.graph.imageFormat = ImageFormat.PS;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
167 options.graph.depth = 0;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
168 options.graph.nodeColor = "tomato";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
169 options.graph.cyclicNodeColor = "red";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
170 options.graph.clusterColor = "blue";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
171 options.graph.includeUnlocatableModules = true;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
172 options.graph.highlightCyclicEdges = true;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
173 options.graph.highlightCyclicVertices = true;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
174 options.graph.groupByPackageNames = true;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
175 options.graph.groupByFullPackageName = true;
446
49f3afd6a0e8 Refactored writers.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 444
diff changeset
176
452
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
177 options.listings.literateStyle = true;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
178 options.listings.enableListings = true;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
179
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
180 options.templates.title = "Test project";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
181 options.templates.versionString = "1.0";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
182 options.templates.copyright = "(C) Me!";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
183 options.templates.paperSize = "a4paper";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
184 options.templates.shortFileNames = false;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
185 options.templates.templateStyle = "default";
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
186
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
187 options.parser.importPaths = [ args[2] ];
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
188 options.parser.rootPaths = [ args[1] ];
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
189 options.parser.strRegexps = null;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
190
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
191 options.docFormat = DocFormat.LaTeX;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
192 options.commentFormat = CommentFormat.Doxygen;
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
193 options.outputDir = args[3];
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
194
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
195
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
196 auto generator = new LaTeXDocGenerator(options);
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
197
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
198 generator.generate();
f658ec4a15dd Simple docgen ui util, some fixes.
Jari-Matti M?kel? <jmjm@iki.fi>
parents: 446
diff changeset
199 }