diff --git a/builder/pattern_assembler.js b/builder/pattern_assembler.js index 608289495..957e35131 100644 --- a/builder/pattern_assembler.js +++ b/builder/pattern_assembler.js @@ -91,7 +91,7 @@ path = require('path'); //extract some information - var subdir = path.dirname(path.relative(patternlab.config.patterns.source, file)).replace('\\', '/'); + var subdir = path.dirname(path.relative(patternlab.config.paths.source.patterns, file)).replace('\\', '/'); var filename = path.basename(file); var ext = path.extname(filename); @@ -119,8 +119,8 @@ //look for a json file for this template try { - var jsonFilename = patternlab.config.patterns.source + currentPattern.subdir + '/' + currentPattern.fileName + ".json"; - currentPattern.jsonFileData = fs.readJSONSync(jsonFilename.substring(2)); + var jsonFilename = path.resolve(patternlab.config.paths.source.patterns, currentPattern.subdir, currentPattern.fileName + ".json"); + currentPattern.jsonFileData = fs.readJSONSync(jsonFilename); if(patternlab.config.debug){ console.log('found pattern-specific data.json for ' + currentPattern.key); } @@ -130,8 +130,8 @@ //look for a listitems.json file for this template try { - var listJsonFileName = patternlab.config.patterns.source + currentPattern.subdir + '/' + currentPattern.fileName + ".listitems.json"; - currentPattern.listitems = fs.readJSONSync(listJsonFileName.substring(2)); + var listJsonFileName = path.resolve(patternlab.config.paths.source.patterns, currentPattern.subdir,currentPattern.fileName + ".listitems.json"); + currentPattern.listitems = fs.readJSONSync(listJsonFileName); buildListItems(currentPattern); if(patternlab.config.debug){ console.log('found pattern-specific listitems.json for ' + currentPattern.key); diff --git a/builder/patternlab.js b/builder/patternlab.js index e24471737..1f4a5c1bf 100644 --- a/builder/patternlab.js +++ b/builder/patternlab.js @@ -27,6 +27,9 @@ var patternlab_engine = function () { patternlab.package = fs.readJSONSync('./package.json'); patternlab.config = fs.readJSONSync('./config.json'); + var paths = patternlab.config.paths; + + function getVersion() { console.log(patternlab.package.version); } @@ -55,10 +58,10 @@ var patternlab_engine = function () { } function buildPatterns(deletePatternDir){ - patternlab.data = fs.readJSONSync('./source/_data/data.json'); - patternlab.listitems = fs.readJSONSync('./source/_data/listitems.json'); - patternlab.header = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/header.html', 'utf8'); - patternlab.footer = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/footer.html', 'utf8'); + patternlab.data = fs.readJSONSync(path.resolve(paths.source.data, 'data.json')); + patternlab.listitems = fs.readJSONSync(path.resolve(paths.source.data, 'listitems.json')); + patternlab.header = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'pattern-header-footer/header.html'), 'utf8'); + patternlab.footer = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'pattern-header-footer/footer.html'), 'utf8'); patternlab.patterns = []; patternlab.partials = {}; patternlab.data.link = {}; @@ -66,7 +69,7 @@ var patternlab_engine = function () { var pattern_assembler = new pa(), entity_encoder = new he(), pattern_exporter = new pe(), - patterns_dir = './source/_patterns'; + patterns_dir = paths.source.patterns; pattern_assembler.combine_listItems(patternlab); @@ -87,7 +90,6 @@ var patternlab_engine = function () { console.log(err); return; } - pattern_assembler.process_pattern_iterative(file.substring(2), patternlab); }); @@ -113,13 +115,12 @@ var patternlab_engine = function () { console.log(err); return; } - pattern_assembler.process_pattern_recursive(file.substring(2), patternlab); }); //delete the contents of config.patterns.public before writing if(deletePatternDir){ - fs.emptyDirSync(patternlab.config.patterns.public); + fs.emptyDirSync(paths.public.patterns); } //render all patterns last, so lineageR works @@ -136,13 +137,13 @@ var patternlab_engine = function () { var patternFooter = pattern_assembler.renderPattern(patternlab.footer, pattern); //write the compiled template to the public patterns directory - fs.outputFileSync(patternlab.config.patterns.public + pattern.patternLink, patternlab.header + pattern.patternPartial + patternFooter); + fs.outputFileSync(paths.public.patterns + pattern.patternLink, patternlab.header + pattern.patternPartial + patternFooter); //write the mustache file too - fs.outputFileSync(patternlab.config.patterns.public + pattern.patternLink.replace('.html', '.mustache'), entity_encoder.encode(pattern.template)); + fs.outputFileSync(paths.public.patterns + pattern.patternLink.replace('.html', '.mustache'), entity_encoder.encode(pattern.template)); //write the encoded version too - fs.outputFileSync(patternlab.config.patterns.public + pattern.patternLink.replace('.html', '.escaped.html'), entity_encoder.encode(pattern.patternPartial)); + fs.outputFileSync(paths.public.patterns + pattern.patternLink.replace('.html', '.escaped.html'), entity_encoder.encode(pattern.patternPartial)); }); //export patterns if necessary @@ -164,7 +165,7 @@ var patternlab_engine = function () { media_hunter.find_media_queries('./source/css', patternlab); // check if patterns are excluded, if not add them to styleguidePatterns - if (styleGuideExcludes.length) { + if (styleGuideExcludes && styleGuideExcludes.length) { for (i = 0; i < patternlab.patterns.length; i++) { // skip underscore-prefixed files @@ -187,9 +188,9 @@ var patternlab_engine = function () { } //build the styleguide - var styleguideTemplate = fs.readFileSync('./source/_patternlab-files/styleguide.mustache', 'utf8'), + var styleguideTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'styleguide.mustache'), 'utf8'), styleguideHtml = pattern_assembler.renderPattern(styleguideTemplate, {partials: styleguidePatterns}); - fs.outputFileSync('./public/styleguide/html/styleguide.html', styleguideHtml); + fs.outputFileSync(path.resolve(paths.public.styleguide, 'html/styleguide.html'), styleguideHtml); //build the viewall pages var prevSubdir = '', @@ -228,14 +229,14 @@ var patternlab_engine = function () { } } - var viewAllTemplate = fs.readFileSync('./source/_patternlab-files/viewall.mustache', 'utf8'); + var viewAllTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'viewall.mustache'), 'utf8'); var viewAllHtml = pattern_assembler.renderPattern(viewAllTemplate, {partials: viewAllPatterns, patternPartial: patternPartial}); - fs.outputFileSync(patternlab.config.patterns.public + pattern.flatPatternPath + '/index.html', viewAllHtml); + fs.outputFileSync(paths.public.patterns + pattern.flatPatternPath + '/index.html', viewAllHtml); } } //build the patternlab website - var patternlabSiteTemplate = fs.readFileSync('./source/_patternlab-files/index.mustache', 'utf8'); + var patternlabSiteTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'index.mustache'), 'utf8'); //sort all patterns explicitly. patternlab.patterns = patternlab.patterns.sort(function(a,b){ @@ -415,20 +416,20 @@ var patternlab_engine = function () { //the patternlab site requires a lot of partials to be rendered. //patternNav - var patternNavTemplate = fs.readFileSync('./source/_patternlab-files/partials/patternNav.mustache', 'utf8'); + var patternNavTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'partials/patternNav.mustache'), 'utf8'); var patternNavPartialHtml = pattern_assembler.renderPattern(patternNavTemplate, patternlab); //ishControls - var ishControlsTemplate = fs.readFileSync('./source/_patternlab-files/partials/ishControls.mustache', 'utf8'); + var ishControlsTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'partials/ishControls.mustache'), 'utf8'); patternlab.config.mqs = patternlab.mediaQueries; var ishControlsPartialHtml = pattern_assembler.renderPattern(ishControlsTemplate, patternlab.config); //patternPaths - var patternPathsTemplate = fs.readFileSync('./source/_patternlab-files/partials/patternPaths.mustache', 'utf8'); + var patternPathsTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'partials/patternPaths.mustache'), 'utf8'); var patternPathsPartialHtml = pattern_assembler.renderPattern(patternPathsTemplate, {'patternPaths': JSON.stringify(patternlab.patternPaths)}); //viewAllPaths - var viewAllPathsTemplate = fs.readFileSync('./source/_patternlab-files/partials/viewAllPaths.mustache', 'utf8'); + var viewAllPathsTemplate = fs.readFileSync(path.resolve(paths.source.patternlabFiles, 'partials/viewAllPaths.mustache'), 'utf8'); var viewAllPathsPartialHtml = pattern_assembler.renderPattern(viewAllPathsTemplate, {'viewallpaths': JSON.stringify(patternlab.viewAllPaths)}); //render the patternlab template, with all partials @@ -438,7 +439,7 @@ var patternlab_engine = function () { 'patternPaths': patternPathsPartialHtml, 'viewAllPaths': viewAllPathsPartialHtml }); - fs.outputFileSync('./public/index.html', patternlabSiteHtml); + fs.outputFileSync(path.resolve(paths.public.root, 'index.html'), patternlabSiteHtml); } function addToPatternPaths(bucketName, pattern){ diff --git a/builder/patternlab_gulp.js b/builder/patternlab_gulp.js index 64b0800df..0c176d40a 100644 --- a/builder/patternlab_gulp.js +++ b/builder/patternlab_gulp.js @@ -21,16 +21,16 @@ module.exports = function(gulp) { gulp.task('patternlab:version', function(){ var patternlab = patternlab_engine(); patternlab.version(); - }) + }); gulp.task('patternlab:only_patterns', ['clean'], function(){ var patternlab = patternlab_engine(); patternlab.build_patterns_only(false); - }) + }); gulp.task('patternlab:help', function(){ var patternlab = patternlab_engine(); patternlab.help(); - }) + }); -} +}; diff --git a/builder/pseudopattern_hunter.js b/builder/pseudopattern_hunter.js index 909dc38be..ebd652161 100644 --- a/builder/pseudopattern_hunter.js +++ b/builder/pseudopattern_hunter.js @@ -1,10 +1,10 @@ -/* - * patternlab-node - v1.0.1 - 2015 - * +/* + * patternlab-node - v1.0.1 - 2015 + * * Brian Muenzenmeyer, and the web community. - * Licensed under the MIT license. - * - * Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice. + * Licensed under the MIT license. + * + * Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice. * */ @@ -20,15 +20,16 @@ pa = require('./pattern_assembler'), lh = require('./lineage_hunter'), of = require('./object_factory'), - mustache = require('mustache'); + path = require('path'); var pattern_assembler = new pa(); var lineage_hunter = new lh(); + var paths = patternlab.config.paths; //look for a pseudo pattern by checking if there is a file containing same name, with ~ in it, ending in .json var needle = currentPattern.subdir + '/' + currentPattern.fileName + '~*.json'; var pseudoPatterns = glob.sync(needle, { - cwd: patternlab.config.patterns.source + '/', + cwd: paths.source.patterns, debug: false, nodir: true, }); @@ -42,13 +43,13 @@ } //we want to do everything we normally would here, except instead read the pseudoPattern data - var variantFileData = fs.readJSONSync(patternlab.config.patterns.source + '/' + pseudoPatterns[i]); + var variantFileData = fs.readJSONSync(path.resolve(paths.source.patterns, pseudoPatterns[i])); //extend any existing data with variant data variantFileData = pattern_assembler.merge_data(currentPattern.jsonFileData, variantFileData); var variantName = pseudoPatterns[i].substring(pseudoPatterns[i].indexOf('~') + 1).split('.')[0]; - var variantFilePath = patternlab.config.patterns.source + '/' + currentPattern.subdir + '/' + currentPattern.fileName + '~' + variantName + '.json'; + var variantFilePath = path.resolve(paths.source.patterns, currentPattern.subdir, currentPattern.fileName + '~' + variantName + '.json'); var variantFileName = currentPattern.fileName + '-' + variantName + '.'; var patternVariant = new of.oPattern(variantFilePath, currentPattern.subdir, variantFileName, variantFileData); diff --git a/config.json b/config.json index 9ba9f591e..dfca6c756 100644 --- a/config.json +++ b/config.json @@ -1,8 +1,26 @@ - { - "patterns" : { - "source" : "./source/_patterns/", - "public" : "./public/patterns/" - }, +{ + "paths" : { + "source" : { + "root": "./source/", + "patterns" : "./source/_patterns/", + "data" : "./source/_data/", + "patternlabFiles" : "./source/_patternlab-files/", + "js" : "./source/js", + "images" : "./source/images", + "fonts" : "./source/fonts", + "css" : "./source/css/" + }, + "public" : { + "root" : "./public/", + "patterns" : "./public/patterns/", + "data" : "./public/data/", + "styleguide" : "./public/styleguide/", + "js" : "./public/js", + "images" : "./public/images", + "fonts" : "./public/fonts", + "css" : "./public/css" + } + }, "styleGuideExcludes": [ "templates", "pages" @@ -30,7 +48,7 @@ "tools-docs": true }, "patternStates": { - "homepage-emergency" : "inprogress" + "homepage-emergency" : "inprogress" }, "patternExportKeys": [], "patternExportDirectory": "./pattern_exports/", diff --git a/gulpfile.js b/gulpfile.js index f0b66d3d7..95a049ed7 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,6 +2,7 @@ var pkg = require('./package.json'), gulp = require('gulp'), + path = require('path'), eol = require('os').EOL, del = require('del'), strip_banner = require('gulp-strip-banner'), @@ -20,14 +21,18 @@ var banner = [ '/** ', ' * Many thanks to Brad Frost and Dave Olsen for inspiration, encouragement, and advice.', ' * ', ' **/'].join(eol); +function paths () { + return require('./config.json').paths; +} + //load patternlab-node tasks gulp.loadTasks(__dirname+'/builder/patternlab_gulp.js'); //clean patterns dir gulp.task('clean', function(cb){ - del.sync(['./public/patterns/*'], {force: true}); + del.sync([path.resolve(paths().public.patterns, '*')], {force: true}); cb(); -}) +}); //build the banner gulp.task('banner', function(){ @@ -51,61 +56,74 @@ gulp.task('banner', function(){ today : new Date().getFullYear() } )) .pipe(gulp.dest('./builder')); -}) +}); + -//copy tasks +// COPY TASKS + +// JS copy gulp.task('cp:js', function(){ - return gulp.src('**/*.js', {cwd:'./source/js'}) - .pipe(gulp.dest('./public/js')) + return gulp.src('**/*.js', {cwd:paths().source.js}) + .pipe(gulp.dest(paths().public.js)); }); + +// Images copy gulp.task('cp:img', function(){ return gulp.src( [ '**/*.gif', '**/*.png', '**/*.jpg', '**/*.jpeg' ], - {cwd:'./source/images'} ) - .pipe(gulp.dest('./public/images')) + {cwd:paths().source.images} ) + .pipe(gulp.dest(paths().public.images)); }); + +// Fonts copy gulp.task('cp:font', function(){ - return gulp.src('*', {cwd:'./source/fonts'}) - .pipe(gulp.dest('./public/fonts')) + return gulp.src('*', {cwd:paths().source.fonts}) + .pipe(gulp.dest(paths().public.images)); }); + +// Data copy gulp.task('cp:data', function(){ - return gulp.src('annotations.js', {cwd:'./source/_data'}) - .pipe(gulp.dest('./public/data')) -}) + return gulp.src('annotations.js', {cwd:paths().source.data}) + .pipe(gulp.dest(paths().public.data)); +}); + +// CSS Copy gulp.task('cp:css', function(){ - return gulp.src('./source/css/style.css') - .pipe(gulp.dest('./public/css')) + return gulp.src(path.resolve(paths().source.css, 'style.css')) + .pipe(gulp.dest(paths().public.css)) .pipe(browserSync.stream()); -}) +}); //server and watch tasks gulp.task('connect', ['lab'], function(){ browserSync.init({ server: { - baseDir: './public/' + baseDir: paths().public.root } }); - gulp.watch('./source/css/style.css', ['cp:css']); + gulp.watch(path.resolve(paths().public.css, 'style.css'), ['cp:css']); //suggested watches if you use scss // gulp.watch('./source/css/**/*.scss', ['sass:style']); // gulp.watch('./public/styleguide/*.scss', ['sass:styleguide']); - gulp.watch([ - './source/_patterns/**/*.mustache', - './source/_patterns/**/*.json', - './source/_data/*.json' ], - ['lab-pipe'], function(){ - browserSync.reload(); - }); + gulp.watch( + [ + path.resolve(paths().source.patterns, '**/*.mustache'), + path.resolve(paths().source.patterns, '**/*.json'), + path.resolve(paths().source.data, '*.json') + ], + ['lab-pipe'], + function () { browserSync.reload(); } + ); -}) +}); //unit test gulp.task('nodeunit', function(){ return gulp.src('./test/**/*_tests.js') .pipe(nodeunit()); -}) +}); //sass tasks, turn on if you want to use // gulp.task('sass:style', function(){ @@ -130,12 +148,12 @@ gulp.task('nodeunit', function(){ gulp.task('lab-pipe', ['lab'], function(cb){ cb(); browserSync.reload(); -}) +}); gulp.task('default', ['lab']); gulp.task('assets', ['cp:js', 'cp:img', 'cp:font', 'cp:data', /*'sass:style', 'sass:styleguide'*/]); -gulp.task('prelab', ['clean', 'banner', 'assets']); +gulp.task('prelab', ['clean', 'assets']); gulp.task('lab', ['prelab', 'patternlab'], function(cb){cb();}); gulp.task('patterns', ['patternlab:only_patterns']); gulp.task('serve', ['lab', 'connect']); diff --git a/test/pattern_assembler_tests.js b/test/pattern_assembler_tests.js index f623e754b..a0d5cd4de 100644 --- a/test/pattern_assembler_tests.js +++ b/test/pattern_assembler_tests.js @@ -2,7 +2,8 @@ "use strict"; var pa = require('../builder/pattern_assembler'); - var object_factory = require('../builder/object_factory'); + var object_factory = require('../builder/object_factory'); + var path = require('path'); exports['pattern_assembler'] = { 'find_pattern_partials finds partials' : function(test){ @@ -209,11 +210,12 @@ var patterns_dir = './test/files/_patterns'; var patternlab = {}; patternlab.config = fs.readJSONSync('./config.json'); - patternlab.config.patterns = {source: patterns_dir}; - patternlab.data = fs.readJSONSync('./source/_data/data.json'); - patternlab.listitems = fs.readJSONSync('./source/_data/listitems.json'); - patternlab.header = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/header.html', 'utf8'); - patternlab.footer = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/footer.html', 'utf8'); + patternlab.config.paths.source.patterns = patterns_dir; + + patternlab.data = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'data.json')); + patternlab.listitems = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'listitems.json')); + patternlab.header = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'pattern-header-footer/header.html'), 'utf8'); + patternlab.footer = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'pattern-header-footer/footer.html'), 'utf8'); patternlab.patterns = []; patternlab.data.link = {}; patternlab.partials = {}; @@ -293,12 +295,17 @@ var patterns_dir = './test/files/_patterns'; var pl = {}; - pl.config = {}; + pl.config = { + paths: { + source: { + patterns: patterns_dir + } + } + }; pl.data = {}; pl.data.link = {}; pl.config.debug = false; pl.patterns = []; - pl.config.patterns = { source: patterns_dir}; var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache'); atomPattern.template = fs.readFileSync(patterns_dir + '/00-test/03-styled-atom.mustache', 'utf8'); @@ -326,12 +333,17 @@ var patterns_dir = './test/files/_patterns'; var pl = {}; - pl.config = {}; + pl.config = { + paths: { + source: { + patterns: patterns_dir + } + } + }; pl.data = {}; pl.data.link = {}; pl.config.debug = false; pl.patterns = []; - pl.config.patterns = { source: patterns_dir}; var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache'); atomPattern.template = fs.readFileSync(patterns_dir + '/00-test/03-styled-atom.mustache', 'utf8'); @@ -361,12 +373,17 @@ var patterns_dir = './test/files/_patterns'; var pl = {}; - pl.config = {}; + pl.config = { + paths: { + source: { + patterns: patterns_dir + } + } + }; pl.data = {}; pl.data.link = {}; pl.config.debug = false; pl.patterns = []; - pl.config.patterns = { source: patterns_dir}; var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache'); atomPattern.template = fs.readFileSync(patterns_dir + '/00-test/03-styled-atom.mustache', 'utf8'); @@ -394,12 +411,17 @@ var patterns_dir = './test/files/_patterns'; var pl = {}; - pl.config = {}; + pl.config = { + paths: { + source: { + patterns: patterns_dir + } + } + }; pl.data = {}; pl.data.link = {}; pl.config.debug = false; pl.patterns = []; - pl.config.patterns = { source: patterns_dir}; var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache'); atomPattern.template = fs.readFileSync(patterns_dir + '/00-test/03-styled-atom.mustache', 'utf8'); @@ -427,12 +449,17 @@ var patterns_dir = './test/files/_patterns'; var pl = {}; - pl.config = {}; + pl.config = { + paths: { + source: { + patterns: patterns_dir + } + } + }; pl.data = {}; pl.data.link = {}; pl.config.debug = false; pl.patterns = []; - pl.config.patterns = { source: patterns_dir}; var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache'); atomPattern.template = fs.readFileSync(patterns_dir + '/00-test/03-styled-atom.mustache', 'utf8'); @@ -462,12 +489,17 @@ var patterns_dir = './test/files/_patterns'; var pl = {}; - pl.config = {}; + pl.config = { + paths: { + source: { + patterns: patterns_dir + } + } + }; pl.data = {}; pl.data.link = {}; pl.config.debug = false; pl.patterns = []; - pl.config.patterns = { source: patterns_dir}; var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache'); atomPattern.template = fs.readFileSync(patterns_dir + '/00-test/03-styled-atom.mustache', 'utf8'); @@ -592,11 +624,11 @@ var patternlab = {}; //THIS IS BAD patternlab.config = fs.readJSONSync('./config.json'); - patternlab.config.patterns = {source: patterns_dir}; - patternlab.data = fs.readJSONSync('./source/_data/data.json'); - patternlab.listitems = fs.readJSONSync('./source/_data/listitems.json'); - patternlab.header = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/header.html', 'utf8'); - patternlab.footer = fs.readFileSync('./source/_patternlab-files/pattern-header-footer/footer.html', 'utf8'); + patternlab.config.paths.source.patterns = patterns_dir; + patternlab.data = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'data.json')); + patternlab.listitems = fs.readJSONSync(path.resolve(patternlab.config.paths.source.data, 'listitems.json')); + patternlab.header = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'pattern-header-footer/header.html'), 'utf8'); + patternlab.footer = fs.readFileSync(path.resolve(patternlab.config.paths.source.patternlabFiles, 'pattern-header-footer/footer.html'), 'utf8'); patternlab.patterns = []; patternlab.data.link = {}; patternlab.partials = {}; @@ -618,7 +650,7 @@ console.log(err); return; } - pattern_assembler.process_pattern_iterative(file.substring(2), patternlab); + pattern_assembler.process_pattern_iterative(file, patternlab); } ); @@ -633,6 +665,7 @@ pattern = patternlab.patterns[i]; } } + //assert before test.equals(pattern.jsonFileData.brad.url, "link.twitter-brad"); test.equals(pattern.jsonFileData.dave.url, "link.twitter-dave"); diff --git a/test/pseudopattern_hunter_tests.js b/test/pseudopattern_hunter_tests.js index 5a50dbcdd..2a9664e6e 100644 --- a/test/pseudopattern_hunter_tests.js +++ b/test/pseudopattern_hunter_tests.js @@ -14,12 +14,17 @@ var patterns_dir = './test/files/_patterns/'; var pl = {}; - pl.config = {}; + pl.config = { + paths: { + source: { + patterns: patterns_dir + } + } + }; pl.data = {}; pl.data.link = {}; pl.config.debug = false; pl.patterns = []; - pl.config.patterns = { source: patterns_dir}; pl.config.patternStates = {}; var atomPattern = new object_factory.oPattern('test/files/_patterns/00-test/03-styled-atom.mustache', '00-test', '03-styled-atom.mustache');