1
1
"use strict" ;
2
2
3
- var pattern_assembler = function ( ) {
4
- var path = require ( 'path' ) ,
5
- fs = require ( 'fs-extra' ) ,
6
- Pattern = require ( './object_factory' ) . Pattern ,
7
- pph = require ( './pseudopattern_hunter' ) ,
8
- mp = require ( './markdown_parser' ) ,
9
- plutils = require ( './utilities' ) ,
10
- patternEngines = require ( './pattern_engines' ) ;
11
-
3
+ var path = require ( 'path' ) ,
4
+ fs = require ( 'fs-extra' ) ,
5
+ Pattern = require ( './object_factory' ) . Pattern ,
6
+ pph = require ( './pseudopattern_hunter' ) ,
7
+ mp = require ( './markdown_parser' ) ,
8
+ plutils = require ( './utilities' ) ,
9
+ patternEngines = require ( './pattern_engines' ) ,
10
+ lh = require ( './lineage_hunter' ) ,
11
+ lih = require ( './list_item_hunter' ) ,
12
+ smh = require ( './style_modifier_hunter' ) ,
13
+ ph = require ( './parameter_hunter' ) ,
14
+ JSON5 = require ( 'json5' ) ;
15
+
16
+ var markdown_parser = new mp ( ) ;
12
17
18
+ var pattern_assembler = function ( ) {
13
19
// HELPER FUNCTIONS
14
20
15
21
function getPartial ( partialName , patternlab ) {
@@ -108,11 +114,18 @@ var pattern_assembler = function () {
108
114
}
109
115
110
116
// do global registration
117
+
118
+
119
+ if ( pattern . isPattern ) {
120
+ patternlab . partials [ pattern . patternPartial ] = pattern . extendedTemplate || pattern . template ;
121
+ // do plugin-specific registration
122
+ pattern . registerPartial ( ) ;
123
+ } else {
124
+ patternlab . partials [ 'viewall-' + pattern . patternPartial ] = pattern . patternDesc ;
125
+ }
126
+
111
127
patternlab . patterns . push ( pattern ) ;
112
- patternlab . partials [ pattern . patternPartial ] = pattern . extendedTemplate || pattern . template ;
113
128
114
- // do plugin-specific registration
115
- pattern . registerPartial ( ) ;
116
129
}
117
130
}
118
131
@@ -127,14 +140,13 @@ var pattern_assembler = function () {
127
140
// therefore just need to create a dummpy pattern to be able to render
128
141
// it
129
142
var dummyPattern = Pattern . createEmpty ( { extendedTemplate : pattern } ) ;
143
+ plutils . logGreen ( data ) ;
130
144
return patternEngines . mustache . renderPattern ( dummyPattern , data , partials ) ;
131
145
}
132
146
}
133
147
134
148
function parsePatternMarkdown ( currentPattern , patternlab ) {
135
149
136
- var markdown_parser = new mp ( ) ;
137
-
138
150
try {
139
151
var markdownFileName = path . resolve ( patternlab . config . paths . source . patterns , currentPattern . subdir , currentPattern . fileName + ".md" ) ;
140
152
var markdownFileContents = fs . readFileSync ( markdownFileName , 'utf8' ) ;
@@ -185,11 +197,40 @@ var pattern_assembler = function () {
185
197
186
198
function processPatternIterative ( relPath , patternlab ) {
187
199
200
+ //check if the found file is a top-level markdown file
201
+ var fileObject = path . parse ( relPath ) ;
202
+ if ( fileObject . ext === '.md' ) {
203
+ try {
204
+ var proposedDirectory = path . resolve ( patternlab . config . paths . source . patterns , fileObject . dir , fileObject . name ) ;
205
+ var proposedDirectoryStats = fs . statSync ( proposedDirectory ) ;
206
+ if ( proposedDirectoryStats . isDirectory ( ) ) {
207
+ var subTypeMarkdownFileContents = fs . readFileSync ( proposedDirectory + '.md' , 'utf8' ) ;
208
+ var subTypeMarkdown = markdown_parser . parse ( subTypeMarkdownFileContents ) ;
209
+ var subTypePattern = new Pattern ( relPath ) ;
210
+ subTypePattern . patternSectionSubtype = true ;
211
+ subTypePattern . patternLink = subTypePattern . name + '/index.html' ;
212
+ subTypePattern . patternPartial = 'viewall-' + subTypePattern . patternPartial ;
213
+ subTypePattern . patternDesc = subTypeMarkdown . markdown ;
214
+ subTypePattern . isPattern = false ;
215
+ subTypePattern . engine = null ;
216
+
217
+ addPattern ( subTypePattern , patternlab ) ;
218
+ return subTypePattern ;
219
+ }
220
+ } catch ( err ) {
221
+ // no file exists, meaning it's a pattern markdown file
222
+ if ( err . code !== 'ENOENT' ) {
223
+ console . log ( err ) ;
224
+ }
225
+ }
226
+
227
+ }
228
+
188
229
var pseudopattern_hunter = new pph ( ) ;
189
230
190
231
//extract some information
191
- var filename = path . basename ( relPath ) ;
192
- var ext = path . extname ( filename ) ;
232
+ var filename = fileObject . base ;
233
+ var ext = fileObject . ext ;
193
234
var patternsPath = patternlab . config . paths . source . patterns ;
194
235
195
236
// skip non-pattern files
@@ -274,8 +315,6 @@ var pattern_assembler = function () {
274
315
}
275
316
276
317
function processPatternRecursive ( file , patternlab ) {
277
- var lh = require ( './lineage_hunter' ) ,
278
- lih = require ( './list_item_hunter' ) ;
279
318
280
319
var lineage_hunter = new lh ( ) ,
281
320
list_item_hunter = new lih ( ) ;
@@ -292,6 +331,9 @@ var pattern_assembler = function () {
292
331
//return if processing an ignored file
293
332
if ( typeof currentPattern === 'undefined' ) { return ; }
294
333
334
+ //we are processing a markdown only pattern
335
+ if ( currentPattern . engine === null ) { return ; }
336
+
295
337
currentPattern . extendedTemplate = currentPattern . template ;
296
338
297
339
//find how many partials there may be for the given pattern
@@ -321,8 +363,6 @@ var pattern_assembler = function () {
321
363
}
322
364
323
365
function expandPartials ( foundPatternPartials , list_item_hunter , patternlab , currentPattern ) {
324
- var smh = require ( './style_modifier_hunter' ) ,
325
- ph = require ( './parameter_hunter' ) ;
326
366
327
367
var style_modifier_hunter = new smh ( ) ,
328
368
parameter_hunter = new ph ( ) ;
@@ -365,7 +405,6 @@ var pattern_assembler = function () {
365
405
}
366
406
367
407
function parseDataLinksHelper ( patternlab , obj , key ) {
368
- var JSON5 = require ( 'json5' ) ;
369
408
var linkRE , dataObjAsString , linkMatches , expandedLink ;
370
409
371
410
linkRE = / l i n k \. [ A - z 0 - 9 - _ ] + / g;
0 commit comments