Skip to content

Commit

Permalink
update dependencies, update readme, docs, templates
Browse files Browse the repository at this point in the history
  • Loading branch information
bb-drummer committed Dec 11, 2017
1 parent dcd721a commit c5dd9f4
Show file tree
Hide file tree
Showing 8 changed files with 242 additions and 43 deletions.
16 changes: 12 additions & 4 deletions docs/usage_docs.md
Expand Up @@ -7,7 +7,7 @@ Just add and install via npm
$> npm install node-patternlibrary --save
```

or manually add
You can also manually add
```js
"node-patternlibrary": "^0.0.1"
```
Expand Down Expand Up @@ -38,7 +38,11 @@ gulp.task('patternlibrary:init', function (done) {
verbose : true,
dest : 'dist/pl/',
basepath : '/pl',
partials : 'src/partials/'
partials : 'src/patterns/',
helpers : 'src/helpers/',
layouts : 'src/layouts/',
root : 'src/pages/',
data : 'src/data/'
});
}

Expand Down Expand Up @@ -107,9 +111,13 @@ var Patternlibrary = require('node-patternlibrary');
/** @var Patternlibrary */
var $PL = Patternlibrary({
verbose : true,
dest : patternlibraryDestination,
dest : 'dist/pl/',
basepath : '/pl',
partials : 'src/partials/'
partials : 'src/partials/',
helpers : 'src/helpers/',
layouts : 'src/layouts/',
root : 'src/pages/',
data : 'src/data/'
});

// run Patternlibrary generation
Expand Down
63 changes: 63 additions & 0 deletions lib/patternlibrary/doc-renderer.js
Expand Up @@ -677,6 +677,68 @@ class Patternlibrary_DocRenderer {
} // renderListIndexPage


/**
* render layoutbuilder files
*
* @return self
*/
renderLayoutbuilderPages( ) {

this.$PL.log('render layoutbuilder files');

var destinationPath = this.$PL.Config.get('dest') + '';
var patterns = this.$PL.Config.get('patterns');
var filenamePattern = this.$PL.Config.get('patternfilenames').main;
var basedir = path.join(__dirname + '/../../' + 'gui/src/pages/pl/');

var indexPages = this._readdir(
[ path.join(basedir, './builder/**/') ],
'index.html',
true
);

for (var i in indexPages) {

var patternFile = indexPages[i].replace(basedir, '');
var targetFile = path.join(destinationPath, patternFile);

var patternlist = null;
var categorylist = this.$PL.getCategories();
if ( indexPages[i].indexOf('atom') != -1 ) {
patternlist = this.$PL.getPatterns('atom');
} else if ( indexPages[i].indexOf('molecule') != -1 ) {
patternlist = this.$PL.getPatterns('molecule');
} else if ( indexPages[i].indexOf('organism') != -1 ) {
patternlist = this.$PL.getPatterns('organism');
} else if ( indexPages[i].indexOf('template') != -1 ) {
patternlist = this.$PL.getPatterns('template');
} else {
patternlist = this.$PL.getPatterns();
}
if (patternlist) {
this.$PL.Panini.data.patternlist = patternlist;
}
this.$PL.Panini.data.categorylist = categorylist;

this.$PL.Panini.data.Patternlibrary = this.$PL;

// ---

var pageFile = fs.readFileSync(indexPages[i]);
var layout = this._getLayoutFromFile( path.join(__dirname + '/../../' + 'gui/src/layouts/patternpage.html') );

var rendered = this.renderPage(pageFile.toString(), layout);

fs.ensureFileSync(targetFile);
var pageFile = fs.writeFileSync(targetFile, rendered);

}

return (this);

} // renderLayoutbuilderPages




/**
Expand All @@ -689,6 +751,7 @@ class Patternlibrary_DocRenderer {
// load extra GUI partials
this.$PL.getDocParser().loadPartials( path.join(__dirname + '/../../' + 'gui/src/partials/') ); // /*/**/*.html');

this.renderLayoutbuilderPages();

// render main pattern doc
this.renderIndexDocumentation();
Expand Down
123 changes: 123 additions & 0 deletions lib/patternlibrary/layoutbuilder.js
@@ -0,0 +1,123 @@
var extend = require('deep-extend');
var curl = require('curl'); // 0.1.4
var queryString = require('query-string'); // 4.3.4
var fm = require('front-matter');
var fs = require('fs-extra');
var glob = require('glob');
var path = require('path');
var chalk = require('chalk');
var through = require('through2');
var slash = require('slash');
var jsonfile = require('jsonfile');
var marked = require('marked');
var format = require('string-template');
var hljs = require('highlight.js');
var multiline = require('multiline');

/**
* Patternlibrary Layoutbuilder module
*
* @package Patternlibrary
* @namespace Patternlibrary
* @author Björn Bartels <me@bjoernbartels.earth>
*/
class Patternlibrary_Layoutbuilder {

/**
* Initializes an instance of Patternlibrary Layoutbuilder module
* @constructor
* @param {object} options - Configuration options to use.
* @param {Patternlibrary} patternlibrary - main patternlibrary object reference.
*/
constructor ( options, patternlibrary ) {

this.options = extend(this.defaults, options);
this.$PL = null;

if (typeof patternlibrary == 'object') {
this.$PL = patternlibrary;
}
}

/**
* bind Patternlibrary object
*
* @param Patternlibrary the Patternlibrary
* @return self
*/
bind ( patternlibrary ) {
if ( (typeof patternlibrary.patternlibrary_version == 'undefined') ) throw 'invalid patternlibrary object to bind';

if (typeof patternlibrary == 'object') {
this.$PL = patternlibrary;
}

return (this);
}






//
// helpers
//

/**
* recursivly read a list of files from a given directory
* according to a given file-path pattern
*
* scans relative to project root
*
* @param string|[string] dir
* @param string pattern
* @return [string]
*/
_readdir ( dir, pattern, relative = false ) {

var files = [];

dir = !Array.isArray(dir) ? [dir] : dir;

for (var i in dir) {
files = files.concat(
(!relative) ?
glob.sync( path.join( process.cwd(), dir[i], pattern ) ) :
glob.sync( path.join( dir[i], pattern ) )
);
}

return files;

}

/**
* determine the relative path between 2 given paths
*
* @param string page
* @param string root
* @return string
*/
_relativeRoot ( page, root ) {
var pagePath = path.dirname(page);
var rootPath = path.join(process.cwd(), root);

var relativePath = path.relative(pagePath, rootPath);

if (relativePath.length > 0) {
relativePath += '/';
}

// On Windows, paths are separated with a "\"
// However, web browsers use "/" no matter the platform
return slash(relativePath);
}


}


Patternlibrary_Layoutbuilder.prototype.defaults = require('./../config/default.js');

module.exports = Patternlibrary_Layoutbuilder;
1 change: 1 addition & 0 deletions lib/patternlibrary/middleware.js
Expand Up @@ -186,6 +186,7 @@ class Patternlibrary_Middleware {

default:
// no route found... handle over to try to serve file...
//console.log('request: ', httpRequest.url);
next();
break;

Expand Down
70 changes: 35 additions & 35 deletions package.json
Expand Up @@ -10,45 +10,45 @@
"license": "Apache-2.0",
"bin": {},
"dependencies": {
"require-dir": "^0.3.0",
"mkdirp": "^0.5.1",
"curl": "^0.1.4",
"query-string": "^4.3.4",
"querystring": "^0.2.0",
"deep-extend": "^0.4.1",
"front-matter": "^2.0.5",
"fs-extra": "^3.0.1",
"glob": "^7.0.0",
"js-yaml": "^3.5.2",
"jsonfile": "^3.0.0",
"chalk": "^1.1.1",
"nopt": "^4.0.1",
"panini": "^1.3.0",
"slash": "^1.0.0",
"through2": "^2.0.0",
"vinyl-fs": "^2.4.4",
"marked": "^0.3.5",
"jsdoc-api": "^1.0.5",
"jsdoc3-parser": "^1.0.4",
"sassdoc": "^2.0.0-rc.17",
"supercollider": "^1.4.1",
"cheerio": "^0.20.0",
"highlight.js": "^9.0.0",
"inky": "^1.2.6",
"js-beautify": "^1.6.2",
"kebab-case": "^1.0.0",
"multiline": "^1.0.2",
"string-template": "^1.0.0",
"strip-indent": "^1.0.1",
"assert-dir-equal": "^1.0.1",
"require-dir": "^0.3",
"mkdirp": "^0.5",
"curl": "^0.1",
"query-string": "^5",
"querystring": "^0.2",
"deep-extend": "^0.5",
"front-matter": "^2",
"fs-extra": "^4",
"glob": "^7",
"js-yaml": "^3",
"jsonfile": "^4",
"chalk": "^2",
"nopt": "^4",
"panini": "^1",
"slash": "^1",
"through2": "^2",
"vinyl-fs": "^3",
"marked": "^0.3",
"jsdoc-api": "^4",
"jsdoc3-parser": "^1",
"sassdoc": "^2",
"supercollider": "^1",
"cheerio": "^0.22",
"highlight.js": "^9",
"inky": "^1",
"js-beautify": "^1",
"kebab-case": "^1",
"multiline": "^1",
"string-template": "^1",
"strip-indent": "^2",
"assert-dir-equal": "^1",
"babel": "^6.3.26",
"babel-preset-es2015": "^6.3.13",
"babel-register": "^6.4.3",
"babel-runtime": "^6.3.19",
"coveralls": "^2.11.6",
"gulp": "^3.8.11",
"mocha": "^3.2.0",
"mocha-lcov-reporter": "^1.0.0"
"coveralls": "^3",
"gulp": "^3",
"mocha": "^4",
"mocha-lcov-reporter": "^1"
},
"devDependencies": {},
"repository": {
Expand Down
4 changes: 4 additions & 0 deletions readme.md
@@ -1,5 +1,9 @@
# (Node-)**Patternlibrary**

[![npm version](https://badge.fury.io/js/node-patternlibrary.svg)](https://badge.fury.io/js/node-patternlibrary)

[![dependencies status](https://david-dm.org/bb-drummer/node-patternlibrary.svg)](https://david-dm.org/bb-drummer/node-patternlibrary)

[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/bb-drummer/node-patternlibrary/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/bb-drummer/node-patternlibrary/?branch=master)
[![Build Status](https://scrutinizer-ci.com/g/bb-drummer/node-patternlibrary/badges/build.png?b=master)](https://scrutinizer-ci.com/g/bb-drummer/node-patternlibrary/build-status/master)

Expand Down
4 changes: 2 additions & 2 deletions templates/partials/collider/javascript-reference.hbs
Expand Up @@ -5,7 +5,7 @@
<section>
{{#heading 3 'js-module'}}Initializing{{/heading}}

<p>The file <code>{{meta.filename}}</code> must be included in your JavaScript to use this plugin, along with <code>foundation.core.js</code>.{{#if requires}} <strong>This plugin also requires these utility libraries:</strong>{{/if}}</p>
<p>The file <code>{{meta.filename}}</code> must be included in your JavaScript to use this plugin, along with <code>siteapp.core.js</code>.{{#if requires}} <strong>This plugin also requires these utility libraries:</strong>{{/if}}</p>

{{#if requires}}{{#each requires}}
<ul>
Expand All @@ -18,7 +18,7 @@

{{#each js.class}}
<section>
{{#heading 3 'js-class'}}Foundation.{{this.name}}{{/heading}}
{{#heading 3 'js-class'}}Siteapp.{{this.name}}{{/heading}}

{{md this.description}}

Expand Down
4 changes: 2 additions & 2 deletions templates/patterndisplay-javascript.html
Expand Up @@ -5,7 +5,7 @@
<section>
{{#heading 3 'js-module'}}Initializing{{/heading}}

<p>The file <code>{{meta.filename}}</code> must be included in your JavaScript to use this plugin, along with <code>foundation.core.js</code>.{{#if requires}} <strong>This plugin also requires these utility libraries:</strong>{{/if}}</p>
<p>The file <code>{{meta.filename}}</code> must be included in your JavaScript to use this plugin, along with <code>siteapp.core.js</code>.{{#if requires}} <strong>This plugin also requires these utility libraries:</strong>{{/if}}</p>

{{#if requires}}{{#each requires}}
<ul>
Expand All @@ -18,7 +18,7 @@

{{#each js.class}}
<section>
{{#heading 3 'js-class'}}Foundation.{{this.name}}{{/heading}}
{{#heading 3 'js-class'}}Siteapp.{{this.name}}{{/heading}}

{{md this.description}}

Expand Down

0 comments on commit c5dd9f4

Please sign in to comment.