首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用不同的语言获取输出html?

如何用不同的语言获取输出html?
EN

Stack Overflow用户
提问于 2016-05-12 22:25:38
回答 1查看 1.8K关注 0票数 0

这是我的吞咽文件

代码语言:javascript
复制
var gulp = require('gulp');
var posthtml = require('gulp-posthtml');
var mjml = require('gulp-mjml');
var nunjucksRender = require('gulp-nunjucks-render');
var data = require('gulp-data');



gulp.task('html', function() {
  var plugins = [
      require('posthtml-lorem')(),
       ];
  // Gets .html and .nunjucks files in pages
  return gulp.src('./pages/**/*.+(html|nunjucks)')
  // Adding data to Nunjucks
  .pipe(data(function() {
    return require('./data.json')
  }))
  // Renders template with nunjucks
  .pipe(nunjucksRender({
      path: ['./helpers/']
    }))
  .pipe(posthtml(plugins))
  .pipe(mjml())
  // output files in app folder
  .pipe(gulp.dest('./dest'))
});

这可能是数据data.json的json文件。

代码语言:javascript
复制
{
  "Page title": "hello English"
 }

我想在./dest文件夹中有两个文件,home.htmlhome_de.htmlhome.html应该有英文的内容,home_de.html应该有德语的内容。对于不同的语言,我不希望有不同的源HTML模板文件。

数据文件(.json)的内容将手动添加。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-13 04:13:24

Gulp只是node.js的一个简单包装器。通过要求fs,您可以访问文件系统。然后,您可以遍历不同的语言数据文件,并为每个文件呈现html。这应该是可行的,但这是未经测试的,但你应该得到要点。

代码语言:javascript
复制
var fs = require('fs');
var gulp = require('gulp');
var posthtml = require('gulp-posthtml');
var mjml = require('gulp-mjml');
var nunjucksRender = require('gulp-nunjucks-render');
var data = require('gulp-data');



gulp.task('html', function() {
    var plugins = [
       require('posthtml-lorem')(),
    ];

    fs.readdir('./languages/',function(err,files){
        if(err) throw err;
            files.forEach(function(file){
                var language = file.split('.')[0];
                // Gets .html and .nunjucks files in pages
                return gulp.src('./pages/**/*.+(html|nunjucks)')
                // Adding data to Nunjucks
                .pipe(data(function() {
                    return require('./languages/' + language + '.json')
                }))
                // Renders template with nunjucks
                .pipe(nunjucksRender({
                    path: ['./helpers/']
                }))
                .pipe(posthtml(plugins))
                .pipe(mjml())
                // output files in app folder
                .pipe(gulp.dest('./dest/' + language));
        });
    });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37198455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档