2015-10-04 63 views
0

我正在尝试输入markdown文件,通过2个不同渲染器运行它,并将输出保存到不同的文件夹。我的计划是使用块引擎来保持特定内容不会在其中一个输出中呈现。这是我的一饮而尽文件:gulp降价到单独的渲染器和目的地

var gulp  = require('gulp'), 
    marked = require('marked'), 
    markdown = require('gulp-markdown'), 
    cache = require('gulp-cached'), 
    lazypipe = require('lazypipe'), 
    merge = require('merge-stream'); 

gulp.task('markdown', function() { 

    // setup mlive 
    var mlive_renderer = new marked.Renderer(); 
    mlive_renderer.blockquote = function (quote) { 
     return quote; 
    }; 

    var mliveTasks = lazypipe() 
     .pipe(markdown, { 
      renderer: mlive_renderer 
     }); 


    // setup hudsonvilleathletics 
    var hudsonvilleathleics_renderer = new marked.Renderer(); 
    hudsonvilleathleics_renderer.blockquote = function(){ return ''; }; 

    var hudsonvilleathleticsTasks = lazypipe() 
     .pipe(markdown, { 
      renderer: hudsonvilleathleics_renderer 
     }); 



    // create out pipe of src content 
    var sources = gulp.src('src/**/*.md') 
     .pipe(cache('markdown')); 


    var mlive = sources 
     .pipe(mliveTasks()) 
     .pipe(gulp.dest('mlive')); 


    var hudsonvilleathletics = sources 
     .pipe(hudsonvilleathleticsTasks()) 
     .pipe(gulp.dest('hudsonvilleathletics')); 



    return merge(mlive, hudsonvilleathletics); 

}); 

运行此完成时没有错误,但两者的内容是相同的,并有额外的p标签标题周围包裹。如果我评论一个,只是返回另一个,它工作正常。

我在做什么错?

输入文件:

## This is a heading 

> This is mlive only stuff 

Here's some other stuff for both. 

> one more for mlive 

和输出(针对相同)

<p><h2 id="this-is-a-heading">This is a heading</h2></p> 
<p>This is mlive only stuff</p> 
<p>Here&#39;s some other stuff for both.</p> 
<p>one more for mlive</p> 

回答

0

了很多挖我偶然发现gulp-mirror并已成功地得到这个工作后。使用这个功能,我可以将目标电话转移到lazypipes,然后将资源镜像到他们。这里是新的gulp文件(通过额外的调整来删除标题中的id)

var gulp  = require('gulp'), 
    marked = require('marked'), 
    markdown = require('gulp-markdown'), 
    cache = require('gulp-cached'), 
    lazypipe = require('lazypipe'), 
    mirror = require('gulp-mirror'); 

gulp.task('markdown', function() { 

    // start of by removing the id's for headings 
    var heading = function (text, level) { 
     return '<h' + level + '>' + text + '</h' + level + '>\n'; 
    }; 

    /* 
    * mLive Setup 
    * 
    * convert any block quotes back to regular old p tags and save in the mlive folder 
    */ 
    var mliveRenderer = new marked.Renderer(); 
    mliveRenderer.heading = heading; 
    mliveRenderer.blockquote = function(quote){ 
     return quote; 
    }; 

    var mliveTasks = lazypipe() 
     .pipe(markdown, { 
      renderer: mliveRenderer 
     }) 
     .pipe(gulp.dest, 'mlive/'); 


    /* 
    * HudsonvilleAthletics Setup 
    * 
    * completely remove anything in block quotes and save to the other folder 
    */ 
    var hudsonvilleathleticsRenderer = new marked.Renderer(); 
    hudsonvilleathleticsRenderer.heading = heading; 
    hudsonvilleathleticsRenderer.blockquote = function(){ 
     return ''; 
    }; 

    var hudsonvilleathleticsTasks = lazypipe() 
     .pipe(markdown, { 
      renderer: hudsonvilleathleticsRenderer 
     }) 
     .pipe(gulp.dest, 'hudsonvilleathletics/'); 


    /* 
    * Finally run everything 
    */ 
    return sources = gulp.src('src/**/*.md') 
     .pipe(cache('markdown')) 
     .pipe(mirror(
      mliveTasks(), 
      hudsonvilleathleticsTasks() 
     )); 
});