【问题标题】:How can I pipe external html content in jade?如何在玉中管道外部 html 内容?
【发布时间】:2015-11-19 00:17:37
【问题描述】:

我正在尝试从在线页面获取一些 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}

我错过了什么?

【问题讨论】:

    标签: node.js gulp pug


    【解决方案1】:

    尝试将您的翡翠文件中的#{content} 更改为!{content}。这将告诉jade不要转义任何字符(根据输入的来源,这可能很危险!)。

    http://jade-lang.com/reference/interpolation/

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

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

    【讨论】:

    • 这有点帮助。但我认为问题是异步的。 html 内容没有及时返回以填充变量;我愿意接受建议。 :)
    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 2018-07-02
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多