Example #1
0
function parseFiles(file, loopCb) {
  let fileContents = fs.readFileSync(file, 'utf8')
  let cleaned = stripMarkdownMetadata(fileContents)

  // parse it for metadata
  let parsed = metaMarked(fileContents)

  // flatten silly nesting structure
  let result = parsed.meta
  let url = '/blog/' + parsed.meta.slug

  result.url = url
  result.startingFilename = file
  result.markdown = cleaned
  result.outputFile = url + '.html'
  result.date = new Date(result.date)

  // smart links in headers
  let lexed = marked.lexer(cleaned)
  let html = marked.parser(lexed, {renderer: renderer})

  let minimize = new Minimize()
  minimize.parse(html, function (err, data) {
    if (err) throw err
    result.html = data
    loopCb(null, result)
  })
}
Example #2
0
 fs.readFile(file.source.path, 'utf8', function (err,data) {
   if (err) {
     return console.log(err);
   }
   minimize.parse(data , function (error, data) {
     file.min.size = data.length;
     fs.writeFile(file.min.path, data, callback);
   });
 });
Example #3
0
		.pipe(es.map(function(file){
			var source = fs.readFileSync(filename),
				minimize = new Minimize();
				
			minimize.parse(source.toString(), function (err, data) {
				if (err) throw err;
				var expected = data;
				expect(expected).to.be.equal(file.contents.toString());
				done();
			});
		}));
Example #4
0
        processOutput: function(data, onSuccess, onError) {
            data = data.replace(/"/g, '"');

            var Minimize = require('minimize');
            var minimize = new Minimize({quotes: true});

            minimize.parse(data, function(error, result) {
                if (error) {
                    onError(error);
                } else {
                    onSuccess(result);
                }
            });
        }
Example #5
0
		eachAsync(this.files, function (el, i, next) {
			var minimize = new Minimize(options);
			var src = el.src[0];

			minimize.parse(grunt.file.read(src), function (err, data) {
				if (err) {
					grunt.warn(err);
					next(err);
					return;
				}

				grunt.file.write(el.dest, data);
				next();
			});
		}, this.async());
Example #6
0
    postProcessHtml: function(html) {
      // Minimize the generated html and return the promise with the result
      var Minimize = require('minimize');
      var minimize = new Minimize({quotes: true});

      var deferred = Q.defer();

      minimize.parse(html, function(error, result) {
        if (error) {
          deferred.reject(new Error(error));
        } else {
          deferred.resolve(result);
        }
      });

      return deferred.promise;
    }
Example #7
0
fs.readFile('modal.html', 'utf8', function(err, html) {
    html_mini.parse(html, function(err, html) {
        fs.readFile('send-btc.js.in', 'utf8', function(err, js) {
            fs.writeFile('send-btc.js', head_msg + js.replace('@MODAL_HTML@', html),
                    function(err) {
                new node_minify.minify({
                    type: 'yui-js',
                    fileIn: 'send-btc.js',
                    fileOut: 'send-btc.min.js',
                    callback: function(err, min) {
                        console.log(err);
                    }
                });
            });
        });
    });
});
Example #8
0
  function minimize (file, encoding, callback) {
    if (file.isNull()) {
      this.push(file);
      return callback();
    }

    if (file.isStream()) {
      return callback(new gutil.PluginError('gulp-minify-html', 'doesn\'t support Streams'));
    }

    var minimize = new Minimize(opt || {} );  
    minimize.parse(String(file.contents), function (err, data) {
      if (err) return callback(new gutil.PluginError('gulp-minify-html', err));
      file.contents = new Buffer(data);
      this.push(file);
      callback();
    }.bind(this));
  }
    // HTMLMinifier
    function minifyHtml(body) {
        var deferred = Q.defer();

        var minimize = new Minimize({
            empty: true,        // KEEP empty attributes
            conditionals: true, // KEEP conditional internet explorer comments
            spare: true         // KEEP redundant attributes
        });

        minimize.parse(body, function (error, data) {
            if (error) {
                deferred.reject(error);
            } else {
                deferred.resolve(data);
            }
        });

        return deferred.promise;
    }
Example #10
0
function extract(body, callback) {
    var replacement = String.fromCharCode(160);
    replacement += String.fromCharCode(161);
    replacement += String.fromCharCode(162);
    replacement += String.fromCharCode(163);

    var pattern = new RegExp(replacement, 'g');

    minimize.parse(body, function(err, data) {
	data = data.replace(/\n/g, replacement);
	var article = data.match(/<article.*>.+<\/article>/)[0];
	var title = data.match(/<h1.*>(.+)<\/h1>/)[1];
	title = title.replace(pattern, '');
	    
	article = article.replace(/<h1.*>.+<\/h1>/, '');
	article = article.replace(pattern, '\n');

	callback && callback(null, {
	    title: title,
            article: article
	});
    });
}