如何在玉器中管道外部html内容?

时间:2015-11-19 00:17:37

标签: node.js gulp pug

我试图从网页上获取一些HTML并放入我的玉石模板中,这样我就可以在不需要复制和粘贴的情况下进行设计。

var request = require("request");
var cheerio = require("cheerio");
var loadContent = function() { 
   request({
      uri: "http://www.mywebsite.com.br/test"
   }, function(error, response, body) {
      var $ = cheerio.load(body);
      var result;
      $('.content').each(function(){
         result={"content":$(this).html()};
      });
      placeContent(result);
      return true;
   });
};
var placeContent = function(content) {
  return content;
};
module.exports = loadContent;

在我的gulpfile.js中,除了正确的要求外,我还有:

gulp.task('jadeBuild', function() {
  var options = {
    pretty: true
  };
  return gulp.src(src+'/*.jade')
    .pipe(data(function(){
        return loadContent();
    }))
    .pipe(jade(options))
    .pipe(gulp.dest(build))
    .pipe(connect.reload());
});

我的玉文件:

.mycontent
  #{content}

我错过了什么?

1 个答案:

答案 0 :(得分:0)

尝试将jade文件中的#{content}更改为!{content}。这将告诉jade不要逃避任何角色(这可能很危险,这取决于输入的来源!)。

请参阅http://jade-lang.com/reference/interpolation/

此外,当您循环遍历每个.content时,您每次都会覆盖result。如果要将所有内容聚合在一起,则需要附加到结果。类似的东西:

var result = {content: ''};
$('.content').each(function(){
   result.content += $(this).html();
});