@@ -3,6 +3,11 @@ var path = require("path");
3
3
var escapeHTML = require ( "escape-html" ) ;
4
4
var unescapeHTML = require ( "unescape-html" ) ;
5
5
6
+ //helpers
7
+ var ucfirst = function ( str ) {
8
+ return str . charAt ( 0 ) . toUpperCase ( ) + str . slice ( 1 ) ;
9
+ } ;
10
+
6
11
module . exports = function ( docMap , options , getCurrent , helpers , OtherHandlebars ) {
7
12
// create children lookup
8
13
var childrenMap = makeChildrenMap ( docMap ) ;
@@ -164,12 +169,53 @@ module.exports = function(docMap, options, getCurrent, helpers, OtherHandlebars)
164
169
return docObject . package . repository . github || docObject . package . repository . url || docObject . package . repository ;
165
170
}
166
171
} ,
167
- getDocumentTitle : function ( docObject ) {
172
+ getDocumentTitle : function ( docObject ) {
168
173
var title = docMapInfo . getTitle ( docObject ) || 'CanJS' ;
169
174
if ( docObject . name === 'canjs' || ( title && title . toLowerCase ( ) === 'canjs' ) ) {
170
175
return title ;
171
176
}
172
- return 'CanJS - ' + title ;
177
+
178
+ if ( docObject . type !== "page" ) {
179
+ var group ;
180
+ if ( docObject . type === "module" ) {
181
+ group = docMap [ this . parent ] ;
182
+ } else {
183
+ var parentModule = docMap [ docObject . parent ] ;
184
+ while ( parentModule && parentModule . type !== "module" ) {
185
+ parentModule = docMap [ parentModule . parent ] ;
186
+ }
187
+ if ( parentModule ) {
188
+ group = docMap [ parentModule . parent ] ;
189
+ title += " | " + ( parentModule . title || parentModule . name ) ;
190
+ }
191
+ }
192
+ if ( group ) {
193
+ var groupParent = docMap [ group . parent ] ;
194
+ if ( groupParent ) {
195
+ if ( groupParent . type === "module" ) {
196
+ title += " | " + ( groupParent . title || groupParent . name ) ;
197
+ if ( docMap [ groupParent . parent ] . type === "group" ) {
198
+ var groupGrandParent = docMap [ groupParent . parent ] ;
199
+ var groupGrandParentParent = docMap [ groupGrandParent . parent ] ;
200
+
201
+ title += " | " + groupGrandParent . title + " | " + groupGrandParentParent . title ;
202
+ }
203
+ } else {
204
+ title += " | " + group . title + " | " + groupParent . title ;
205
+ }
206
+ } else {
207
+ title += " | " + group . title ;
208
+ }
209
+ }
210
+ title += " | CanJS" ;
211
+ } else {
212
+ var parentPage = docMap [ docObject . parent ] ;
213
+ while ( parentPage ) {
214
+ title += " | " + ucfirst ( parentPage . title ) ;
215
+ parentPage = docMap [ parentPage . parent ] ;
216
+ }
217
+ }
218
+ return title ;
173
219
} ,
174
220
isGroup : function ( docObject ) {
175
221
return docMapInfo . isGroup ( docObject ) ;
0 commit comments