1
1
import gulp from "gulp" ;
2
2
import cp from "child_process" ;
3
- import hugoBin from "hugo-bin"
3
+ import hugoBin from "hugo-bin" ;
4
4
import gutil from "gulp-util" ;
5
5
import postcss from "gulp-postcss" ;
6
+ import jsonToYaml from "gulp-json-to-yaml" ;
7
+ import rename from "gulp-rename" ;
6
8
import cssImport from "postcss-import" ;
7
9
import neatgrid from "postcss-neat" ;
8
10
import nestedcss from "postcss-nested" ;
@@ -15,56 +17,87 @@ import BrowserSync from "browser-sync";
15
17
import webpack from "webpack" ;
16
18
import webpackConfig from "./webpack.conf" ;
17
19
20
+ gulp
21
+ . src ( "./src/*.json" )
22
+ . pipe ( jsonToYaml ( ) )
23
+ . pipe ( gulp . dest ( "./dist/" ) ) ;
24
+
18
25
const browserSync = BrowserSync . create ( ) ;
19
26
const defaultArgs = [ "-d" , "../dist" , "-s" , "site" , "-v" ] ;
20
27
21
- gulp . task ( "hugo" , ( cb ) => buildSite ( cb ) ) ;
22
- gulp . task ( "hugo-preview" , ( cb ) => buildSite ( cb , [ "--buildDrafts" , "--buildFuture" ] ) ) ;
28
+ gulp . task ( "hugo" , cb => buildSite ( cb ) ) ;
29
+ gulp . task ( "hugo-preview" , cb =>
30
+ buildSite ( cb , [ "--buildDrafts" , "--buildFuture" ] )
31
+ ) ;
23
32
24
- gulp . task ( "build" , [ "css" , "js" , "fonts" , "images" , "hugo" ] ) ;
25
- gulp . task ( "build-preview" , [ "css" , "js" , "fonts" , "images" , "hugo-preview" ] ) ;
33
+ gulp . task ( "build" , [ "copy" , "css" , "js" , "fonts" , "images" , "hugo" ] ) ;
34
+ gulp . task ( "build-preview" , [
35
+ "copy" ,
36
+ "css" ,
37
+ "js" ,
38
+ "fonts" ,
39
+ "images" ,
40
+ "hugo-preview"
41
+ ] ) ;
26
42
27
- gulp . task ( "css" , ( ) => (
28
- gulp . src ( "./src/css/**/*.css" )
29
- . pipe ( postcss ( [
30
- cssImport ( { from : "./src/css/main.css" } ) ,
31
- neatgrid ( ) ,
32
- nestedcss ( ) ,
33
- colorfunctions ( ) ,
34
- hdBackgrounds ( ) ,
35
- cssextend ( ) ,
36
- cssvars ( { variables : styleVariables } ) ] ) )
43
+ gulp . task ( "css" , ( ) =>
44
+ gulp
45
+ . src ( "./src/css/**/*.css" )
46
+ . pipe (
47
+ postcss ( [
48
+ cssImport ( { from : "./src/css/main.css" } ) ,
49
+ neatgrid ( ) ,
50
+ nestedcss ( ) ,
51
+ colorfunctions ( ) ,
52
+ hdBackgrounds ( ) ,
53
+ cssextend ( ) ,
54
+ cssvars ( { variables : styleVariables } )
55
+ ] )
56
+ )
37
57
. pipe ( gulp . dest ( "./dist/css" ) )
38
58
. pipe ( browserSync . stream ( ) )
39
- ) ) ;
59
+ ) ;
40
60
41
- gulp . task ( "js" , ( cb ) => {
61
+ gulp . task ( "js" , cb => {
42
62
const myConfig = Object . assign ( { } , webpackConfig ) ;
43
63
44
64
webpack ( myConfig , ( err , stats ) => {
45
65
if ( err ) throw new gutil . PluginError ( "webpack" , err ) ;
46
- gutil . log ( "[webpack]" , stats . toString ( {
47
- colors : true ,
48
- progress : true
49
- } ) ) ;
66
+ gutil . log (
67
+ "[webpack]" ,
68
+ stats . toString ( {
69
+ colors : true ,
70
+ progress : true
71
+ } )
72
+ ) ;
50
73
browserSync . reload ( ) ;
51
74
cb ( ) ;
52
75
} ) ;
53
76
} ) ;
54
77
55
- gulp . task ( "fonts" , ( ) => (
56
- gulp . src ( "./src/fonts/**/*" )
78
+ gulp . task ( "fonts" , ( ) =>
79
+ gulp
80
+ . src ( "./src/fonts/**/*" )
57
81
. pipe ( gulp . dest ( "./dist/fonts" ) )
58
82
. pipe ( browserSync . stream ( ) )
59
- ) ) ;
83
+ ) ;
60
84
61
- gulp . task ( "images" , ( ) => (
62
- gulp . src ( "./src/img/**/*" )
85
+ gulp . task ( "images" , ( ) =>
86
+ gulp
87
+ . src ( "./src/img/**/*" )
63
88
. pipe ( gulp . dest ( "./dist/img" ) )
64
89
. pipe ( browserSync . stream ( ) )
65
- ) ) ;
90
+ ) ;
91
+
92
+ gulp . task ( "copy" , ( ) =>
93
+ gulp
94
+ . src ( "../.all-contributorsrc" )
95
+ . pipe ( jsonToYaml ( ) )
96
+ . pipe ( rename ( "contributors.yml" ) )
97
+ . pipe ( gulp . dest ( "./site/data" ) )
98
+ ) ;
66
99
67
- gulp . task ( "server" , [ "hugo" , "css" , "js" , "fonts" , "images" ] , ( ) => {
100
+ gulp . task ( "server" , [ "copy" , " hugo", "css" , "js" , "fonts" , "images" ] , ( ) => {
68
101
browserSync . init ( {
69
102
server : {
70
103
baseDir : "./dist"
@@ -81,7 +114,7 @@ gulp.task("server", ["hugo", "css", "js", "fonts", "images"], () => {
81
114
function buildSite ( cb , options ) {
82
115
const args = options ? defaultArgs . concat ( options ) : defaultArgs ;
83
116
84
- return cp . spawn ( hugoBin , args , { stdio : "inherit" } ) . on ( "close" , ( code ) => {
117
+ return cp . spawn ( hugoBin , args , { stdio : "inherit" } ) . on ( "close" , code => {
85
118
if ( code === 0 ) {
86
119
browserSync . reload ( ) ;
87
120
cb ( ) ;
@@ -91,4 +124,3 @@ function buildSite(cb, options) {
91
124
}
92
125
} ) ;
93
126
}
94
-
0 commit comments