Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: gulpfile.js

Issue 29646555: Issue 6210 - Implement Subscription (Double-opt-in) template for newsletter (Closed)
Left Patch Set: Update confirmation and success texts Created Jan. 3, 2018, 11:43 a.m.
Right Patch Set: Addressed comments #20 Created Jan. 23, 2018, 8:47 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « README.md ('k') | package.json » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 /*! 1 /*!
2 * This file is part of adblockplus.org. 2 * This file is part of eyeomail.com.
juliandoucette 2018/01/04 02:34:22 This is actually part of eyeomail.com?
ire 2018/01/04 11:14:41 Done.
3 * Copyright (C) 2017-present eyeo GmbH 3 * Copyright (C) 2017-present eyeo GmbH
4 * 4 *
5 * adblockplus.org is free software: you can redistribute it and/or modify 5 * eyeomail.com is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or 7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version. 8 * (at your option) any later version.
9 * 9 *
10 * adblockplus.org is distributed in the hope that it will be useful, 10 * eyeomail.com is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details. 13 * GNU General Public License for more details.
14 * 14 *
15 * You should have received a copy of the GNU General Public License 15 * You should have received a copy of the GNU General Public License
16 * along with adblockplus.org. If not, see <http://www.gnu.org/licenses/>. 16 * along with eyeomail.com. If not, see <http://www.gnu.org/licenses/>.
17 */ 17 */
18 18
19 const gulp = require("gulp"); 19 const gulp = require("gulp");
20 const gutil = require("gulp-util"); 20 const gutil = require("gulp-util");
21 const rename = require("gulp-rename"); 21 const rename = require("gulp-rename");
22 const sass = require("gulp-sass"); 22 const sass = require("gulp-sass");
23 const postcss = require("gulp-postcss"); 23 const postcss = require("gulp-postcss");
24 const scss = require("postcss-scss"); 24 const scss = require("postcss-scss");
25 const autoprefixer = require("autoprefixer"); 25 const autoprefixer = require("autoprefixer");
26 const replace = require("replace"); 26 const replace = require("replace");
27 const fs = require('fs'); 27 const fs = require("fs");
28 const readFilePromise = require("fs-readfile-promise");
28 29
29 /****************************************************************************** 30 /******************************************************************************
30 * CSS 31 * CSS
31 ******************************************************************************/ 32 ******************************************************************************/
32 33
33 gulp.task("compileCss", function() { 34 gulp.task("compileCss", function() {
34 return gulp.src("./scss/main.scss") 35 return gulp.src("./src/scss/main.scss")
35 .pipe(postcss([autoprefixer()], {syntax: scss}).on("error", gutil.log)) 36 .pipe(postcss([autoprefixer()], {syntax: scss}).on("error", gutil.log))
36 .pipe(sass({outputStyle: "compact"}).on("error", gutil.log)) 37 .pipe(sass({outputStyle: "compact"}).on("error", gutil.log))
juliandoucette 2018/01/04 02:34:19 I don't think we should minify without source maps
ire 2018/01/04 11:14:41 This isn't minifying?
37 .pipe(gulp.dest("./css")); 38 .pipe(gulp.dest("./dist"));
38 }); 39 });
39 40
40 gulp.task("inlineCss", function() { 41 gulp.task("inlineCss", ["compileCss", "moveTemplates"], function() {
41 return fs.readFile('./css/main.css', 'utf8', function (err, styles) { 42 return fs.readFile("./dist/main.css", "utf8", function (err, styles) {
juliandoucette 2018/01/04 02:34:22 NIT: single quotes.
ire 2018/01/04 11:14:40 Done.
42 if (err) throw err; 43 if (err) throw err;
43 44
44 const replacement = `<!-- styles:start --> 45 const replacement = `<!-- styles:start -->
juliandoucette 2018/01/04 02:34:23 NIT: Why not shorten this e.g. `<style>${styles}</
ire 2018/01/04 11:14:41 I think it looks better when the styles start on t
45 <style> 46 <style>
46 ${styles} 47 ${styles}
47 </style> 48 </style>
48 <!-- styles:end -->`; 49 <!-- styles:end -->`;
49 50
50 replace({ 51 replace({
51 regex: /<!-- styles:start -->([\s\S]*?)<!-- styles:end -->/, 52 regex: /<!-- styles:start -->([\s\S]*?)<!-- styles:end -->/,
juliandoucette 2018/01/04 02:34:23 NIT: Why not shorten this? e.g. `<!-- styles /-->`
ire 2018/01/04 11:14:40 This is "sort of" (in mega quotes) a convention fo
52 replacement: replacement, 53 replacement: replacement,
53 paths: ['./index.html', 'backclick.html'], 54 paths: ["dist/signup.html"],
juliandoucette 2018/01/04 02:34:22 NIT: Can't we *just* do this to backclick.html?
ire 2018/01/04 11:14:42 I was keeping the other file around so that we can
54 recursive: true, 55 recursive: true,
juliandoucette 2018/01/04 02:34:21 NIT: I don't think recursive or silent are necessa
ire 2018/01/04 11:14:40 I just copied the default example here. Is there a
55 silent: true, 56 silent: true,
56 }); 57 });
57 }); 58 });
58 }); 59 });
59 60
60 gulp.task("css", ["compileCss", "inlineCss"]); 61 gulp.task("css", ["inlineCss"]);
62
63 /******************************************************************************
64 * Template
65 ******************************************************************************/
66
67 gulp.task("moveTemplates", function() {
68 const templateFiles = ["./src/templates/signup.html",
69 "./src/templates/confirm-email.html",
70 "./src/templates/subscription-confirmed-email.html"];
71
72 return gulp.src(templateFiles).pipe(gulp.dest("./dist"));
73 });
74
75 gulp.task("backclick", function() {
76 const templateFiles = ["./dist/signup.html",
77 "./dist/confirm-email.html",
78 "./dist/subscription-confirmed-email.html"];
79
80 return Promise.all(templateFiles.map((file) => readFilePromise(file)))
81 .then((buffers) => Promise.all(buffers.map((buffer) => buffer.toString())))
82 .then((contents) => {
83 fs.writeFile("./dist/backclick.html", contents.join(""));
84 });
85 });
86
87 gulp.task("template", ["css"]);
61 88
62 /****************************************************************************** 89 /******************************************************************************
63 * Watch 90 * Watch
64 ******************************************************************************/ 91 ******************************************************************************/
65 92
66 gulp.task("watch", function() { 93 gulp.task("watch", function() {
67 gulp.watch("./scss/**/*.scss", ["css"]); 94 gulp.watch("./src/scss/**/*.scss", ["css"]);
95 gulp.watch("./src/templates/*.html", ["template", "backclick"]);
68 }); 96 });
69 97
70 /****************************************************************************** 98 /******************************************************************************
71 * Default 99 * Default
72 ******************************************************************************/ 100 ******************************************************************************/
73 101
74 gulp.task("default", ["css", "watch"]); 102 gulp.task("default", ["template", "css", "watch"]);
LEFTRIGHT

Powered by Google App Engine
This is Rietveld