Skip to content

Commit 0ce9fc0

Browse files
committed
chore - Port to webpack 2
1 parent be2c69a commit 0ce9fc0

File tree

12 files changed

+2515
-2218
lines changed

12 files changed

+2515
-2218
lines changed

bootstrap.js renamed to antwar.bootstrap.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const antwar = require('antwar');
22

3-
const environment = process.env.npm_lifecycle_event || 'build';
3+
const environment = process.argv[2];
44

55
// Patch Babel env to make HMR switch work
66
process.env.BABEL_ENV = environment;
@@ -9,7 +9,7 @@ antwar[environment]({
99
environment,
1010
antwar: require('./antwar.config'),
1111
webpack: require('./webpack.config')
12-
}).catch(function (err) {
12+
}).catch((err) => {
1313
console.error(err);
1414

1515
process.exit(1);

antwar.config.js

Lines changed: 82 additions & 222 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
var _ = require('lodash');
2-
var path = require('path');
3-
var prevnextPlugin = require('antwar-prevnext-plugin');
4-
var markdown = require('./utilities/markdown');
5-
var highlight = require('./utilities/highlight');
1+
const path = require('path');
2+
const _ = require('lodash');
3+
const prevnextPlugin = require('antwar-prevnext-plugin');
64

75
module.exports = {
6+
maximumWorkers: process.env.TRAVIS && 1, // Faster on Travis
87
template: {
98
title: 'webpack',
109
description: 'webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.',
@@ -13,6 +12,8 @@ module.exports = {
1312
output: 'build',
1413
title: 'webpack',
1514
keywords: ['webpack', 'javascript', 'web development', 'programming'],
15+
16+
// XXXXX: restore
1617
pageTitle: function(config, pageTitle) {
1718
var siteName = config.name;
1819

@@ -29,238 +30,97 @@ module.exports = {
2930
return require('./components/site/site.jsx').default
3031
},
3132
paths: {
32-
'/': root(
33-
function() {
34-
return require.context(
35-
'json-loader!yaml-frontmatter-loader!./content',
36-
false,
37-
/^\.\/.*\.md$/
38-
);
39-
}
40-
),
41-
42-
'get-started': {
43-
redirects: {
44-
'': '/guides/get-started',
45-
'install-webpack': '/guides/installation',
46-
'why-webpack': '/guides/why-webpack',
47-
}
48-
},
49-
50-
concepts: section(
51-
'Concepts',
52-
function() {
53-
return require.context(
54-
'json-loader!yaml-frontmatter-loader!./content/concepts',
55-
false,
56-
/^\.\/.*\.md$/
57-
);
58-
}
59-
),
60-
61-
guides: section(
62-
'Guides',
63-
function() {
64-
return require.context(
65-
'json-loader!yaml-frontmatter-loader!./content/guides',
66-
true,
67-
/^\.\/.*\.md$/
68-
);
69-
}, {
70-
'code-splitting-import': '/guides/code-splitting-async',
71-
'code-splitting-require': '/guides/code-splitting-async/#require-ensure-',
72-
'why-webpack': '/guides/comparison'
73-
}
74-
),
75-
76-
development: section(
77-
'Development',
78-
function() {
79-
return require.context(
80-
'json-loader!yaml-frontmatter-loader!./content/development',
33+
'/': {
34+
content: () => (
35+
require.context(
36+
'./loaders/page-loader!./content',
8137
true,
8238
/^\.\/.*\.md$/
83-
);
84-
}
85-
),
86-
87-
configuration: section(
88-
'Configuration',
89-
function() {
90-
return require.context(
91-
'json-loader!yaml-frontmatter-loader!./content/configuration',
92-
false,
93-
/^\.\/.*\.md$/
94-
);
95-
}, {
96-
'external-configs': 'javascript-alternatives'
97-
}
98-
),
99-
100-
api: section(
101-
'API',
102-
function() {
103-
return require.context(
104-
'json-loader!yaml-frontmatter-loader!./content/api',
105-
false,
106-
/^\.\/.*\.md$/
107-
);
108-
}, {
109-
'passing-a-config': 'configuration-types'
110-
}
111-
),
112-
113-
'api/plugins': section(
114-
'API',
115-
function() {
116-
return require.context(
117-
'json-loader!yaml-frontmatter-loader!./content/api/plugins',
118-
false,
119-
/^\.\/.*\.md$/
120-
);
121-
}
122-
),
123-
124-
pluginsapi: {
125-
redirects: {
126-
'': '/api/plugins',
127-
'compiler': '/api/plugins/compiler',
128-
'template': '/api/plugins/template'
39+
)
40+
),
41+
index: () => require('./components/splash/splash.jsx').default,
42+
layout: () => require('./components/page/page.jsx').default,
43+
paths: {
44+
'get-started': {
45+
redirects: {
46+
'': '/guides/get-started',
47+
'install-webpack': '/guides/installation',
48+
'why-webpack': '/guides/why-webpack',
49+
}
50+
},
51+
guides: {
52+
redirects: {
53+
'code-splitting-import': '/guides/code-splitting-async',
54+
'code-splitting-require': '/guides/code-splitting-async/#require-ensure-',
55+
'why-webpack': '/guides/comparison'
56+
}
57+
},
58+
configuration: {
59+
redirects: {
60+
'external-configs': 'javascript-alternatives'
61+
}
62+
},
63+
api: {
64+
redirects: {
65+
'passing-a-config': 'configuration-types'
66+
}
67+
},
68+
pluginsapi: {
69+
redirects: {
70+
'': '/api/plugins',
71+
'compiler': '/api/plugins/compiler',
72+
'template': '/api/plugins/template'
73+
}
74+
},
75+
loaders: {
76+
content: () => {
77+
const content = require.context(
78+
'./loaders/page-loader!./content/loaders',
79+
false,
80+
/^\.\/.*\.md$/
81+
);
82+
const generated = require.context(
83+
'./loaders/page-loader!./generated/loaders',
84+
false,
85+
/^\.\/.*\.md$/
86+
);
87+
88+
return combineContexts(content, generated);
89+
}
90+
},
91+
loaders: {
92+
content: () => {
93+
const content = require.context(
94+
'./loaders/page-loader!./content/plugins',
95+
false,
96+
/^\.\/.*\.md$/
97+
);
98+
const generated = require.context(
99+
'./loaders/page-loader!./generated/plugins',
100+
false,
101+
/^\.\/.*\.md$/
102+
);
103+
104+
return combineContexts(content, generated);
105+
}
106+
}
129107
}
130108
},
131-
132-
loaders: section(
133-
'Loaders',
134-
function() {
135-
const content = require.context(
136-
'json-loader!yaml-frontmatter-loader!./content/loaders',
137-
false,
138-
/^\.\/.*\.md$/
139-
);
140-
const generated = require.context(
141-
'json-loader!yaml-frontmatter-loader!./generated/loaders',
142-
false,
143-
/^\.\/.*\.md$/
144-
);
145-
return combineContexts(content, generated);
146-
}
147-
),
148-
149-
plugins: section(
150-
'Plugins',
151-
function() {
152-
const content = require.context(
153-
'json-loader!yaml-frontmatter-loader!./content/plugins',
154-
false,
155-
/^\.\/.*\.md$/
156-
);
157-
const generated = require.context(
158-
'json-loader!yaml-frontmatter-loader!./generated/plugins',
159-
false,
160-
/^\.\/.*\.md$/
161-
);
162-
return combineContexts(content, generated);
163-
}
164-
),
165-
166-
support: section(
167-
'Support',
168-
function() {
169-
return require.context(
170-
'json-loader!yaml-frontmatter-loader!./content/support',
171-
false,
172-
/^\.\/.*\.md$/
173-
);
174-
}
175-
),
176-
177109
vote: {
178-
path() {
179-
return require('./components/vote/list.jsx').default
180-
}
110+
index: () => require('./components/vote/list.jsx').default
181111
},
182-
183112
'vote/feedback': {
184-
path() {
185-
return require('./components/vote/list.jsx').default
186-
}
113+
index: () => require('./components/vote/list.jsx').default
187114
},
188-
189115
'vote/moneyDistribution': {
190-
path() {
191-
return require('./components/vote/list.jsx').default
192-
}
116+
index: () => require('./components/vote/list.jsx').default
193117
},
194-
195118
organization: {
196-
path() {
197-
return require('./components/organization/organization.jsx').default
198-
}
119+
index: () => require('./components/organization/organization.jsx').default
199120
}
200121
}
201122
};
202123

203-
function root(contentCb) {
204-
return {
205-
title: 'webpack',
206-
path: function() { // Load path content
207-
return contentCb();
208-
},
209-
processPage: processPage(), // Process individual page (url, content)
210-
layouts: { // Layouts (page/section)
211-
index: function() {
212-
return require('./components/splash/splash.jsx').default
213-
},
214-
page: function() {
215-
return require('./components/page/page.jsx').default
216-
}
217-
},
218-
redirects: {} // Redirects <from>: <to>
219-
};
220-
}
221-
222-
function section(title, contentCb, redirects = {}) {
223-
return {
224-
title: title,
225-
path: function() {
226-
return contentCb();
227-
},
228-
sort(pages) {
229-
return _.sortBy(pages, (page) => page.file.sort)
230-
},
231-
processPage: processPage(),
232-
layouts: {
233-
index: function() {
234-
return require('./components/page/page.jsx').default
235-
},
236-
page: function() {
237-
return require('./components/page/page.jsx').default
238-
}
239-
},
240-
redirects: redirects // <from>: <to>
241-
};
242-
}
243-
244-
function processPage() {
245-
return {
246-
url: function(o) {
247-
return o.sectionName + '/' + o.fileName.split('.')[0]
248-
},
249-
content: function(o) {
250-
return markdown().process(o.file.__content, highlight);
251-
},
252-
anchors: function(o) {
253-
return markdown().getAnchors(o.file.__content);
254-
},
255-
contributors: function(o) {
256-
return Array.isArray(o.file.contributors) && o.file.contributors.length && o.file.contributors.slice().sort();
257-
},
258-
related: function(o) {
259-
return Array.isArray(o.file.related) ? o.file.related : []
260-
}
261-
};
262-
}
263-
264124
function combineContexts(context1, context2) {
265125
function webpackContext(req) {
266126
try {

components/site/site.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default props => {
3030
url
3131
}))
3232
}));
33-
33+
3434
// Rename the root section ("webpack" => "Other") and push it to the end
3535
let rootIndex = sections.findIndex(section => section.title === 'webpack');
3636
let rootSection = sections.splice(rootIndex, 1)[0];
@@ -42,7 +42,7 @@ export default props => {
4242
<Interactive
4343
id="components/notification-bar/notification-bar.jsx"
4444
component={ NotificationBar } />
45-
45+
4646
<Interactive
4747
id="components/navigation/navigation.jsx"
4848
component={ Navigation }

content/index.md renamed to components/splash/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,4 @@ Then run `webpack` on the command-line to create `bundle.js`.
6868

6969
## It's that simple
7070

71-
## [Get Started](/guides/get-started)
71+
## [Get Started](/guides/get-started/)

0 commit comments

Comments
 (0)