| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- var tokenize   = require("html-tokenize");
 
- var through2   = require("through2");
 
- var vinyl      = require("vinyl");
 
- var select     = require("html-select");
 
- /**
 
-  * @param config
 
-  * @param item
 
-  * @param markup
 
-  * @param done
 
-  */
 
- function directiveStripper(config, item, markup, done) {
 
-     var replacer = getReplacer(item, config);
 
-     var chunks = [];
 
-     new vinyl({
 
-             contents: new Buffer(markup)
 
-         })
 
-         .pipe(tokenize())
 
-         .pipe(replacer)
 
-         .pipe(through2.obj(function (row, buf, next) {
 
-             chunks.push(row[1]);
 
-             next();
 
-         }, function () {
 
-             done(null, chunks.join(""));
 
-         }));
 
-     replacer.resume();
 
- }
 
- /**
 
-  * @param name
 
-  * @param item
 
-  * @returns {*|exports}
 
-  */
 
- function getReplacer (name, markup) {
 
-     return select(name, function (e) {
 
-         var tr = through2.obj(function (row, buf, next) {
 
-             if (row[0] === "open") {
 
-                 this.push([row[0], directive(name, String(row[1]), markup)]);
 
-             } else {
 
-                 this.push([ row[0], "" ]);
 
-             }
 
-             next();
 
-         });
 
-         tr.pipe(e.createStream()).pipe(tr);
 
-     });
 
- }
 
- /**
 
-  * @param name
 
-  * @param content
 
-  * @param item
 
-  * @returns {*|string}
 
-  */
 
- function directive (name, content, item) {
 
-     var angularDir;
 
-     try {
 
-         angularDir = require("../src/scripts/directives/" + name)();
 
-     } catch (e) {
 
-         console.log("Directive not found, cannot re-use");
 
-         return content;
 
-     }
 
-     var scope = item;
 
-     scope = angularDir.link(scope, {}, {});
 
-     return angularDir.template.replace(/\{\{(.+?)\}\}/, function ($1, $2) {
 
-         if ($2 in scope) {
 
-             return scope[$2];
 
-         }
 
-         return $1;
 
-     });
 
- }
 
- module.exports.getReplacer       = getReplacer;
 
- module.exports.directive         = directive;
 
- module.exports.directiveStripper = directiveStripper;
 
 
  |