compiled articles in gulp
This commit is contained in:
1 parent
3f75921194
commit
80f4a937b6
3 files changed
+57
-1
No files matched your search
+36
-1
@@ -2,11 +2,16 @@ var gulp = require('gulp');
|
|||||||
var bower = require('gulp-bower');
|
var bower = require('gulp-bower');
|
||||||
var help = require('gulp-task-listing');
|
var help = require('gulp-task-listing');
|
||||||
var clean = require('gulp-clean');
|
var clean = require('gulp-clean');
|
||||||
|
var toml = require('gulp-toml');
|
||||||
var sass = require('gulp-sass');
|
var sass = require('gulp-sass');
|
||||||
var rename = require("gulp-rename");
|
var rename = require("gulp-rename");
|
||||||
var yaml = require('gulp-yaml');
|
var yaml = require('gulp-yaml');
|
||||||
var template = require('gulp-template');
|
var template = require('gulp-template');
|
||||||
|
var wrapper = require('gulp-wrapper');
|
||||||
|
var rename = require("gulp-rename");
|
||||||
var webserver = require('gulp-webserver');
|
var webserver = require('gulp-webserver');
|
||||||
|
var marked = require('marked');
|
||||||
|
var _ = require('lodash');
|
||||||
|
|
||||||
gulp.task('help', help);
|
gulp.task('help', help);
|
||||||
|
|
||||||
@@ -48,8 +53,36 @@ gulp.task('template-dev', function () {
|
|||||||
.pipe(gulp.dest('.'));
|
.pipe(gulp.dest('.'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gulp.task('compile-articles', function(){
|
||||||
|
|
||||||
gulp.task('default', ['bower', 'sass', 'compile-results']);
|
var transformArticle = function(article){
|
||||||
|
var isMarkdownKey = /markdown/i;
|
||||||
|
_.each(article, function(section, sectionName){
|
||||||
|
_.each(section, function(value, key){
|
||||||
|
if(isMarkdownKey.test(key) && _.isString(value)){
|
||||||
|
section[key] = marked(value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return JSON.stringify(article, null, 4);
|
||||||
|
};
|
||||||
|
|
||||||
|
gulp.src('data/articles/**/*.toml.md')
|
||||||
|
.pipe(toml({to: transformArticle}))
|
||||||
|
.pipe(wrapper({
|
||||||
|
header: "define(['m', '_'], function (m, _ ) {\nreturn ",
|
||||||
|
footer: ';\n});\n'
|
||||||
|
}))
|
||||||
|
.pipe(rename(function(path){
|
||||||
|
path.basename = path.basename.replace(/\.toml$/i, '');
|
||||||
|
path.extname = '.js';
|
||||||
|
return path;
|
||||||
|
}))
|
||||||
|
.pipe(gulp.dest('./script/articles/'));
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('default', ['bower', 'sass', 'compile-results', 'compile-articles']);
|
||||||
|
|
||||||
gulp.task('prod', ['default', 'template-prod']);
|
gulp.task('prod', ['default', 'template-prod']);
|
||||||
|
|
||||||
@@ -63,8 +96,10 @@ gulp.task('webserver', function(){
|
|||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
gulp.task('dev', ['default', 'webserver', 'template-dev', 'bower'], function(){
|
gulp.task('dev', ['default', 'webserver', 'template-dev', 'bower'], function(){
|
||||||
gulp.watch('./scss/*.scss', ['sass']);
|
gulp.watch('./scss/*.scss', ['sass']);
|
||||||
gulp.watch('*.tmpl.html', ['template-dev']);
|
gulp.watch('*.tmpl.html', ['template-dev']);
|
||||||
|
gulp.watch('./data/articles/**/*', ['compile-articles']);
|
||||||
return gulp.watch('./data/*.yaml', ['compile-results']);
|
return gulp.watch('./data/*.yaml', ['compile-results']);
|
||||||
});
|
});
|
||||||
@@ -11,6 +11,11 @@
|
|||||||
"gulp-sass": "^2.1.1",
|
"gulp-sass": "^2.1.1",
|
||||||
"gulp-task-listing": "^1.0.1",
|
"gulp-task-listing": "^1.0.1",
|
||||||
"gulp-template": "^3.1.0",
|
"gulp-template": "^3.1.0",
|
||||||
|
"gulp-toml": "^0.1.1",
|
||||||
|
"gulp-wrap": "^0.11.0",
|
||||||
|
"gulp-wrapper": "^1.0.0",
|
||||||
|
"lodash": "^4.6.1",
|
||||||
|
"marked": "^0.3.5",
|
||||||
"requirejs": "^2.1.22"
|
"requirejs": "^2.1.22"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
define(['m', 'articles/inscription'], function (m, inscription) {
|
||||||
|
|
||||||
|
var simplifyArticleStructure = function(article){
|
||||||
|
var ret = {};
|
||||||
|
_.each(article, function(section, sectionName){
|
||||||
|
ret[sectionName] = m.trust(section.innerMarkdown);
|
||||||
|
});
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
|
||||||
|
var articles = [];
|
||||||
|
articles.push(inscription);
|
||||||
|
|
||||||
|
|
||||||
|
return _.map(articles, simplifyArticleStructure);
|
||||||
|
});
|
||||||
Reference in new issue
Block a user