@@ -62,9 +62,19 @@ public HTMLGenerator(File templateDir, File outputDir) {
6262 }
6363
6464 public void generate () {
65- for (File f : template .listFiles ()) {
66- if (f .getName () == "template.html" || !f .getName ().endsWith (".html" ) || f .isDirectory ())
67- continue ; // Ignore skeleton, README and directories
65+ for (File f : template .listFiles ()) {
66+ if (f .getName ().equals ("css" )) { // Copy CSS files
67+ File cssTo = new File (output + "/css" );
68+ cssTo .mkdirs ();
69+ for (File css : new File (template + "/css" ).listFiles ()) {
70+ writeFile (new File (cssTo + "/" + css .getName ()), readFile (css ));
71+ }
72+ continue ;
73+ } else if (f .isDirectory ()) // Ignore other directories
74+ continue ;
75+ if (f .getName ().endsWith ("template.html" ) || !f .getName ().endsWith (".html" ))
76+ continue ; // Ignore skeleton and README
77+ Skript .info ("Creating documentation for " + f .getName ());
6878
6979 String content = readFile (f );
7080 String page = skeleton .replace ("${content}" , content ); // Content to inside skeleton
@@ -82,7 +92,7 @@ public void generate() {
8292 }
8393
8494 for (String name : replace ) {
85- String temp = readFile (new File (template + "/template /" + name ));
95+ String temp = readFile (new File (template + "/templates /" + name ));
8696 page = page .replace ("${include " + name + "}" , temp );
8797 }
8898
@@ -92,39 +102,47 @@ public void generate() {
92102 String [] genParams = page .substring (generate + 11 , nextBracket ).split (" " );
93103 String generated = "" ;
94104
95- String descTemp = readFile (new File (template + "/template /" + genParams [1 ]));
105+ String descTemp = readFile (new File (template + "/templates /" + genParams [1 ]));
96106 String genType = genParams [0 ];
97- if (genType == "expressions" ) {
107+ if (genType . equals ( "expressions" ) ) {
98108 Iterator <ExpressionInfo <?,?>> it = Skript .getExpressions ();
99109 while (it .hasNext ()) {
100110 ExpressionInfo <?,?> info = it .next ();
101111 assert info != null ;
112+ if (info .c .getAnnotation (NoDoc .class ) != null )
113+ continue ;
102114 String desc = generateAnnotated (descTemp , info );
103115 generated += desc ;
104116 }
105- } else if (genType == "effects" ) {
117+ } else if (genType . equals ( "effects" ) ) {
106118 for (SyntaxElementInfo <? extends Effect > info : Skript .getEffects ()) {
107119 assert info != null ;
120+ if (info .c .getAnnotation (NoDoc .class ) != null )
121+ continue ;
108122 generated += generateAnnotated (descTemp , info );
109123 }
110- } else if (genType == "conditions" ) {
124+ } else if (genType . equals ( "conditions" ) ) {
111125 for (SyntaxElementInfo <? extends Condition > info : Skript .getConditions ()) {
112126 assert info != null ;
127+ if (info .c .getAnnotation (NoDoc .class ) != null )
128+ continue ;
113129 generated += generateAnnotated (descTemp , info );
114130 }
115- } else if (genType == "events" ) {
131+ } else if (genType . equals ( "events" ) ) {
116132 for (SkriptEventInfo <?> info : Skript .getEvents ()) {
117133 assert info != null ;
134+ if (info .c .getAnnotation (NoDoc .class ) != null )
135+ continue ;
118136 generated += generateEvent (descTemp , info );
119137 }
120- } else if (genType == "classes" ) {
138+ } else if (genType . equals ( "classes" ) ) {
121139 for (ClassInfo <?> info : Classes .getClassInfos ()) {
122140 assert info != null ;
123141 generated += generateClass (descTemp , info );
124142 }
125143 }
126144
127- page = page .replace (page .substring (generate , nextBracket ), generated );
145+ page = page .replace (page .substring (generate , nextBracket + 1 ), generated );
128146
129147 generate = page .indexOf ("${generate" , nextBracket );
130148 }
@@ -141,42 +159,68 @@ public void generate() {
141159 * @return Generated HTML entry.
142160 */
143161 String generateAnnotated (String descTemp , SyntaxElementInfo <?> info ) {
144- String desc = descTemp .replace ("${element.name}" , info .c .getAnnotation (Name .class ).value ());
145- desc = desc .replace ("${element.since}" , info .c .getAnnotation (Since .class ).value ());
146- desc = desc .replace ("${element.desc}" , Joiner .on ("\n " ).join (info .c .getAnnotation (Description .class ).value ()));
147- desc = desc .replace ("${element.examples}" , Joiner .on ("\n " ).join (info .c .getAnnotation (Examples .class ).value ()));
162+ Class <?> c = info .c ;
163+ String desc = "" ;
164+
165+ Name name = c .getAnnotation (Name .class );
166+ if (name != null )
167+ desc = descTemp .replace ("${element.name}" , name .value ());
168+ Since since = c .getAnnotation (Since .class );
169+ if (since != null )
170+ desc = desc .replace ("${element.since}" , since .value ());
171+ Description description = c .getAnnotation (Description .class );
172+ if (description != null )
173+ desc = desc .replace ("${element.desc}" , Joiner .on ("\n " ).join (description .value ()));
174+ Examples examples = c .getAnnotation (Examples .class );
175+ if (examples != null )
176+ desc = desc .replace ("${element.examples}" , Joiner .on ("\n <br>" ).join (examples .value ()));
148177
149178 List <String > toGen = Lists .newArrayList ();
150179 int generate = desc .indexOf ("${generate" );
151180 while (generate != -1 ) {
181+ //Skript.info("Found generate!");
152182 int nextBracket = desc .indexOf ("}" , generate );
153183 String data = desc .substring (generate + 11 , nextBracket );
154184 toGen .add (data );
185+ //Skript.info("Added " + data);
155186
156187 generate = desc .indexOf ("${generate" , nextBracket );
157188 }
158189
159190 // Assume element.pattern generate; TODO
160191 for (String data : toGen ) {
161192 String [] split = data .split (" " );
162- String pattern = readFile (new File (template + "/template/" + split [1 ]));
193+ String pattern = readFile (new File (template + "/templates/" + split [1 ]));
194+ //Skript.info("Pattern is " + pattern);
163195 String patterns = "" ;
164196 for (String line : info .patterns ) {
165197 String parsed = pattern .replace ("${element.pattern}" , line );
198+ //Skript.info("parsed is " + parsed);
166199 patterns += parsed ;
167200 }
168201
169- desc .replace ("${generate element.patterns " + split [1 ] + "}" , patterns );
202+ String toReplace = "${generate element.patterns " + split [1 ] + "}" ;
203+ //Skript.info("toReplace " + toReplace);
204+ desc = desc .replace (toReplace , patterns );
170205 }
171206
172207 return desc ;
173208 }
174209
175210 String generateEvent (String descTemp , SkriptEventInfo <?> info ) {
176- String desc = descTemp .replace ("${element.name}" , info .getName ());
177- desc = desc .replace ("${element.since}" , info .getSince ());
178- desc = desc .replace ("${element.desc}" , Joiner .on ("\n " ).join (info .getDescription ()));
179- desc = desc .replace ("${element.examples}" , Joiner .on ("\n " ).join (info .getExamples ()));
211+ String desc = "" ;
212+
213+ String docName = info .getName ();
214+ desc = descTemp .replace ("${element.name}" , docName );
215+ String since = info .getSince ();
216+ if (since != null )
217+ desc = desc .replace ("${element.since}" , since );
218+ String [] description = info .getDescription ();
219+ if (description != null )
220+ desc = desc .replace ("${element.desc}" , Joiner .on ("\n " ).join (description ));
221+ String [] examples = info .getExamples ();
222+ if (examples != null )
223+ desc = desc .replace ("${element.examples}" , Joiner .on ("\n <br>" ).join (examples ));
180224
181225 List <String > toGen = Lists .newArrayList ();
182226 int generate = desc .indexOf ("${generate" );
@@ -191,24 +235,34 @@ String generateEvent(String descTemp, SkriptEventInfo<?> info) {
191235 // Assume element.pattern generate; TODO
192236 for (String data : toGen ) {
193237 String [] split = data .split (" " );
194- String pattern = readFile (new File (template + "/template /" + split [1 ]));
238+ String pattern = readFile (new File (template + "/templates /" + split [1 ]));
195239 String patterns = "" ;
196240 for (String line : info .patterns ) {
197241 String parsed = pattern .replace ("${element.pattern}" , line );
198242 patterns += parsed ;
199243 }
200244
201- desc .replace ("${generate element.patterns " + split [1 ] + "}" , patterns );
245+ desc = desc .replace ("${generate element.patterns " + split [1 ] + "}" , patterns );
202246 }
203247
204248 return desc ;
205249 }
206250
207251 String generateClass (String descTemp , ClassInfo <?> info ) {
208- String desc = descTemp .replace ("${element.name}" , info .getDocName ());
209- desc = desc .replace ("${element.since}" , info .getSince ());
210- desc = desc .replace ("${element.desc}" , Joiner .on ("\n " ).join (info .getDescription ()));
211- desc = desc .replace ("${element.examples}" , Joiner .on ("\n " ).join (info .getExamples ()));
252+ String desc = "" ;
253+
254+ String docName = info .getDocName ();
255+ if (docName != null )
256+ desc = descTemp .replace ("${element.name}" , docName );
257+ String since = info .getSince ();
258+ if (since != null )
259+ desc = desc .replace ("${element.since}" , since );
260+ String [] description = info .getDescription ();
261+ if (description != null )
262+ desc = desc .replace ("${element.desc}" , Joiner .on ("\n " ).join (description ));
263+ String [] examples = info .getExamples ();
264+ if (examples != null )
265+ desc = desc .replace ("${element.examples}" , Joiner .on ("\n <br>" ).join (examples ));
212266
213267 List <String > toGen = Lists .newArrayList ();
214268 int generate = desc .indexOf ("${generate" );
@@ -223,7 +277,7 @@ String generateClass(String descTemp, ClassInfo<?> info) {
223277 // Assume element.pattern generate; TODO
224278 for (String data : toGen ) {
225279 String [] split = data .split (" " );
226- String pattern = readFile (new File (template + "/template /" + split [1 ]));
280+ String pattern = readFile (new File (template + "/templates /" + split [1 ]));
227281 String patterns = "" ;
228282 String [] lines = info .getUsage ();
229283 if (lines == null )
@@ -233,7 +287,7 @@ String generateClass(String descTemp, ClassInfo<?> info) {
233287 patterns += parsed ;
234288 }
235289
236- desc .replace ("${generate element.patterns " + split [1 ] + "}" , patterns );
290+ desc = desc .replace ("${generate element.patterns " + split [1 ] + "}" , patterns );
237291 }
238292
239293 return desc ;
0 commit comments