@@ -66,15 +66,16 @@ function Doc(name) {
6666 this . methods = { } ;
6767 this . events = { } ;
6868 this . members = { } ;
69+ this . descriptions = { } ;
6970 this . name = name ;
7071 this . getFileName = function ( ) {
7172 return path . join ( Doc . outputDir ,
7273 Doc . typeToName ( this . name ) ) ;
7374 } ;
74- this . getText = function ( ) {
75+ this . getText = function ( docs ) {
7576 var entry = this . entry + this . constructorEntry ;
7677 var keys ;
77- function memToIndex ( mem , title ) {
78+ function memToIndex ( mem , title , docs ) {
7879 if ( Object . keys ( mem ) . length > 0 ) {
7980 var indexStr = "### " + helper . htmlsafe ( title ) + "\n\n" ;
8081 Object . keys ( mem ) . sort ( ) . forEach ( function ( name ) {
@@ -83,16 +84,20 @@ function Doc(name) {
8384 if ( hname . lastIndexOf ( "#" ) >= 0 )
8485 hname = hname . substr ( hname . lastIndexOf ( "#" ) + 1 ) ;
8586 var tname = "[" + helper . htmlsafe ( hname ) + "](#" + val [ 1 ] + ")" ;
87+ var tdesc = docs . descriptions [ val [ 2 ] ] ;
88+ if ( tdesc ) {
89+ tname += "<br>" + tdesc ;
90+ }
8691 indexStr += "* " + tname + "\n" ;
8792 } ) ;
8893 return indexStr + "\n" ;
8994 } else {
9095 return "" ;
9196 }
9297 }
93- entry += memToIndex ( this . members , "Members" ) ;
94- entry += memToIndex ( this . events , "Events" ) ;
95- entry += memToIndex ( this . methods , "Methods" ) ;
98+ entry += memToIndex ( this . members , "Members" , docs ) ;
99+ entry += memToIndex ( this . events , "Events" , docs ) ;
100+ entry += memToIndex ( this . methods , "Methods" , docs ) ;
96101 keys = Object . keys ( this . members ) . sort ( ) ;
97102 for ( var i = 0 ; i < keys . length ; i ++ ) {
98103 entry += this . members [ keys [ i ] ] [ 0 ] ;
@@ -133,13 +138,13 @@ function DocCollection() {
133138 return this . docs [ parent ] ;
134139 } ;
135140 this . addMethod = function ( parent , name , entry , longname ) {
136- this . get ( parent ) . methods [ name ] = [ entry , Doc . toHash ( longname ) ] ;
141+ this . get ( parent ) . methods [ name ] = [ entry , Doc . toHash ( longname ) , longname ] ;
137142 } ;
138143 this . addEvent = function ( parent , name , entry , longname ) {
139- this . get ( parent ) . events [ name ] = [ entry , Doc . toHash ( longname ) ] ;
144+ this . get ( parent ) . events [ name ] = [ entry , Doc . toHash ( longname ) , longname ] ;
140145 } ;
141146 this . addMember = function ( parent , name , entry , longname ) {
142- this . get ( parent ) . members [ name ] = [ entry , Doc . toHash ( longname ) ] ;
147+ this . get ( parent ) . members [ name ] = [ entry , Doc . toHash ( longname ) , longname ] ;
143148 } ;
144149 this . addConstructor = function ( parent , entry ) {
145150 this . get ( parent ) . constructorEntry = entry ;
@@ -152,13 +157,17 @@ function DocCollection() {
152157 // Write individual type files
153158 Object . keys ( this . docs ) . forEach ( function ( doc ) {
154159 fs . writeFileSync ( that . docs [ doc ] . getFileName ( ) ,
155- normalizeLines ( that . docs [ doc ] . getText ( ) ) , "utf8" ) ;
160+ normalizeLines ( that . docs [ doc ] . getText ( that ) ) , "utf8" ) ;
156161 } ) ;
157162 // Write index
158163 var indexStr = "# Documentation Index\n\n" ;
159164 Object . keys ( this . typeNames ) . sort ( ) . forEach ( function ( name ) {
160165 var tname = name ;
161166 tname = helper . linkto ( tname , helper . htmlsafe ( tname ) ) ;
167+ var tdesc = that . descriptions [ name ] ;
168+ if ( tdesc ) {
169+ tname += "<br>" + tdesc ;
170+ }
162171 indexStr += "* " + tname + "\n" ;
163172 } ) ;
164173 indexStr += "\n" ;
@@ -226,6 +235,37 @@ function typeNames(nodes) {
226235 return names ;
227236}
228237
238+ function descriptions ( nodes ) {
239+ "use strict" ;
240+ var descriptions = { } ;
241+ nodes . forEach ( function ( node ) {
242+ if ( node . undocumented === true ) return ;
243+ if ( node . access === "private" ) {
244+ return ;
245+ }
246+ var desc = "" ;
247+ if ( typeof node . deprecated !== "undefined" && node . deprecated !== null ) {
248+ var dep = node . deprecated === true ? "Yes" : node . deprecated ;
249+ desc = "<b>Deprecated: " + normspace ( dep ) + "</b>" ;
250+ } else if ( node . kind === "class" ) {
251+ desc = normspace ( node . classdesc || "" ) + " " ;
252+ desc += normspace ( node . description || "" ) ;
253+ // We only need the first "sentence" of the description
254+ desc = desc . replace ( / \. \s + [ \s \S ] * $ / , "." ) ;
255+ } else {
256+ desc = normspace ( node . description || "" ) ;
257+ // We only need the first "sentence" of the description
258+ desc = desc . replace ( / \. \s + [ \s \S ] * $ / , "." ) ;
259+ }
260+ desc = desc . replace ( / ^ \s + / , "" ) ;
261+ desc = desc . replace ( / \s + $ / , "" ) ;
262+ if ( desc . length > 0 ) {
263+ descriptions [ node . longname ] = desc ;
264+ }
265+ } ) ;
266+ return descriptions ;
267+ }
268+
229269function registerLinks ( docCollection , nodes ) {
230270 "use strict" ;
231271 nodes . forEach ( function ( node ) {
@@ -402,14 +442,13 @@ function fillCollection(docCollection, nodes, parentlong) {
402442exports . publish = function ( input , o , t ) {
403443 "use strict" ;
404444 helper . fileExtension = ".md" ;
405- console . log ( Object . keys ( t ) ) ;
406445 helper . setTutorials ( t ) ;
407446 var inputget = input ( ) . get ( ) ;
408447 var docCollection = new DocCollection ( ) ;
409448 docCollection . tutorials = t ;
410449 docCollection . readme = o . readme ;
450+ docCollection . descriptions = descriptions ( inputget ) ;
411451 docCollection . typeNames = typeNames ( inputget ) ;
412- console . log ( o . readme ) ;
413452 registerLinks ( docCollection , inputget ) ;
414453 fillCollection ( docCollection , inputget ) ;
415454 docCollection . write ( ) ;
0 commit comments