Skip to content

Commit bbddacd

Browse files
committed
Implemented gulp-data
1 parent cecef3d commit bbddacd

File tree

2 files changed

+60
-216
lines changed

2 files changed

+60
-216
lines changed

gulpfile.js

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ var settings = {
1010
styles: true,
1111
templates: true,
1212
svgs: true,
13-
copy: true,
13+
assets: true,
1414
reload: true
1515
};
1616

@@ -33,16 +33,16 @@ var paths = {
3333
},
3434
templates: {
3535
twig: 'src/templates/**/*.twig',
36-
html_pages: 'src/templates/pages/**/*.twig',
37-
dataJson: 'src/data/**/*.json',
36+
pages: 'src/templates/pages/**/*.twig',
37+
data: 'src/data/**/*.json',
3838
},
39-
svgs: {
40-
input: 'src/svg/*.svg',
41-
output: 'dist/svg/'
39+
assets: {
40+
input: 'src/assets/**!(svg)/*', // Excl. the assets/svg folder
41+
output: 'dist/assets/'
4242
},
43-
copy: {
44-
input: 'src/copy/**/*',
45-
output: 'dist/'
43+
svgs: {
44+
input: 'src/assets/svg/*.svg',
45+
output: 'dist/assets/svg/'
4646
},
4747
reload: './dist/'
4848
};
@@ -102,13 +102,29 @@ var twig = require('gulp-twig'),
102102
path = require('path'),
103103
data = require('gulp-data');
104104

105+
var fs = require('fs');
106+
105107
// SVGs
106108
var svgmin = require('gulp-svgmin');
107109

108110
// BrowserSync
109111
var browserSync = require('browser-sync');
110112

111113

114+
// Custom functions
115+
function requireUncached( dataFile ) {
116+
117+
try {
118+
delete require.cache[require.resolve( dataFile )];
119+
return require( dataFile );
120+
}
121+
catch(error) {
122+
console.error(error.message);
123+
}
124+
125+
}
126+
127+
112128
/**
113129
* Gulp Tasks
114130
*/
@@ -257,14 +273,18 @@ var buildStyles = function (done) {
257273
// Generate html from templates and data
258274
var buildTemplates = function(done) {
259275

260-
//if (!settings.templates) return done();
276+
if (!settings.templates) return done();
261277

262-
return src(paths.templates.html_pages)
263-
// .pipe(data(function (file) {
264-
// var dataPath = 'src/data/' + path.join(path.relative("src/templates/pages", path.dirname(file.path)), path.basename(file.path, '.twig')) + '.json';
265-
// return requireUncached(dataPath);
266-
// }))
267-
.pipe(twig())
278+
return src(paths.templates.pages)
279+
.pipe(data(function(file) {
280+
var dataPath = './src/data/' + path.basename(file.path, '.twig') + '.json';
281+
return requireUncached(dataPath);
282+
//return require('./src/data/' + path.basename(file.path, '.twig') + '.json');
283+
}))
284+
.pipe(twig({
285+
errorLogToConsole: true
286+
//debug: true
287+
}))
268288
//.pipe(prettify({indent_char: ' ', indent_size: 2}))
269289
.pipe(dest(paths.output));
270290
};
@@ -285,19 +305,19 @@ var buildSVGs = function (done) {
285305

286306
};
287307

288-
// Copy static files into output folder
289-
var copyFiles = function (done) {
308+
// Copy asset files into output folder
309+
var copyAssets = function (done) {
290310

291311
// Make sure this feature is activated before running
292-
if (!settings.copy) return done();
312+
if (!settings.assets) return done();
293313

294314
// Copy static files
295-
return src(paths.copy.input)
296-
.pipe(dest(paths.copy.output));
315+
return src(paths.assets.input)
316+
.pipe(dest(paths.assets.output));
297317

298318
};
299319

300-
// Watch for changes to the src directory
320+
// Watch for changes to the entire src directory
301321
var startServer = function (done) {
302322

303323
// Make sure this feature is activated before running
@@ -344,7 +364,7 @@ exports.default = series(
344364
buildStyles,
345365
buildTemplates,
346366
buildSVGs,
347-
copyFiles
367+
copyAssets
348368
)
349369
);
350370

src/data/index.json

Lines changed: 17 additions & 193 deletions
Original file line numberDiff line numberDiff line change
@@ -1,196 +1,20 @@
11
{
2-
"indexLinks": [
3-
{
4-
"links": [
5-
{
6-
"url": "login.html",
7-
"name": "Log ind"
8-
},
9-
{
10-
"url": "login-returning.html",
11-
"name": "Tilbagevendende (flere brugere)"
12-
},
13-
{
14-
"url": "login-returning-single.html",
15-
"name": "Tilbagevendende (1 bruger)"
16-
},
17-
{
18-
"url": "signup.html",
19-
"name": "Opret bruger"
20-
},
21-
{
22-
"url": "login-business.html",
23-
"name": "Log ind Erhverv"
24-
},
25-
{
26-
"url": "overview.html",
27-
"name": "Overblik"
28-
},
29-
{
30-
"url": "overview-household.html",
31-
"name": "Overblik med samtykke"
32-
},
33-
{
34-
"url": "product.html",
35-
"name": "Produkt - Bilforsikring"
36-
},
37-
{
38-
"url": "product-household.html",
39-
"name": "Produkt - Bilforsikring (med samtykke)"
40-
},
41-
{
42-
"url": "product-house.html",
43-
"name": "Produkt - Husforsikring"
44-
},
45-
{
46-
"url": "product-home.html",
47-
"name": "Produkt - Indboforsikring"
48-
},
49-
{
50-
"url": "product-business-movables.html",
51-
"name": "Produkt - Erhvervsløsøre"
52-
},
53-
{
54-
"url": "product-business-buildings.html",
55-
"name": "Produkt - Ervhervsbygninger"
56-
},
57-
{
58-
"url": "product-business-liability.html",
59-
"name": "Produkt - Erhverv produktansvar"
60-
},
61-
{
62-
"url": "add-product.html",
63-
"name": "Tilføj produkt"
64-
},
65-
{
66-
"url": "payment.html",
67-
"name": "Betaling"
68-
},
69-
{
70-
"url": "payment-archive.html",
71-
"name": "Betalingsarkiv"
72-
},
73-
{
74-
"url": "profile.html",
75-
"name": "Profil"
76-
},
77-
{
78-
"url": "damages.html",
79-
"name": "Skader"
80-
},
81-
{
82-
"url": "open-damage.html",
83-
"name": "Åben skade"
84-
},
85-
{
86-
"url": "closed-damage.html",
87-
"name": "Afsluttet skade"
88-
},
89-
{
90-
"url": "benefits.html",
91-
"name": "Dine fordele"
92-
},
93-
{
94-
"url": "contact.html",
95-
"name": "Kontakt"
96-
},
97-
{
98-
"url": "error.html",
99-
"name": "Fejl"
100-
},
101-
{
102-
"url": "profit-sharing.html",
103-
"name": "Overskudsdeling"
104-
},
105-
{
106-
"url": "club-contact.html",
107-
"name": "Klub kontakt"
108-
},
109-
{
110-
"url": "claims-report.html?usertest=1",
111-
"name": "Skadesanmeldelse (1)"
112-
}
2+
"index": [
3+
{
4+
"url": "login.html",
5+
"name": "Log ind"
6+
},
7+
{
8+
"url": "login-returning.html",
9+
"name": "Tilbagevendende (flere brugere)"
10+
},
11+
{
12+
"url": "login-returning-single.html",
13+
"name": "Tilbagevendende (1 bruger)"
14+
},
15+
{
16+
"url": "claims-report.html?usertest=1",
17+
"name": "Skadesanmeldelse (1)"
18+
}
11319
]
114-
}
115-
],
116-
"indexLinksOK": [
117-
{
118-
"links": [
119-
{
120-
"url": "ok/signup.html",
121-
"name": "Opret bruger"
122-
},
123-
{
124-
"url": "ok/login.html",
125-
"name": "Log ind"
126-
},
127-
{
128-
"url": "ok/login-returning.html",
129-
"name": "Tilbagevendende (flere brugere)"
130-
},
131-
{
132-
"url": "ok/overview.html",
133-
"name": "Overblik"
134-
},
135-
{
136-
"url": "ok/product.html",
137-
"name": "Produkt"
138-
},
139-
{
140-
"url": "ok/damages.html",
141-
"name": "Skader"
142-
},
143-
{
144-
"url": "ok/open-damage.html",
145-
"name": "Åben skade"
146-
},
147-
{
148-
"url": "ok/closed-damage.html",
149-
"name": "Afsluttet skade"
150-
},
151-
{
152-
"url": "ok/payment.html",
153-
"name": "Betaling"
154-
},
155-
{
156-
"url": "ok/profile.html",
157-
"name": "Profil"
158-
}
159-
]
160-
}
161-
],
162-
"indexLinksDM": [
163-
{
164-
"links": [
165-
{
166-
"url": "dm/signup.html",
167-
"name": "Opret bruger"
168-
},
169-
{
170-
"url": "dm/login.html",
171-
"name": "Log ind"
172-
},
173-
{
174-
"url": "dm/login-returning.html",
175-
"name": "Tilbagevendende (flere brugere)"
176-
},
177-
{
178-
"url": "dm/overview.html",
179-
"name": "Overblik"
180-
},
181-
{
182-
"url": "dm/product.html",
183-
"name": "Produkt"
184-
},
185-
{
186-
"url": "dm/payment.html",
187-
"name": "Betaling"
188-
},
189-
{
190-
"url": "dm/profile.html",
191-
"name": "Profil"
192-
}
193-
]
194-
}
195-
]
19620
}

0 commit comments

Comments
 (0)