From cff01706eac5994b154bbd01732fafb4e0951482 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 21 Mar 2017 14:57:18 -0500 Subject: [PATCH 01/11] ignore nyc output --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e5a709278..d1ddc139e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ source/css/style.css.map public !test/patterns/public/.gitkeep !test/patterns/testDependencyGraph.json +.nyc_output/ From dac6817a57f6209d03ecf24dbefbf4dde24107ac Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 21 Mar 2017 14:58:38 -0500 Subject: [PATCH 02/11] increment version --- core/lib/patternlab.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index f05ef9d57..92e6e447b 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v2.8.0 - 2017 + * patternlab-node - v2.9.0 - 2017 * * Brian Muenzenmeyer, Geoff Pursell, Raphael Okon, tburny and the web community. * Licensed under the MIT license. diff --git a/package.json b/package.json index 46f0d0fa8..c4b5fb642 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "patternlab-node", "description": "Pattern Lab is a collection of tools to help you create atomic design systems. This is the node command line interface (CLI).", - "version": "2.8.0", + "version": "2.9.0", "main": "./core/lib/patternlab.js", "dependencies": { "chalk": "^1.1.3", From 6e10b68dcd8ce26f962d2ab7e13fea71834e0c6e Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 21 Mar 2017 14:12:55 -0500 Subject: [PATCH 03/11] added dev installation instructions, usage, logo, ecosystem mention, community, support, and license sections --- README.md | 95 ++++++++++++++++++++++++++++++++++++++------------ patternlab.svg | 6 ++++ 2 files changed, 79 insertions(+), 22 deletions(-) create mode 100644 patternlab.svg diff --git a/README.md b/README.md index 58bd30c02..6517e52f3 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,98 @@ +![Pattern Lab Logo](patternlab.svg) + [![Build Status](https://travis-ci.org/pattern-lab/patternlab-node.svg?branch=master)](https://travis-ci.org/pattern-lab/patternlab-node) ![current release](https://img.shields.io/github/release/pattern-lab/patternlab-node.svg) ![license](https://img.shields.io/github/license/pattern-lab/patternlab-node.svg) [![Join the chat at Gitter](https://badges.gitter.im/pattern-lab/node.svg)](https://gitter.im/pattern-lab/node) # Pattern Lab Node Core -This repository contains the core functionality for Pattern Lab Node. Pattern Lab Core is designed to be included as a dependency within [Node Editions](https://github.com/pattern-lab?utf8=%E2%9C%93&query=edition-node). -If this looks **REALLY DIFFERENT** from what you expected, check out the [ChangeLog](https://github.com/pattern-lab/patternlab-node/wiki/ChangeLog). +This repository contains the core functionality for Pattern Lab Node. Pattern Lab helps you and your team build thoughtful, pattern-driven user interfaces using atomic design principles. + +[Online Demo of Pattern Lab Output](http://demo.patternlab.io/) + +## Installation + +Pattern Lab Node Core is designed to be consumed, and by default is included as a dependency within two example [Node Editions](https://github.com/pattern-lab?utf8=%E2%9C%93&query=edition-node). + * [Pattern Lab/Node: Gulp Edition](https://github.com/pattern-lab/edition-node-gulp) contains info how to get started within a Gulp task running environment. * [Pattern Lab/Node: Grunt Edition](https://github.com/pattern-lab/edition-node-grunt) contains info how to get started within a Grunt task running environment. -## Core Team +![Pattern Lab Ecosystem](http://patternlab.io/assets/pattern-lab-2-image_18-large-opt.png) -* [@bmuenzenmeyer](https://github.com/bmuenzenmeyer) - Lead Maintainer -* [@geoffp](https://github.com/geoffp) - Core Contributor -* [@raphaelokon](https://github.com/raphaelokon) - CLI Contributor -* [@tburny](https://github.com/tburny) - Core Contributor +Core, and Editions, are part of the [Pattern Lab Ecosystem](http://patternlab.io/docs/advanced-ecosystem-overview.html). With this architecture, we encourage people to write and maintain their own editions. + +## Usage + +``` javascript +const config = require('./patternlab-config.json'); +const patternlab = require('patternlab-node')(config); +patternlab.build(doneCallBack, boolCleanOutputDir); +``` + +* Read more about configuration via `patternlab-config.json`: https://github.com/pattern-lab/patternlab-node/wiki/Configuration +* The rest of the [api / command line interface](https://github.com/pattern-lab/patternlab-node/wiki/Command-Line-Interface) is documented in the wiki, and already implemented for you within [Node Editions](https://github.com/pattern-lab?utf8=%E2%9C%93&query=edition-node). +A [full-featured command line interface](https://github.com/pattern-lab/patternlab-node-cli) is in the works, courtesy of [@raphaelokon](https://github.com/raphaelokon). + + +## Development Installation / Workflow + +If you are interested in [contributing to Pattern Lab](https://github.com/pattern-lab/patternlab-node/blob/master/.github/CONTRIBUTING.md), it's suggested to install an Edition of your choice and then run a local copy of this repository via [`npm link`](https://docs.npmjs.com/cli/link). + +``` bash +mkdir /patternlab-node +cd /patternlab-node +git clone https://github.com/pattern-lab/patternlab-node.git +npm install +npm link +cd location/of/edition +npm link patternlab-node +``` + +The above is a bit verbose, but illustrates: + +1. how to clone this repository to an arbitrary location +2. install all dependencies (run `npm install --dev` if your NODE_ENV is production for some reason) +3. setup the `npm link` to your local copy +4. use the local copy of patternlab-node in your edition + +> Make sure to change to whichever branch you intend to hack on or test within your cloned repository, such as `dev` or `bugfix/fixes-broken-unittest` ## Upgrading If you find yourself here and are looking to upgrade, check out how to upgrade from version to version of Pattern Lab Node here: [https://github.com/pattern-lab/patternlab-node/wiki/Upgrading](https://github.com/pattern-lab/patternlab-node/wiki/Upgrading) -## Command Line Interface - -The rudimentary [command line interface](https://github.com/pattern-lab/patternlab-node/wiki/Command-Line-Interface) is documented in the wiki, and already implemented for you within [Node Editions](https://github.com/pattern-lab?utf8=%E2%9C%93&query=edition-node). -A [full-featured command line interface](https://github.com/pattern-lab/patternlab-node-cli) is in the works, courtesy of [@raphaelokon](https://github.com/raphaelokon). +View the [ChangeLog](https://github.com/pattern-lab/patternlab-node/wiki/ChangeLog) for the latest Pattern Lab Node updates. ## Contributing If you'd like to contribute to Pattern Lab Node, please do so! There is always a lot of ground to cover and something for your wheelhouse. -No pull request is too small. Check out any [up for grabs issues](https://github.com/pattern-lab/patternlab-node/labels/help%20wanted%20%2F%20up%20for%20grabs) as a good way to get your feet wet, or add some more unit tests. +Please read the guidelines: https://github.com/pattern-lab/patternlab-node/blob/master/.github/CONTRIBUTING.md -## Guidelines -1. Please keep your pull requests concise and limited to **ONE** substantive change at a time. This makes reviewing and testing so much easier. -2. _ALWAYS_ submit pull requests against the [dev branch](https://github.com/pattern-lab/patternlab-node/tree/dev). If this does not occur, I will first, try to redirect you gently, second, port over your contribution manually if time allows, and/or third, close your pull request. If you have a major feature to stabilize over time, talk to @bmuenzenmeyer about making a dedicated `feature-branch` -3. If you can, add some unit tests using the existing patterns in the `./test` directory -4. To help hack on core from an edition, read [this wiki page](https://github.com/pattern-lab/patternlab-node/wiki/Running-an-Edition-Against-Local-Core) -## Coding style -Two files combine within the project to define and maintain our coding style. +## Core Team -* The `.editorconfig` controls spaces / tabs within supported editors. Check out their [site](http://editorconfig.org/). -* The `.eslintrc` defines our javascript standards. Some editors will evaluate this real-time - otherwise it's run using `grunt|gulp build` +* [@bmuenzenmeyer](https://github.com/bmuenzenmeyer) - Lead Maintainer +* [@geoffp](https://github.com/geoffp) - Core Contributor +* [@raphaelokon](https://github.com/raphaelokon) - CLI Contributor +* [@tburny](https://github.com/tburny) - Core Contributor -## Gitter +## Community The Pattern Lab Node team uses [our gitter.im channel, pattern-lab/node](https://gitter.im/pattern-lab/node) to keep in sync, share updates, and talk shop. Please stop by to say hello or as a first place to turn if stuck. Other channels in the Pattern Lab organization can be found on gitter too. + +There is also a dedicated Pattern Lab channel on the [design system slack](designsystems.herokuapp.com) run by [@jina](https://twitter.com/jina). + +Ask or answer Pattern Lab questions on Stack Overflow: http://stackoverflow.com/questions/tagged/patternlab.io + +## Support Pattern Lab Node + +Pattern Lab Node is on [Patreon account](https://www.patreon.com/patternlab) to allow users and organizations to directly support continued work on the Pattern Lab Node project. + +I (Brian talking) need help and support to make Pattern Lab Node a sustained success. I devote a lot of free time and would-be sleep to make the project what it is, but nothing compares to hearing back from users. It means the world to me when people find value in Pattern Lab Node. I am ridiculously humbled to hear and see what you all build with it. + +If you find yourself here and balk and the idea of supporting open source software monetarily - I understand. Carry on, but please do share what you build - we all learn more together. +- [Pattern Lab on Patreon](https://www.patreon.com/patternlab) + +## License + +[MIT](https://github.com/pattern-lab/patternlab-node/blob/master/LICENSE) diff --git a/patternlab.svg b/patternlab.svg new file mode 100644 index 000000000..b1980ba91 --- /dev/null +++ b/patternlab.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 64ee0f1e7d0f34ff8999a0219459924fa34619f9 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 21 Mar 2017 14:21:45 -0500 Subject: [PATCH 04/11] cherry pick the README --- README.md | 2 +- patternlab.png | Bin 0 -> 10939 bytes patternlab.svg | 6 ------ 3 files changed, 1 insertion(+), 7 deletions(-) create mode 100644 patternlab.png delete mode 100644 patternlab.svg diff --git a/README.md b/README.md index 6517e52f3..8bb404298 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Pattern Lab Logo](patternlab.svg) +![Pattern Lab Logo](/patternlab.png "Pattern Lab Logo") [![Build Status](https://travis-ci.org/pattern-lab/patternlab-node.svg?branch=master)](https://travis-ci.org/pattern-lab/patternlab-node) ![current release](https://img.shields.io/github/release/pattern-lab/patternlab-node.svg) ![license](https://img.shields.io/github/license/pattern-lab/patternlab-node.svg) [![Join the chat at Gitter](https://badges.gitter.im/pattern-lab/node.svg)](https://gitter.im/pattern-lab/node) diff --git a/patternlab.png b/patternlab.png new file mode 100644 index 0000000000000000000000000000000000000000..a177cea8f823a26be4f749b39f0a29ce07a6af82 GIT binary patch literal 10939 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 KuTj?({eJ*t2LYx4 literal 0 HcmV?d00001 diff --git a/patternlab.svg b/patternlab.svg deleted file mode 100644 index b1980ba91..000000000 --- a/patternlab.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From afebce9fa6a111d62fd01dd0fa4027ae0b49a5f5 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 21 Mar 2017 15:16:04 -0500 Subject: [PATCH 05/11] increment again --- core/lib/patternlab.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index 92e6e447b..f5e4b6e0e 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v2.9.0 - 2017 + * patternlab-node - v2.9.1 - 2017 * * Brian Muenzenmeyer, Geoff Pursell, Raphael Okon, tburny and the web community. * Licensed under the MIT license. diff --git a/package.json b/package.json index c4b5fb642..bf17b094d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "patternlab-node", "description": "Pattern Lab is a collection of tools to help you create atomic design systems. This is the node command line interface (CLI).", - "version": "2.9.0", + "version": "2.9.1", "main": "./core/lib/patternlab.js", "dependencies": { "chalk": "^1.1.3", From 523f55dd89b014ccdecfad1a6d95daa242464af9 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Tue, 21 Mar 2017 14:24:35 -0500 Subject: [PATCH 06/11] once more with feeling --- patternlab.png | Bin 10939 -> 11640 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/patternlab.png b/patternlab.png index a177cea8f823a26be4f749b39f0a29ce07a6af82..80edf70ad8497b8242dedf7f6401f2efd7a850f0 100644 GIT binary patch delta 10595 zcmYj%c|6qJ7r$NhF!m)&7;E-@XDkmgC0mTOsEC+hGUy{q7^29&PogNoV;f5$`#L;A z4B2NAN|RmvK0VL(_xk<*Jm1ucMnf+ z4&RSKvIpIjI5`2N!Y$+;##>CH!q8#%?{@R8cGrKqr2;el~#5&XMtLRmm`dbO^a~WV{}14pIL6evu7|VQjH&gD#B( z{k|HMd4m-;UNmg$v|d0$DD#%+Knw!#UPr04_+kx+fhXSgh!tO~0x@vF`yH{?%penR zn*-CyNmC}ds9`Q_u}G$g6FC$eKCYcG&WAQsjeRRaC8QGRerVT-}Aw)alo4wKF8 z&{*7N&&}-KU<|wV>rGnNc!G&a+!1#hZG?7)Ahwu3lRa@x3)%hNofl4FZTU2t*1AQh zSyQn#ggJQUpHEPSg+%6?Cy`OG>R8<*+D~Nj&F}jlw#q)s`8#K~# zxRZ>?WdO#T#O0ZpI4#;EY?}eNKVh*p?gJk z!d2pM^Y42j)ZD9tObB+`nM)e34}YM!p?GS*xv(+#vy_knzcFFe!JKw8m$IHB@x7E( z*Lvf1w0s-uQ12sL|IKbOcX`ZLaREN8Xx78iv_U8SXDQ6E^nttHGO8ceWAd7k;FSCK zw9)Z#7=0*4LA$UG`92Gy0L5HX;tzCwtCvxmPWK3BDPHS!(zU!i=r#21`04Uj`^)SA zM?*eFxl)u7D;gKV&~vo79J2khXkn6f=gyCGj)S$8_^m9R2 z?&(!mJPhU7{6pn0ia`vt$+&xr{c$0s_dedx*S>rpZ2LETA}-PI*^N&RwD}tg%iHd0 z36={i%o(VvLkyJnr}ocQz3KW(T0}*6fnm>^j3>7Ak8q5=m`@Mx^WLfH%o{u$xqr+5 zF9QXL!Nm#?t+rY`xT-e%G&)D5%*>QP>!WpdNl#Qt;Jfs5-!@iZc^_I+LYzune$xfk zn)O=S?w{|!m_+VraRE>av?j1(o3V$Lw>Gov@z$k0e-?Te$A^Sd&F2{j>uRa)fd6)+ z7!N)3G5LESS7Y|0ZRlwksq+JC^MUR) z5zRE6*T~G2OAuma((-H^NO zV+S4XsEciM@y{P+!S0y6z89I3y;1!E+og86LkpYX9{k}ksVFbrlJ;EJ?jQzNoxB=x zpi!F)QZr_RM)U9OtfK+AmzSre;V3D|qwR!p;n4t}mt&IxiV%b)-8jI3oox3L7N@bF z3WK9~mJOEV_xSXgOPnjoa!~xEZ^eA`7ZgwD2Pp7~TA-(V%S0N2fy1jDTSJsxv?+^WSTESW2#eqb$2I z4<_o0USf8-cYc?VfiyTuD;Cqq7{+TotN2=-$cEi9hmS{kAvk1A;zHGlOxT_7H>U%p zZyE0=eb)Y5I)+EfK=HKV2X!&~7RAj@bJal%}BE&EBK=>hM$Nd^LifaVzyU=SK-2uF3`RH&zwrVBBVpAOS%x=`Xh`^ z{@KG}5+46)px*P4A-l;vvFgF*Ap3SH=?(wT_z)kvaeDk;e?Mf@|71#-KVK!5 zHnmT0+F0(D>@Ebwu+T_-+}FPAxuR=JDY9%qf7OEKolns+5rezSllm<``!Jrd+iec(I-AzZFTg zC3-6*e!h=0nx7e-XTnOrlv*DJlvt zC?&BS?$mv5C$e}>=@i|G!PTxr4hb3@e3(LIcWW9GoWGB}CLn|L?Kab<9ihj}#gPu= z2&#Wc9_TSr-)4oMnK^dzH5Q-`9WNt|e?LjCQE2*N(noZLxem44{Hs5HYw*pOL>NJEItw zu=W{`E7cW^2_@giay>DT7o#pa`l+5VVSgn#Z_C>=C4VT2>XLI|IynaeKFB0I5HB%_ zUFF93tDbRU4f{74dt)Naqi8~HE5KDD^(8`twQ(z)Pki-**kOG7nhkHe4V1Xkue3|l_2av$b<6Z12K23E2hf|GFTwCI0MuRe|_G$B;pFaPMm=^tZxSJffV z0eTFHzVkRsRhqQr$1huCN(j)`G*^A-8{4m1)M%>#>98odzRD{rxj4kP!|o6WGE6~+ z6R#R&j#3syqy8UFLu8Him#vru{mXa^FjlPk$bBGZhrQYlig}DN_BWn^gx!fZ(}mT- zIY^O#vVkd>y)p43TqG-LWS;-|SZt_OCFz*D!!6QbSI*GgsokjhzUS|$#N+WbPc&`V zL*Yaewnk*4t=@lor+L_O3?rm{vcA_`b68W9tGe>5 z!9Dj<&fdBntxWjd0=J9htMnC6b^Cz%TOj@ZrTny zk%&SO8fh^#FH{d6WQ^;ywdZh*ux)=tQN%^uQFq@Z+iI10{!+j(eBQJsjt11NzFpYQ`Cqo2AqkG>F$uZv_htdz;?No_SkiS7D|_8_SEB zbCIrw90yac25%kd$WLbtqDW3^1Gs>6v+j;OVA+7d=67pE1RQ_Y7BqLmggC zu#qc6H3VPcwoF5AGg3}ioi+Ugw9219S~Z5vBmgUu?4*+VyryxTxyk;M&BCB?6}UIjiG{szfOKeiwTXI+r3_D7lN`h^KskgC$SnHVVwmD@HQnJcT14c z&9}!bfe4Ktx; zuF<)EMX3?D%0dz78%Ej5iF|E=DHGPE+PqHVNL~q%+fJ^E4p`+*^L+^sf zmKY4ct<%p!V}a>o`}TuaBbGZIxz)X*1(8qXUi z*SrKYidy;9Luyq<>tr`};Er$MxM7y?uF#DK^0AP(^#vC-bdHU_ZJ?wt1>=ms-j7*ap@J<&z4mJ!OEhQB(=;9kWLvqYgb6(Bs^Ky!JbI;W>|`vR(B(naG!iyc zph4{#i|7PfA|-wAlkof7!ikc{W$kW^YeR<+{Xft@T-m%XPGX09-`9ag)8h}oo1WJ| z;fZ*lwv?JOPTr^9&xTUcn`C7 zE+p`WE#U$o5bY6acXY)iAnE!+HG$DlbMqS{ZjC0?M*)i4eI!=oF@>4%mf{;CNWSA&|3C&C^29B$}WMAoFG;x z)sWJ-hi54z_i7*0GPT7e?JQD%lqPwcKFF2{3~ypx``O4?&aIF{+S$HoyZ>@Ah3@>q zu$g6VbmbSI%-vO64A*vv2nv45u^W4-qTglC%!od@t0;yWwh1#FD!IQ>Y!M zZhdmpr#p+0G=SvOv_Hd%HkPgTKtl8>$$x!Wub1An9BPEJ(IoQd7U0CxEpsWur|?nQz6X@ zxj1V~u<3F|rId1dg^x1wN=eB;Daj5_ae-6J;S_1GaskCiKr!45IN*t= zA%Dr*cS+MfNIU){c2|D?tAdvQQIw*8N85=d72jN9!iutl7vBOWF(LSx5V%bU1DiSvyv04Lh(s5Do!1L zQk;!!t-l4uNHXBeHfGiczTozKcs?2${I>zaix7_BwSJBdLJ^eQ7QQ}LI`#~3=bacj zvJj}#@7#t1pG?bpc4dC7#{ z1PI_-{Ok0*)GvcaMIkIW9;a1*iO+&wNzgyz?cyIJTi*sMo1+(}efIX2bqx#Ro7d@^ zHnZGaH2HDMS{ftK z1^euv4^LIs#gZf=s<&0Cw%(r@D3kXpy)ttS(Pd`j+6hy!q;YWa` zH~JYb@Rawixcq`VF@1e#(uC7s=B?h)L&cJ{5Xqj>6J5ADdg+~C<9$6Y9_)sdsHW!L z7hx(Ud{5E?`Q7P25O{vqYLN}7Lm3L5Uf!X93pGIt z6Nt@?l=Y!mszC1sIkoNK>Hv;`Y+f-!`ub=S(En1CU0m4z-t|4m0ltMBya&C^(Hw1V z!Wo7y4vQ2uPh3SsI|oycR8pigNj&b{{&RQ1f|W$n^My}6mJuQBF_8B($vY2z<=e## z|U+ZjHSCFY?Yt+TZ5=T;R!{r3aa=-?fLW3jfDM5Pr;|c7AF?{Sy!$QaKQy|1vViMt{(U2{Y)+>%WXB2n)z%F zhD2J$Z8>0yGy0nBw__Yh2zYPqe634xoS5QLF|RZcriLyI4{>;JK67#QtKeUwq+hDU z`wwgGNYEowtEi;$e$`deM}z682k4aVG-u0~J%DE{R&LhmJWo;6H15ZsFvQtzGx?ICY~l>Z2t!VZj3BN>?4gMC9TuYoz%Y`JVBZ?s@QQ%hnDu zwem7(6Eu+M2D8~>(rfa5v3#0)PeJQyG8k{WRZhy|1u$z5bPQsYqLrf{UJ}UoP=*}i|#r}Jz>ArBmFY6sBGws_}GF9Y(_oK?y9<)WaLz4 zM2%cFb--^qV{DDiT@^dRNa_gs&8J_oDv_ zlVct0$1XOcGHiyDv@qBDw3_>y`23TFEBSwaf`GE?&Q{b8l;n1#78g5t?$O#}Idk*O zO9s?y$r;fu2qNb%d!2HB-DrF5yEE*hBx?#YoZ$G1Qf_wK(^L7iVmG96I}>a4>)ndY znf=l_V9z(f_J2`#OSn16b9PIUB%%)wF8kk@%3I@^u8AFa|#pY;__Eus!dl*fN* z>7|%qG~+Ob&_d`!{_nGKqhXs6>aW19UKy~+k+7PxbsZ!5s@gw|ra9wwoswt&E)e1%q5(-%z}M(1%}F;&WsEJ+j(;*x zuLb!Hay1OjD5Br=jg!e7Yb}67AN&cO$KPi5Q^JnisHu4ojjkH5)p?shdEPt5;>O6d z4djF0DeVP!jf3Dt)S%AK295_UjusnL7wFk>rYR2WeRa5bvEyF$DNk+Ho z8#GlVest%%?b#1B=f1lzw3K?To`nC!ty4ZLdPK=|;V&wonQ3IqZ!{wK{9>OAF*W8z z%m5OJReAJ**Errpd|n2k`fk~riZraoQz_!>Z%L;^<|RvT=zLu^j~%%?3>ycd@?o<+ zd4jhHSui!G6LU@EiQ$UR87Z2i+LGAVHq}0-9^J2){i=%>;i{gw(oRu~!pL|qY#`zl zHzjUDEVg_@TY6PBW^wk<%rNMY!8BY(-7=Z}bc$erz7tEQ1tn;j0 zOPQHJ??iSo!zn(sPj{-0@lTDfn&SRt)v4tIJ=17Wnon3dr-ocuxJL!{n z^rf8R7KWg+8%84Z>752#msp#vGRgl6zla-D-#C_QmYl{KRIKr67Hj3D8J0Srwx1Nc zs&*vL6M&Pcj}gt!rw&4-YTxd)ccCcMMY!rjivE6e(B}RWiP-n*l-x$xoWCW31eM&iP zTs7HA5TdWuxXxbj1&LCDlnSJAC5Z<#?guas>6G-~(dlZ4nh+xj>+xK4vO%$6kmKq2 zvv)&oD={7>1o?l=FqaLW^?jXbUeDa>b2isv6qyL0|XeR}g49z-Ju4h__B zAiNQFlQY*xRt%#^eX8kjO8)ne>ug7S121GOmR^ScGfb&lpx1;%W9!8Odp*+Jrhp&a zO;`Q$E|j^wQ!*x0LhY~A459)s7D-6!!_74BZO<_{MPSI+?atnod=?*BdPf7uX){j5 zu^dB$kbwo9t6bkNwX&d~_)`12Fux0Kg61tZqH<2C5^>{%%Gnm%CF3Em%+Sht4|*)T zeVbjQc3o|N*~iVabEwG6jBtSfRL+KnE3K&wsF@Z5J1GmynvgTjbcoPFMXi~;4f8ke zL3=nw<}&O$+v|ec7tfeGEP@yWv7IrN`e|hc79alpa1X3T+uY)?E$N;(k&9p@2~Wy{ z<^Fz&H_VR~ozIVF^tkK7Jo}y-rk(jYagI+)9?-JFJiBG`#uTf^t=-mv&ZLF&%8+P* zk{g)fN?93mh2a>ZwX}O>q+wfgR}t2ZOXAtzI4Rh4(#Qy8~tOzGHX2+Zy*$Z=L>=g4hIH?PskB&=aQdXETL5yoFO7Po;O& z5$AhUsXJJ+akZ-7tz{KlYRYa|q@9b9w z6!x;s@2fkJ{Tkzp2D7t|>P?3Vr5l25_f-SvwLH(rq>6Lg|9{?$O-HYtM zGb*~_Z3i(>gC1L)Vqjx23W+aBc_sv{Rpeh&!XMOyVB@UVPJ!R}JZ9smAM&ZsNjJDV zBd01q(=P$NZ(cuf>xst&_q+?L@VTIPs1$TFVL?zD5-tBLOijZ}Tqi_ce(j@j8EKx$ zSNEeSVqu86RRgptJgNZ3%(%4nxB0Z0d%iRmtn zw#-Wh$_V&!_-(1skapv}G}!t8=@2o=2;?~tn*z}Pl2YPTioYDRvD2w{9GcJb5#%rYODoaM6)Anq>KK)JcbdPz4}}ncWVlqQ0|v(T zF2&=&e~FfSNsg4t`GED9`{uaA0>SQB!KZA-UZr@>i8UuM!_ZQ%$?LpB(L7zDCP6Gb z*d1H1sRJ9fp=7UCG4vm~%s&h{IvuK7_$049s!sDtk|0ewSx@hbYjxMhMS8%l%aou& zr`7Qx8xo;739MImm67DS3p~8eQlZ(5q4sa#D3N8mB^~J9S4!BMUFcRB7brgCTm>I* zR$D9QV5sp96CbulYK=X|a_GugMe`3&30H=wr)}K{;N!OsM!d>7fA{ODtHLl3BR>_QeT0iVKS(L^sGPs*j@{4$^r8t0I;3e;9tbhTOGL7SK*Z0c zL`TG9jm}DvvISeUZb0!Dy70zE{=pMncUptv3|h|w08Ro|4_p{_AdOl+p{dntO8hw= z(E8m{RbX=cS1I`5AFuo7RkD)eM#VcRsPaSXABriy5f;|VBE?sEvOPkZj#I1Fz1y$hkyT5Wy z=n`>^;`QWd$S;Xu+0*9U!0VEO&Sdv8`!bSu5`R<)@=3wgk`nvcN6qg>67F(qeuOg8 z!z6(y;G*QrysO9e=jU?HedV4hE+v(<09c`ng3N@iH;T1Kj?Zl37F6^h2K;qqq3Ocy zcKGe}jW==YJl3lrq2uv5#t&X)N?(6Yv3^}rIxg_}I(jj+UxiBxZ1uQ!XL|&>za%&_ z8tv}D(~xCD7!z$pni6_K12m%fFu_Losb7~2I}x6chO8S>yP*f5vi_iBL;rUGz!^6B z07-C8TT8!)ZC6|QMF-<}Os1SYUHq&XyRDUDNP9$MolSNxy#%&p_!>k5E2Tz<{4ZVh zcUDVxdEJ+6u{Brspygn5%lik%omRU)Kd)G9pAbiTKZoUdM?Iy}(TosNO~Cbg72Y`R z9Pz02WLo-o*jDh@w+G_}=#SaJh1YgDjFM_lj4-Y-ckQ0B*2PQdCK5Awv0?U1-qa`H}_~|V)Mw9D0-|YC;OLi zW!0kMT2sRFZj)#M?kREvEyO@6^L6(w`AFr#S43w-Jy?6P%g>k%Oa_W?X4V!dm=RWy z3hzR${xDmR4&5ut^oOHpYdi+h3$LBZ`qZL#d|eq~TFciStd&<>2sj>#eicwg(p*r5 zHoxZx(QFt*+Xp`8a}Ks|ebSy!qv57!#O)lc90=DLq`b0ejeKX?W6op(!8*x3J zdq<&^)CynmAx7N3>|;Xs;eBm3f}^%YeVh?n%-vks%evJj)4T`2$Oy&wrDAWfM-O!A zgFihSupQGY4xTr-Nu{I*#iY51X`cfm45X}_;1pZ(2IN<+!@g}9>1a}8##2!}O&q*b z8Y=W^-U)_!7pp-G(D={C;)>%U*hOlKeu2svbgR-X4cJ1rQ0(ujdGMw1rV23z_ou_o ziD{qDwmb~1I?4tm=DnUxZ= delta 9888 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 Tua$i1i~?z3rvFUWHTnMm#K4pz From 893a05b8cdc54ebde4f5cb75ab93bd766a743652 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Mon, 24 Apr 2017 08:23:51 -0500 Subject: [PATCH 07/11] fix an order of operations problem pattern link assignment and pattern processing were transposed at some point, despite what the comments stated fixes https://github.com/pattern-lab/edition-node-gulp/issues/102 --- core/lib/patternlab.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index f5e4b6e0e..f8e99e96b 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -528,6 +528,10 @@ var patternlab_engine = function (config) { patternlab.events.emit('patternlab-pattern-iteration-end', patternlab); + //now that all the main patterns are known, look for any links that might be within data and expand them + //we need to do this before expanding patterns & partials into extendedTemplates, otherwise we could lose the data -> partial reference + pattern_assembler.parse_data_links(patternlab); + //diveSync again to recursively include partials, filling out the //extendedTemplate property of the patternlab.patterns elements // TODO we can reduce the time needed by only processing changed patterns and their partials @@ -537,10 +541,6 @@ var patternlab_engine = function (config) { processHeadPattern(); processFootPattern(); - //now that all the main patterns are known, look for any links that might be within data and expand them - //we need to do this before expanding patterns & partials into extendedTemplates, otherwise we could lose the data -> partial reference - pattern_assembler.parse_data_links(patternlab); - //cascade any patternStates lineage_hunter.cascade_pattern_states(patternlab); From 05c38b67280a3a440365463ec08b2f6727c3cc31 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Wed, 26 Apr 2017 06:29:11 -0500 Subject: [PATCH 08/11] wip integration-style test --- core/lib/patternlab.js | 5 +- test/files/_data/listitems.json | 11 +++- test/files/_meta/_00-head.mustache | 0 test/files/_meta/_01-foot.mustache | 0 .../_patterns/00-test/paramMiddle.mustache | 3 + test/files/_patterns/00-test/paramParent.json | 11 ++++ .../_patterns/00-test/paramParent.mustache | 1 + test/files/partials/general-footer.mustache | 0 test/files/partials/general-header.mustache | 0 test/files/partials/patternSection.mustache | 0 .../partials/patternSectionSubtype.mustache | 0 test/files/viewall.mustache | 0 test/patternlab_tests.js | 50 +++++++++++--- test/util/patternlab-config.json | 66 +++++++++++++++++++ 14 files changed, 134 insertions(+), 13 deletions(-) create mode 100644 test/files/_meta/_00-head.mustache create mode 100644 test/files/_meta/_01-foot.mustache create mode 100644 test/files/_patterns/00-test/paramMiddle.mustache create mode 100644 test/files/_patterns/00-test/paramParent.json create mode 100644 test/files/_patterns/00-test/paramParent.mustache create mode 100644 test/files/partials/general-footer.mustache create mode 100644 test/files/partials/general-header.mustache create mode 100644 test/files/partials/patternSection.mustache create mode 100644 test/files/partials/patternSectionSubtype.mustache create mode 100644 test/files/viewall.mustache create mode 100644 test/util/patternlab-config.json diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index f8e99e96b..0592468a3 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -22,6 +22,8 @@ var diveSync = require('diveSync'), packageInfo = require('../../package.json'), plutils = require('./utilities'), jsonCopy = require('./json_copy'), + ui = require('./ui_builder'), + ui_builder = new ui(), PatternGraph = require('./pattern_graph').PatternGraph; //register our log events @@ -150,7 +152,6 @@ var patternlab_engine = function (config) { var pa = require('./pattern_assembler'), pe = require('./pattern_exporter'), lh = require('./lineage_hunter'), - ui = require('./ui_builder'), sm = require('./starterkit_manager'), Pattern = require('./object_factory').Pattern, CompileState = require('./object_factory').CompileState, @@ -606,7 +607,7 @@ var patternlab_engine = function (config) { } patternlab.isBusy = true; buildPatterns(deletePatternDir); - new ui().buildFrontend(patternlab); + ui_builder.buildFrontend(patternlab); printDebug(); patternlab.isBusy = false; callback(); diff --git a/test/files/_data/listitems.json b/test/files/_data/listitems.json index efcd8b4f1..3187a7a8d 100644 --- a/test/files/_data/listitems.json +++ b/test/files/_data/listitems.json @@ -1,4 +1,11 @@ { - "test_list_item" : "izzn thizzle" + "1": { + "title": "Nullizzle shizznit velizzle, hizzle, suscipit own yo', gravida vizzle, arcu." + }, + "2": { + "title": "Veggies sunt bona vobis, proinde vos postulo" + }, + "3": { + "title": "Bacon ipsum dolor sit amet turducken strip steak beef ribs shank" + } } - diff --git a/test/files/_meta/_00-head.mustache b/test/files/_meta/_00-head.mustache new file mode 100644 index 000000000..e69de29bb diff --git a/test/files/_meta/_01-foot.mustache b/test/files/_meta/_01-foot.mustache new file mode 100644 index 000000000..e69de29bb diff --git a/test/files/_patterns/00-test/paramMiddle.mustache b/test/files/_patterns/00-test/paramMiddle.mustache new file mode 100644 index 000000000..c3fafb439 --- /dev/null +++ b/test/files/_patterns/00-test/paramMiddle.mustache @@ -0,0 +1,3 @@ +
+ {{> test-nav }} +
diff --git a/test/files/_patterns/00-test/paramParent.json b/test/files/_patterns/00-test/paramParent.json new file mode 100644 index 000000000..32a6c0952 --- /dev/null +++ b/test/files/_patterns/00-test/paramParent.json @@ -0,0 +1,11 @@ +{ + "brad" : { + "url" : "link.twitter-brad" + }, + "dave" : { + "url" : "link.twitter-dave" + }, + "brian" : { + "url" : "link.twitter-brian" + } +} diff --git a/test/files/_patterns/00-test/paramParent.mustache b/test/files/_patterns/00-test/paramParent.mustache new file mode 100644 index 000000000..bf4e84562 --- /dev/null +++ b/test/files/_patterns/00-test/paramParent.mustache @@ -0,0 +1 @@ +{{> test-paramMiddle(styleModifier: "foo") }} diff --git a/test/files/partials/general-footer.mustache b/test/files/partials/general-footer.mustache new file mode 100644 index 000000000..e69de29bb diff --git a/test/files/partials/general-header.mustache b/test/files/partials/general-header.mustache new file mode 100644 index 000000000..e69de29bb diff --git a/test/files/partials/patternSection.mustache b/test/files/partials/patternSection.mustache new file mode 100644 index 000000000..e69de29bb diff --git a/test/files/partials/patternSectionSubtype.mustache b/test/files/partials/patternSectionSubtype.mustache new file mode 100644 index 000000000..e69de29bb diff --git a/test/files/viewall.mustache b/test/files/viewall.mustache new file mode 100644 index 000000000..e69de29bb diff --git a/test/patternlab_tests.js b/test/patternlab_tests.js index 84eb81d2f..6317aeccc 100644 --- a/test/patternlab_tests.js +++ b/test/patternlab_tests.js @@ -1,15 +1,47 @@ 'use strict'; var tap = require('tap'); +var rewire = require("rewire"); +var config = require('./util/patternlab-config.json'); -tap.test('buildPatternData - should merge all JSON files in the data folder except listitems', function(test){ - var fs = require('fs-extra'); - var plMain = require('../core/lib/patternlab'); - var data_dir = './test/files/_data/'; +var plEngineModule = rewire('../core/lib/patternlab'); + +//set up a global mocks - we don't want to be writing/rendering any files right now +var uiBuilderMock = { + buildFrontend: function (patternlab) { } +}; + +//set our mocks in place of usual require() +plEngineModule.__set__({ + 'ui_builder': uiBuilderMock +}); + +var pl = new plEngineModule(config); + + +// tap.test('buildPatternData - should merge all JSON files in the data folder except listitems', function(test){ +// var fs = require('fs-extra'); +// var plMain = require('../core/lib/patternlab'); +// var data_dir = './test/files/_data/'; +// +// var dataResult = plMain.build_pattern_data(data_dir, fs); +// test.equals(dataResult.data, "test"); +// test.equals(dataResult.foo, "bar"); +// test.equals(dataResult.test_list_item, undefined); +// test.end(); +// }); + +tap.test('buildPatterns - should replace data link even when pattern parameter present', function(test) { + //arrange + + //act + pl.build(function() { + + test.equals(1,1); + test.end(); + + }, true); + + //assert - var dataResult = plMain.build_pattern_data(data_dir, fs); - test.equals(dataResult.data, "test"); - test.equals(dataResult.foo, "bar"); - test.equals(dataResult.test_list_item, undefined); - test.end(); }); diff --git a/test/util/patternlab-config.json b/test/util/patternlab-config.json new file mode 100644 index 000000000..47e6a085f --- /dev/null +++ b/test/util/patternlab-config.json @@ -0,0 +1,66 @@ +{ + "paths" : { + "source" : { + "root": "./test/files/", + "patterns" : "./test/files/_patterns/", + "data" : "./test/files/_data/", + "meta": "./test/files/_meta/", + "styleguide" : "./test/files/styleguide/", + "patternlabFiles" : "./test/files/", + "js" : "./test/files/js", + "images" : "./test/files/images", + "fonts" : "./test/files/fonts", + "css" : "./test/files/css/" + }, + "public" : { + "root" : "./test/public/", + "patterns" : "./test/public/patterns/", + "data" : "./test/public/data/", + "styleguide" : "./test/public/styleguide/", + "js" : "./test/public/js", + "images" : "./test/public/images", + "fonts" : "./test/public/fonts", + "css" : "./test/public/css" + } + }, + "styleGuideExcludes": [ + "templates", + "pages" + ], + "defaultPattern": "all", + "ignored-extensions" : ["scss", "DS_Store", "less"], + "ignored-directories" : ["scss"], + "debug": false, + "ishControlsHide": { + "s": false, + "m": false, + "l": false, + "full": false, + "random": false, + "disco": false, + "hay": true, + "mqs": false, + "find": false, + "views-all": false, + "views-annotations": false, + "views-code": false, + "views-new": false, + "tools-all": false, + "tools-docs": false + }, + "ishMinimum": "240", + "ishMaximum": "2600", + "patternStateCascade": ["inprogress", "inreview", "complete"], + "patternStates": { + }, + "patternExportPatternPartials": [], + "patternExportDirectory": "./pattern_exports/", + "cacheBust": true, + "outputFileSuffixes": { + "rendered": ".rendered", + "rawTemplate": "", + "markupOnly": ".markup-only" + }, + "cleanOutputHtml": true, + "exportToGraphViz": false +} From b38039186abd1a5bdd7d86c7a4ea15c0b8d26a3f Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Wed, 26 Apr 2017 22:54:15 -0500 Subject: [PATCH 09/11] finish coverage for data link issue closes #653 --- core/lib/patternlab.js | 5 +- .../_patterns/00-test/paramMiddle.mustache | 2 +- test/files/_patterns/00-test/paramParent.json | 10 +-- test/patternlab_tests.js | 68 +++++++++++++------ test/util/patternlab-config.json | 3 +- 5 files changed, 53 insertions(+), 35 deletions(-) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index 0592468a3..3a5c03f75 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -24,6 +24,8 @@ var diveSync = require('diveSync'), jsonCopy = require('./json_copy'), ui = require('./ui_builder'), ui_builder = new ui(), + pe = require('./pattern_exporter'), + pattern_exporter = new pe(), PatternGraph = require('./pattern_graph').PatternGraph; //register our log events @@ -150,7 +152,6 @@ var patternlab_engine = function (config) { 'use strict'; var pa = require('./pattern_assembler'), - pe = require('./pattern_exporter'), lh = require('./lineage_hunter'), sm = require('./starterkit_manager'), Pattern = require('./object_factory').Pattern, @@ -160,7 +161,6 @@ var patternlab_engine = function (config) { patternlab.engines = patternEngines; var pattern_assembler = new pa(), - pattern_exporter = new pe(), lineage_hunter = new lh(); patternlab.package = fs.readJSONSync(path.resolve(__dirname, '../../package.json')); @@ -581,7 +581,6 @@ var patternlab_engine = function (config) { } } - //render all patterns last, so lineageR works patternsToBuild.forEach(pattern => renderSinglePattern(pattern, head)); diff --git a/test/files/_patterns/00-test/paramMiddle.mustache b/test/files/_patterns/00-test/paramMiddle.mustache index c3fafb439..31169fb7e 100644 --- a/test/files/_patterns/00-test/paramMiddle.mustache +++ b/test/files/_patterns/00-test/paramMiddle.mustache @@ -1,3 +1,3 @@
- {{> test-nav }} + {{> test-link }}
diff --git a/test/files/_patterns/00-test/paramParent.json b/test/files/_patterns/00-test/paramParent.json index 32a6c0952..d913cc535 100644 --- a/test/files/_patterns/00-test/paramParent.json +++ b/test/files/_patterns/00-test/paramParent.json @@ -1,11 +1,3 @@ { - "brad" : { - "url" : "link.twitter-brad" - }, - "dave" : { - "url" : "link.twitter-dave" - }, - "brian" : { - "url" : "link.twitter-brian" - } + "url" : "link.test-foo" } diff --git a/test/patternlab_tests.js b/test/patternlab_tests.js index 6317aeccc..0ea02de9b 100644 --- a/test/patternlab_tests.js +++ b/test/patternlab_tests.js @@ -1,47 +1,73 @@ 'use strict'; -var tap = require('tap'); -var rewire = require("rewire"); +const tap = require('tap'); +const rewire = require("rewire"); +const _ = require('lodash'); +const fs = require('fs-extra'); var config = require('./util/patternlab-config.json'); var plEngineModule = rewire('../core/lib/patternlab'); //set up a global mocks - we don't want to be writing/rendering any files right now -var uiBuilderMock = { +const uiBuilderMock = { buildFrontend: function (patternlab) { } }; +const fsMock = { + outputFileSync: function (path, content) { /* INTENTIONAL NOOP */}, + readJSONSync: function(path, encoding) { + return fs.readJSONSync(path, encoding); + }, + removeSync: function(path) { fs.removeSync(path); }, + emptyDirSync: function(path) { fs.emptyDirSync(path); }, + readFileSync: function(path, encoding) { return fs.readFileSync(path, encoding); }, +} + //set our mocks in place of usual require() plEngineModule.__set__({ - 'ui_builder': uiBuilderMock + 'ui_builder': uiBuilderMock, + 'fs': fsMock }); -var pl = new plEngineModule(config); - +tap.test('buildPatternData - should merge all JSON files in the data folder except listitems', function(test){ + var data_dir = './test/files/_data/'; -// tap.test('buildPatternData - should merge all JSON files in the data folder except listitems', function(test){ -// var fs = require('fs-extra'); -// var plMain = require('../core/lib/patternlab'); -// var data_dir = './test/files/_data/'; -// -// var dataResult = plMain.build_pattern_data(data_dir, fs); -// test.equals(dataResult.data, "test"); -// test.equals(dataResult.foo, "bar"); -// test.equals(dataResult.test_list_item, undefined); -// test.end(); -// }); + var dataResult = plEngineModule.build_pattern_data(data_dir, fs); + test.equals(dataResult.data, "test"); + test.equals(dataResult.foo, "bar"); + test.equals(dataResult.test_list_item, undefined); + test.end(); +}); tap.test('buildPatterns - should replace data link even when pattern parameter present', function(test) { //arrange + var patternExporterMock = { + /* + In this test, we actually take advantage of the pattern export functionality post-build to inspect what + the contents of the patterns look like. This, coupled with a mocking of fs and the ui_builder, allow us to focus + only on the order of events within build. + */ + export_patterns: function (patternlab) { + var pattern = _.find(patternlab.patterns, (pattern) => { + return pattern.patternPartial === 'test-paramParent'; + }); + //assert + test.equals(pattern.patternPartialCode.indexOf('00-test-00-foo.rendered.html') > -1, true, 'data link should be replaced properly'); + } + }; + + plEngineModule.__set__({ + 'pattern_exporter': patternExporterMock + }); + + config.patternExportPatternPartials = ['test-paramParent']; + var pl = new plEngineModule(config); + //act pl.build(function() { - - test.equals(1,1); test.end(); - }, true); - //assert }); diff --git a/test/util/patternlab-config.json b/test/util/patternlab-config.json index 47e6a085f..d13f33508 100644 --- a/test/util/patternlab-config.json +++ b/test/util/patternlab-config.json @@ -62,5 +62,6 @@ "markupOnly": ".markup-only" }, "cleanOutputHtml": true, - "exportToGraphViz": false + "exportToGraphViz": false, + "cleanPublic": true } From 579cc98e1b7bf1a897db52e74fb9a7c3bb54ed7a Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Wed, 26 Apr 2017 23:24:05 -0500 Subject: [PATCH 10/11] increment version tested locally against starterkit-mustache-demo with the original test case --- core/lib/patternlab.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/lib/patternlab.js b/core/lib/patternlab.js index 3a5c03f75..6ee8d5d44 100644 --- a/core/lib/patternlab.js +++ b/core/lib/patternlab.js @@ -1,5 +1,5 @@ /* - * patternlab-node - v2.9.1 - 2017 + * patternlab-node - v2.9.2 - 2017 * * Brian Muenzenmeyer, Geoff Pursell, Raphael Okon, tburny and the web community. * Licensed under the MIT license. diff --git a/package.json b/package.json index bf17b094d..8c856442d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "patternlab-node", "description": "Pattern Lab is a collection of tools to help you create atomic design systems. This is the node command line interface (CLI).", - "version": "2.9.1", + "version": "2.9.2", "main": "./core/lib/patternlab.js", "dependencies": { "chalk": "^1.1.3", From 1f456d2d6e5602919ac75e660fcf5a2ab71f943a Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Wed, 3 May 2017 04:12:29 -0500 Subject: [PATCH 11/11] added backers to README --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 8bb404298..942921085 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,15 @@ This repository contains the core functionality for Pattern Lab Node. Pattern La [Online Demo of Pattern Lab Output](http://demo.patternlab.io/) +## Support for Pattern Lab Node + +Pattern Lab Node wouldn't be what it is today without the support of the community. It will always be free and open source. Continued development is made possible in part from the support of [these wonderful project supporters](https://github.com/pattern-lab/patternlab-node/wiki/Thanks). If you want to learn more about supporting the project, visit the [Pattern Lab Node Patreon page](https://www.patreon.com/patternlab). + +**:100: Thanks for support from the following:** + +* **[Brad Frost](http://bradfrost.com/)** +* Marcos Peebles + ## Installation Pattern Lab Node Core is designed to be consumed, and by default is included as a dependency within two example [Node Editions](https://github.com/pattern-lab?utf8=%E2%9C%93&query=edition-node). @@ -84,15 +93,6 @@ There is also a dedicated Pattern Lab channel on the [design system slack](desig Ask or answer Pattern Lab questions on Stack Overflow: http://stackoverflow.com/questions/tagged/patternlab.io -## Support Pattern Lab Node - -Pattern Lab Node is on [Patreon account](https://www.patreon.com/patternlab) to allow users and organizations to directly support continued work on the Pattern Lab Node project. - -I (Brian talking) need help and support to make Pattern Lab Node a sustained success. I devote a lot of free time and would-be sleep to make the project what it is, but nothing compares to hearing back from users. It means the world to me when people find value in Pattern Lab Node. I am ridiculously humbled to hear and see what you all build with it. - -If you find yourself here and balk and the idea of supporting open source software monetarily - I understand. Carry on, but please do share what you build - we all learn more together. -- [Pattern Lab on Patreon](https://www.patreon.com/patternlab) - ## License [MIT](https://github.com/pattern-lab/patternlab-node/blob/master/LICENSE)