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

Side by Side Diff: gulpfile.js

Issue 29646555: Issue 6210 - Implement Subscription (Double-opt-in) template for newsletter (Closed)
Patch Set: Addressed comments #15 Created Jan. 4, 2018, 11:12 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « README.md ('k') | package.json » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*!
2 * This file is part of eyeomail.com.
3 * Copyright (C) 2017-present eyeo GmbH
4 *
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
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * eyeomail.com is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with eyeomail.com. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 const gulp = require("gulp");
20 const gutil = require("gulp-util");
21 const rename = require("gulp-rename");
22 const sass = require("gulp-sass");
23 const postcss = require("gulp-postcss");
24 const scss = require("postcss-scss");
25 const autoprefixer = require("autoprefixer");
26 const replace = require("replace");
27 const fs = require("fs");
28 const readFilePromise = require("fs-readfile-promise");
29
30 /******************************************************************************
31 * CSS
32 ******************************************************************************/
33
34 gulp.task("compileCss", function() {
35 return gulp.src("./src/scss/main.scss")
36 .pipe(postcss([autoprefixer()], {syntax: scss}).on("error", gutil.log))
37 .pipe(sass({outputStyle: "compact"}).on("error", gutil.log))
38 .pipe(gulp.dest("./dist"));
39 });
40
41 gulp.task("inlineCss", ["compileCss"], function() {
42 return fs.readFile("./dist/main.css", "utf8", function (err, styles) {
43 if (err) throw err;
44
45 const replacement = `<!-- styles:start -->
46 <style>
47 ${styles}
48 </style>
49 <!-- styles:end -->`;
50
51 replace({
52 regex: /<!-- styles:start -->([\s\S]*?)<!-- styles:end -->/,
53 replacement: replacement,
54 paths: ["dist/backclick.html"],
55 recursive: true,
56 silent: true,
57 });
58 });
59 });
60
61 gulp.task("css", ["inlineCss"]);
62
63 /******************************************************************************
64 * Template
65 ******************************************************************************/
66
67 gulp.task("template", function() {
68 const templateFiles = ["./src/templates/signup.html",
69 "./src/templates/confirm-email.html",
70 "./src/templates/subscription-confirmed-email.html"];
71
72 return Promise.all(templateFiles.map((file) => readFilePromise(file)))
73 .then((buffers) => Promise.all(buffers.map((buffer) => buffer.toString())))
74 .then((contents) => {
75 fs.mkdir("./dist", () => {
76 fs.writeFile("./dist/backclick.html", contents.join(""));
77 })
78 })
79 });
80
81 /******************************************************************************
82 * Watch
83 ******************************************************************************/
84
85 gulp.task("watch", function() {
86 gulp.watch("./src/scss/**/*.scss", ["css"]);
87 gulp.watch("./src/templates/*.html", ["template", "css"]);
88 });
89
90 /******************************************************************************
91 * Default
92 ******************************************************************************/
93
94 gulp.task("default", ["template", "css", "watch"]);
OLDNEW
« no previous file with comments | « README.md ('k') | package.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld