@@ -7,6 +7,7 @@ const nunjucks = require('gulp-nunjucks')
77const marked = require ( 'gulp-marked' )
88const wrapper = require ( 'layout-wrapper' )
99const accumulate = require ( 'vinyl-accumulate' )
10+ const branch = require ( 'branch-pipe' )
1011
1112const data = {
1213 orgName : 'Node.js 日本ユーザーグループ' ,
@@ -49,59 +50,53 @@ asset('source/events/**/*.md')
4950 } ) )
5051 . pipe ( layout ( 'index' ) )
5152
52- // Event index pages
53+ // Event pages
5354asset ( 'source/events/**/*.md' )
5455 . watch ( 'source/**/*.{md,njk}' )
5556 . pipe ( frontMatter ( { property : 'fm' } ) )
5657 . pipe ( marked ( ) )
57- . pipe ( accumulate ( 'events.html' , {
58- debounce : true ,
59- sort : ( x , y ) => y . fm . date [ 0 ] . valueOf ( ) - x . fm . date [ 0 ] . valueOf ( )
60- } ) )
61- . pipe ( layout ( 'event-index' ) )
58+ . pipe ( branch . obj ( src => [
59+ src
60+ . pipe ( accumulate ( 'events.html' , {
61+ debounce : true ,
62+ sort : ( x , y ) => y . fm . date [ 0 ] . valueOf ( ) - x . fm . date [ 0 ] . valueOf ( )
63+ } ) )
64+ . pipe ( layout ( 'event-index' ) ) , // Event index page
65+ src
66+ . pipe ( layout ( 'event' ) ) // Single event page
67+ ] ) )
6268
63- // Single event page
64- asset ( 'source/events/**/*.md' )
65- . watch ( 'source/**/*.{md,njk}' )
66- . pipe ( frontMatter ( { property : 'fm' } ) )
67- . pipe ( marked ( ) )
68- . pipe ( layout ( 'event' ) )
69-
70- // News index page
69+ // News pages
7170asset ( 'source/news/**/*.md' )
7271 . watch ( 'source/**/*.{md,njk}' )
7372 . pipe ( frontMatter ( { property : 'fm' } ) )
7473 . pipe ( marked ( ) )
75- . pipe ( accumulate ( 'news.html' , {
76- debounce : true ,
77- sort : ( x , y ) => y . fm . date . valueOf ( ) - x . fm . date . valueOf ( )
78- } ) )
79- . pipe ( layout ( 'news-index' ) )
80-
81- // Single news pages
82- asset ( 'source/news/**/*.md' )
83- . watch ( 'source/**/*.{md,njk}' )
84- . pipe ( frontMatter ( { property : 'fm' } ) )
85- . pipe ( marked ( ) )
86- . pipe ( layout ( 'news' ) )
87-
88- // Job index page
89- asset ( 'source/jobs/**/*.md' )
90- . watch ( 'source/**/*.{md,njk}' )
91- . pipe ( frontMatter ( { property : 'fm' } ) )
92- . pipe ( marked ( ) )
93- . pipe ( accumulate ( 'jobboard.html' , {
94- debounce : true ,
95- sort : ( x , y ) => y . fm . postedAt . valueOf ( ) - x . fm . postedAt . valueOf ( )
96- } ) )
97- . pipe ( layout ( 'jobboard' ) )
74+ . pipe ( branch . obj ( src => [
75+ src
76+ . pipe ( accumulate ( 'news.html' , {
77+ debounce : true ,
78+ sort : ( x , y ) => y . fm . date . valueOf ( ) - x . fm . date . valueOf ( )
79+ } ) )
80+ . pipe ( layout ( 'news-index' ) ) , // News index page
81+ src
82+ . pipe ( layout ( 'news' ) ) // Single news page
83+ ] ) )
9884
99- // Single job page
85+ // Jobboard pages
10086asset ( 'source/jobs/**/*.md' )
10187 . watch ( 'source/**/*.{md,njk}' )
10288 . pipe ( frontMatter ( { property : 'fm' } ) )
10389 . pipe ( marked ( ) )
104- . pipe ( layout ( 'job' ) )
90+ . pipe ( branch . obj ( src => [
91+ src
92+ . pipe ( accumulate ( 'jobboard.html' , {
93+ debounce : true ,
94+ sort : ( x , y ) => y . fm . postedAt . valueOf ( ) - x . fm . postedAt . valueOf ( )
95+ } ) )
96+ . pipe ( layout ( 'jobboard' ) ) , // Job index page
97+ src
98+ . pipe ( layout ( 'job' ) ) // Single job page
99+ ] ) )
105100
106101asset ( 'source/css/*.css' )
107102asset ( 'source/images/**/*.{png,svg,jpg,jpeg,gif}' )
0 commit comments