@canopycanopycanopy/b-ber-lib 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Config.js +1 -9
- package/EbookConvert.js +0 -28
- package/GuideItem.js +0 -5
- package/Html.js +0 -6
- package/HtmlToXml.js +0 -38
- package/ManifestItemProperties.js +19 -40
- package/Spine.js +15 -59
- package/SpineItem.js +4 -11
- package/State.js +68 -149
- package/Template.js +0 -8
- package/Theme.js +23 -79
- package/Url.js +0 -11
- package/Yaml.js +5 -38
- package/YamlAdaptor.js +0 -19
- package/index.js +0 -28
- package/package.json +7 -7
- package/utils/index.js +38 -98
package/SpineItem.js
CHANGED
|
@@ -1,25 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _path = _interopRequireDefault(require("path"));
|
|
14
|
-
|
|
15
10
|
var _startCase = _interopRequireDefault(require("lodash/startCase"));
|
|
16
|
-
|
|
17
11
|
/* eslint-disable camelcase */
|
|
12
|
+
|
|
18
13
|
class SpineItem {
|
|
19
14
|
static isNavigationDocument(fileName) {
|
|
20
15
|
return fileName === 'toc' || fileName === 'nav';
|
|
21
16
|
}
|
|
22
|
-
|
|
23
17
|
constructor({
|
|
24
18
|
fileName,
|
|
25
19
|
in_toc,
|
|
@@ -35,6 +29,7 @@ class SpineItem {
|
|
|
35
29
|
// TODO: fileName has an extension in some cases, other times not (only seen in inject/index.js so far). this needs to be verified
|
|
36
30
|
// TODO: should contain separate fields for input and output name (i.e., .md and .xhtml)
|
|
37
31
|
// @issue: https://github.com/triplecanopy/b-ber/issues/207
|
|
32
|
+
|
|
38
33
|
// options
|
|
39
34
|
this.fileName = fileName;
|
|
40
35
|
this.pageOrder = typeof pageOrder === 'number' ? pageOrder : -1;
|
|
@@ -43,9 +38,9 @@ class SpineItem {
|
|
|
43
38
|
this.generated = Boolean(generated);
|
|
44
39
|
this.nodes = nodes || [];
|
|
45
40
|
this.ref = ref || null; // TODO: what's this? @issue: https://github.com/triplecanopy/b-ber/issues/207
|
|
41
|
+
this.title = title || (0, _startCase.default)(fileName.toLowerCase());
|
|
46
42
|
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
// dynamicly created props
|
|
49
44
|
this.relativePath = SpineItem.isNavigationDocument(this.fileName) // relative to OPS
|
|
50
45
|
? this.fileName : _path.default.join('text', this.fileName);
|
|
51
46
|
this.absolutePath = _path.default.resolve(`project-${buildType}`, 'OPS', this.relativePath);
|
|
@@ -54,8 +49,6 @@ class SpineItem {
|
|
|
54
49
|
this.remotePath = '';
|
|
55
50
|
this.type = ''; // frontmatter, backmatter, ec
|
|
56
51
|
}
|
|
57
|
-
|
|
58
52
|
}
|
|
59
|
-
|
|
60
53
|
var _default = SpineItem;
|
|
61
54
|
exports.default = _default;
|
package/State.js
CHANGED
|
@@ -1,108 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
|
4
|
-
|
|
5
4
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
|
6
|
-
|
|
7
5
|
var _filterInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
|
8
|
-
|
|
9
6
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
10
|
-
|
|
11
7
|
var _forEachInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
|
12
|
-
|
|
13
8
|
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
|
14
|
-
|
|
15
9
|
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
|
16
|
-
|
|
17
10
|
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
18
|
-
|
|
19
11
|
var _Symbol$toPrimitive = require("@babel/runtime-corejs3/core-js-stable/symbol/to-primitive");
|
|
20
|
-
|
|
21
12
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
22
|
-
|
|
23
13
|
_Object$defineProperty(exports, "__esModule", {
|
|
24
14
|
value: true
|
|
25
15
|
});
|
|
26
|
-
|
|
27
16
|
exports.default = void 0;
|
|
28
|
-
|
|
29
17
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
|
30
|
-
|
|
31
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
32
|
-
|
|
33
19
|
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
34
|
-
|
|
35
20
|
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
|
|
36
|
-
|
|
37
21
|
var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
|
|
38
|
-
|
|
39
22
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
40
|
-
|
|
41
23
|
var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
|
|
42
|
-
|
|
24
|
+
var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
|
|
43
25
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
44
|
-
|
|
45
26
|
var _crypto = _interopRequireDefault(require("crypto"));
|
|
46
|
-
|
|
47
27
|
var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
|
|
48
|
-
|
|
49
28
|
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
50
|
-
|
|
51
29
|
var _find = _interopRequireDefault(require("lodash/find"));
|
|
52
|
-
|
|
53
30
|
var _findIndex = _interopRequireDefault(require("lodash/findIndex"));
|
|
54
|
-
|
|
55
|
-
var _set = _interopRequireDefault(require("lodash/set"));
|
|
56
|
-
|
|
31
|
+
var _set2 = _interopRequireDefault(require("lodash/set"));
|
|
57
32
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
58
|
-
|
|
59
33
|
var _has = _interopRequireDefault(require("lodash/has"));
|
|
60
|
-
|
|
61
34
|
var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
62
|
-
|
|
63
35
|
var _remove = _interopRequireDefault(require("lodash/remove"));
|
|
64
|
-
|
|
65
36
|
var _path = _interopRequireDefault(require("path"));
|
|
66
|
-
|
|
67
37
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
68
|
-
|
|
69
38
|
var _mimeTypes = _interopRequireDefault(require("mime-types"));
|
|
70
|
-
|
|
71
39
|
var _bBerThemeSerif = _interopRequireDefault(require("@canopycanopycanopy/b-ber-theme-serif"));
|
|
72
|
-
|
|
73
40
|
var _bBerThemeSans = _interopRequireDefault(require("@canopycanopycanopy/b-ber-theme-sans"));
|
|
74
|
-
|
|
75
41
|
var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
|
|
76
|
-
|
|
77
42
|
var _Yaml = _interopRequireDefault(require("./Yaml"));
|
|
78
|
-
|
|
79
43
|
var _Config = _interopRequireDefault(require("./Config"));
|
|
80
|
-
|
|
81
44
|
var _Spine = _interopRequireDefault(require("./Spine"));
|
|
82
|
-
|
|
83
45
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
84
|
-
|
|
85
46
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[_Symbol$toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
86
|
-
|
|
87
47
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
88
|
-
|
|
89
48
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context4, _context5; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty2(_context4 = ownKeys(Object(source), !0)).call(_context4, function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty2(_context5 = ownKeys(Object(source))).call(_context5, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
90
|
-
|
|
91
49
|
const themes = {
|
|
92
50
|
'b-ber-theme-serif': _bBerThemeSerif.default,
|
|
93
51
|
'b-ber-theme-sans': _bBerThemeSans.default
|
|
94
52
|
};
|
|
95
|
-
|
|
96
53
|
const randomHash = () => _crypto.default.randomBytes(20).toString('hex');
|
|
97
|
-
|
|
98
54
|
const skipInitialization = () => {
|
|
99
55
|
const {
|
|
100
56
|
argv
|
|
101
|
-
} = process;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
(0, _includes.default)(argv).call(argv, '
|
|
105
|
-
|
|
57
|
+
} = process;
|
|
58
|
+
|
|
59
|
+
// prettier-ignore
|
|
60
|
+
return (0, _includes.default)(argv).call(argv, '--help') ||
|
|
61
|
+
// if a help flag is set
|
|
62
|
+
(0, _includes.default)(argv).call(argv, '-h') ||
|
|
63
|
+
// if a help alias is set
|
|
64
|
+
argv.length < 3 ||
|
|
65
|
+
// if there are insufficient arguments
|
|
106
66
|
(0, _includes.default)(argv).call(argv, 'new') // if it's a new project
|
|
107
67
|
;
|
|
108
68
|
};
|
|
@@ -120,7 +80,6 @@ const DIST_DIR_STYLESHEETS = 'stylesheets';
|
|
|
120
80
|
const DIST_DIR_JAVASCRIPTS = 'javascripts';
|
|
121
81
|
const DIST_DIR_FONTS = 'fonts';
|
|
122
82
|
const DIST_DIR_MEDIA = 'media';
|
|
123
|
-
|
|
124
83
|
class State {
|
|
125
84
|
static get defaults() {
|
|
126
85
|
return {
|
|
@@ -129,100 +88,77 @@ class State {
|
|
|
129
88
|
hash: randomHash()
|
|
130
89
|
};
|
|
131
90
|
}
|
|
132
|
-
|
|
133
91
|
get spine() {
|
|
134
92
|
return this.builds[this.build].spine;
|
|
135
93
|
}
|
|
136
|
-
|
|
137
94
|
set spine(val) {
|
|
138
95
|
this.builds[this.build].spine = val;
|
|
139
96
|
}
|
|
140
|
-
|
|
141
97
|
get guide() {
|
|
142
98
|
return this.builds[this.build].guide;
|
|
143
99
|
}
|
|
144
|
-
|
|
145
100
|
set guide(val) {
|
|
146
101
|
this.builds[this.build].guide = val;
|
|
147
102
|
}
|
|
148
|
-
|
|
149
103
|
get figures() {
|
|
150
104
|
return this.builds[this.build].figures;
|
|
151
105
|
}
|
|
152
|
-
|
|
153
106
|
set figures(val) {
|
|
154
107
|
this.builds[this.build].figures = val;
|
|
155
108
|
}
|
|
156
|
-
|
|
157
109
|
get footnotes() {
|
|
158
110
|
return this.builds[this.build].footnotes;
|
|
159
111
|
}
|
|
160
|
-
|
|
161
112
|
set footnotes(val) {
|
|
162
113
|
this.builds[this.build].footnotes = val;
|
|
163
114
|
}
|
|
164
|
-
|
|
165
115
|
get cursor() {
|
|
166
116
|
return this.builds[this.build].cursor;
|
|
167
117
|
}
|
|
168
|
-
|
|
169
118
|
set cursor(val) {
|
|
170
119
|
this.builds[this.build].cursor = val;
|
|
171
120
|
}
|
|
172
|
-
|
|
173
121
|
get toc() {
|
|
174
122
|
return this.builds[this.build].toc;
|
|
175
123
|
}
|
|
176
|
-
|
|
177
124
|
set toc(val) {
|
|
178
125
|
this.builds[this.build].toc = val;
|
|
179
126
|
}
|
|
180
|
-
|
|
181
127
|
get remoteAssets() {
|
|
182
128
|
return this.builds[this.build].remoteAssets;
|
|
183
129
|
}
|
|
184
|
-
|
|
185
130
|
set remoteAssets(val) {
|
|
186
131
|
this.builds[this.build].remoteAssets = val;
|
|
187
132
|
}
|
|
188
|
-
|
|
189
133
|
get loi() {
|
|
190
134
|
return this.builds[this.build].loi;
|
|
191
135
|
}
|
|
192
|
-
|
|
193
136
|
set loi(val) {
|
|
194
137
|
this.builds[this.build].loi = val;
|
|
195
138
|
}
|
|
196
|
-
|
|
197
139
|
get srcDir() {
|
|
198
140
|
return this.config.src;
|
|
199
141
|
}
|
|
200
|
-
|
|
201
142
|
set srcDir(val) {
|
|
202
143
|
this.config.src = val;
|
|
203
144
|
}
|
|
204
|
-
|
|
205
145
|
get distDir() {
|
|
206
146
|
if (this.build && this.builds && this.builds[this.build]) {
|
|
207
147
|
return this.builds[this.build].dist;
|
|
208
148
|
}
|
|
209
|
-
|
|
210
149
|
return this.config.dist;
|
|
211
150
|
}
|
|
212
|
-
|
|
213
151
|
set distDir(val) {
|
|
214
152
|
this.config.dist = val;
|
|
215
|
-
}
|
|
216
|
-
|
|
153
|
+
}
|
|
217
154
|
|
|
155
|
+
// eslint-disable-next-line class-methods-use-this
|
|
218
156
|
get env() {
|
|
219
157
|
return process.env.NODE_ENV || 'development';
|
|
220
158
|
}
|
|
221
|
-
|
|
222
159
|
set env(val) {
|
|
223
160
|
this.config.env = val;
|
|
224
161
|
}
|
|
225
|
-
|
|
226
162
|
constructor() {
|
|
227
163
|
(0, _defineProperty2.default)(this, "metadata", {
|
|
228
164
|
json: () => [{}]
|
|
@@ -263,58 +199,52 @@ class State {
|
|
|
263
199
|
});
|
|
264
200
|
(0, _defineProperty2.default)(this, "reset", () => {
|
|
265
201
|
var _context;
|
|
266
|
-
|
|
267
|
-
(0, _forEach.default)(_context = (0, _entries.default)(State.defaults)).call(_context, ([key, val]) => (0, _set.default)(this, key, val));
|
|
202
|
+
(0, _forEach.default)(_context = (0, _entries.default)(State.defaults)).call(_context, ([key, val]) => (0, _set2.default)(this, key, val));
|
|
268
203
|
this.loadConfig();
|
|
269
204
|
});
|
|
270
205
|
(0, _defineProperty2.default)(this, "add", (prop, value) => {
|
|
271
206
|
const prevValue = (0, _get.default)(this, prop);
|
|
272
|
-
|
|
273
207
|
if ((0, _isArray.default)(prevValue)) {
|
|
274
|
-
(0,
|
|
208
|
+
(0, _set2.default)(this, prop, [...prevValue, value]);
|
|
275
209
|
} else if ((0, _isPlainObject.default)(prevValue)) {
|
|
276
|
-
(0,
|
|
210
|
+
(0, _set2.default)(this, prop, _objectSpread(_objectSpread({}, prevValue), {}, {
|
|
277
211
|
value
|
|
278
212
|
}));
|
|
279
213
|
} else if (typeof prevValue === 'string') {
|
|
280
|
-
(0,
|
|
214
|
+
(0, _set2.default)(this, prop, `${prevValue}${value}`);
|
|
281
215
|
} else {
|
|
282
216
|
_bBerLogger.default.error(`Cannot add [${value}] to [state.${prop}]`);
|
|
283
217
|
}
|
|
284
218
|
});
|
|
285
219
|
(0, _defineProperty2.default)(this, "remove", (prop, value) => {
|
|
286
220
|
const prevValue = (0, _get.default)(this, prop);
|
|
287
|
-
|
|
288
221
|
if ((0, _isArray.default)(prevValue)) {
|
|
289
222
|
const arr = [...prevValue];
|
|
290
223
|
(0, _remove.default)(arr, value);
|
|
291
|
-
(0,
|
|
224
|
+
(0, _set2.default)(this, prop, arr);
|
|
292
225
|
} else if ((0, _isPlainObject.default)(prevValue)) {
|
|
293
226
|
var _context2;
|
|
294
|
-
|
|
295
227
|
const {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
(0, _set.default)(this, prop, rest);
|
|
228
|
+
[value]: _
|
|
229
|
+
} = prevValue,
|
|
230
|
+
rest = (0, _objectWithoutProperties2.default)(prevValue, (0, _map.default)(_context2 = [value]).call(_context2, _toPropertyKey)); // eslint-disable-line no-unused-vars
|
|
231
|
+
(0, _set2.default)(this, prop, rest);
|
|
301
232
|
} else {
|
|
302
233
|
_bBerLogger.default.error(`Cannot remove [${value}] from [state.${prop}]`);
|
|
303
234
|
}
|
|
304
235
|
});
|
|
305
236
|
(0, _defineProperty2.default)(this, "merge", (prop, value) => {
|
|
306
237
|
const oldValue = (0, _get.default)(this, prop);
|
|
307
|
-
(0,
|
|
238
|
+
(0, _set2.default)(this, prop, (0, _merge.default)(oldValue, value));
|
|
308
239
|
});
|
|
309
240
|
(0, _defineProperty2.default)(this, "update", (prop, val) => {
|
|
310
|
-
(0,
|
|
241
|
+
(0, _set2.default)(this, prop, val);
|
|
311
242
|
});
|
|
312
243
|
(0, _defineProperty2.default)(this, "has", prop => {
|
|
313
244
|
return (0, _has.default)(this, prop);
|
|
314
245
|
});
|
|
315
246
|
(0, _defineProperty2.default)(this, "contains", (coll, value) => {
|
|
316
247
|
var _context3;
|
|
317
|
-
|
|
318
248
|
return (0, _indexOf.default)(_context3 = this).call(_context3, coll, value) > -1;
|
|
319
249
|
});
|
|
320
250
|
(0, _defineProperty2.default)(this, "find", (coll, pred) => {
|
|
@@ -328,83 +258,77 @@ class State {
|
|
|
328
258
|
(0, _defineProperty2.default)(this, "loadConfig", () => {
|
|
329
259
|
if (!_fsExtra.default.existsSync(_path.default.resolve('config.yml'))) return;
|
|
330
260
|
const config = new _Yaml.default('config');
|
|
331
|
-
config.load(_path.default.resolve('config.yml'));
|
|
332
|
-
// not writing back to config.yml, but may be necessary at some point
|
|
261
|
+
config.load(_path.default.resolve('config.yml'));
|
|
333
262
|
|
|
334
|
-
|
|
263
|
+
// not necessary right now to pass around a YAWN instance since we'er
|
|
264
|
+
// not writing back to config.yml, but may be necessary at some point
|
|
265
|
+
(0, _set2.default)(this, 'config', new _Config.default(config.json()));
|
|
335
266
|
});
|
|
336
267
|
(0, _defineProperty2.default)(this, "loadMetadata", () => {
|
|
337
268
|
const fpath = _path.default.resolve(this.config.src, 'metadata.yml');
|
|
338
|
-
|
|
339
269
|
if (!_fsExtra.default.existsSync(fpath)) return;
|
|
340
|
-
(0,
|
|
270
|
+
(0, _set2.default)(this, 'metadata', new _Yaml.default('metadata'));
|
|
341
271
|
this.metadata.load(fpath);
|
|
342
272
|
});
|
|
343
273
|
(0, _defineProperty2.default)(this, "loadMedia", () => {
|
|
344
274
|
const fpath = _path.default.resolve(this.config.src, 'media.yml');
|
|
345
|
-
|
|
346
275
|
if (!_fsExtra.default.existsSync(fpath)) return;
|
|
347
276
|
let media = new _Yaml.default('media');
|
|
348
277
|
media.load(fpath);
|
|
349
278
|
media = media.json();
|
|
350
|
-
(0,
|
|
279
|
+
(0, _set2.default)(this, 'media', media);
|
|
351
280
|
});
|
|
352
281
|
(0, _defineProperty2.default)(this, "loadTheme", () => {
|
|
353
|
-
//
|
|
282
|
+
// Ensure themes dir exists unless running `new` command, as it's the
|
|
354
283
|
// only command that's run outside of a project directory
|
|
355
284
|
if (skipInitialization()) return;
|
|
356
|
-
|
|
357
285
|
const userThemesPath = _path.default.resolve(this.config.themes_directory);
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
286
|
+
_fsExtra.default.ensureDirSync(userThemesPath);
|
|
287
|
+
|
|
288
|
+
// Add modules path that references the current b-ber project's theme dir
|
|
289
|
+
module.paths.push(userThemesPath);
|
|
290
|
+
const cwd = process.cwd();
|
|
291
|
+
const cwdArr = cwd.split('/');
|
|
292
|
+
const modulePaths = new _set.default([...module.paths]);
|
|
293
|
+
let cwdPath;
|
|
294
|
+
|
|
295
|
+
// Add modules paths that reference the current b-ber project
|
|
296
|
+
do {
|
|
297
|
+
cwdPath = `${cwdArr.join('/')}/node_modules`;
|
|
298
|
+
if (modulePaths.has(cwdPath)) continue;
|
|
299
|
+
module.paths.push(cwdPath);
|
|
300
|
+
} while (cwdArr.pop());
|
|
301
|
+
|
|
302
|
+
// Theme is set, using a built-in theme
|
|
362
303
|
if (themes[this.config.theme]) {
|
|
304
|
+
(0, _set2.default)(this, 'theme', themes[this.config.theme]);
|
|
363
305
|
_bBerLogger.default.info(`Loaded theme [${this.config.theme}]`);
|
|
364
|
-
|
|
365
|
-
(0, _set.default)(this, 'theme', themes[this.config.theme]);
|
|
366
306
|
return;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
try {
|
|
371
|
-
if (this.theme = require(_path.default.resolve(userThemesPath, this.config.theme)) // eslint-disable-line global-require, import/no-dynamic-require
|
|
372
|
-
) {
|
|
373
|
-
_bBerLogger.default.info(`Loaded theme [${this.config.theme}]`);
|
|
374
|
-
|
|
375
|
-
return;
|
|
376
|
-
}
|
|
377
|
-
} catch (_) {// noop
|
|
378
|
-
} // possibly a theme installed with npm, test the project root
|
|
379
|
-
|
|
307
|
+
}
|
|
380
308
|
|
|
309
|
+
// Possibly a user defined theme, or one installed with npm
|
|
381
310
|
try {
|
|
382
|
-
|
|
383
|
-
)
|
|
311
|
+
// eslint-disable-next-line global-require, import/no-dynamic-require
|
|
312
|
+
(0, _set2.default)(this, 'theme', require(this.config.theme));
|
|
313
|
+
_bBerLogger.default.info(`Loaded theme [${this.config.theme}]`);
|
|
384
314
|
} catch (err) {
|
|
385
315
|
_bBerLogger.default.warn(`There was an error during require [${this.config.theme}]`);
|
|
386
|
-
|
|
387
316
|
_bBerLogger.default.warn('Using default theme [b-ber-theme-serif]');
|
|
317
|
+
_bBerLogger.default.warn(err.message);
|
|
388
318
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
(0, _set.default)(this, 'theme', themes['b-ber-theme-serif']);
|
|
319
|
+
// Error loading theme, set to default
|
|
320
|
+
(0, _set2.default)(this, 'theme', themes['b-ber-theme-serif']);
|
|
393
321
|
}
|
|
394
322
|
});
|
|
395
323
|
(0, _defineProperty2.default)(this, "loadAudioVideo", () => {
|
|
396
324
|
if (skipInitialization()) return;
|
|
397
|
-
|
|
398
325
|
const mediaPath = _path.default.resolve(this.config.src, '_media');
|
|
399
|
-
|
|
400
326
|
_fsExtra.default.ensureDirSync(mediaPath);
|
|
401
|
-
|
|
402
327
|
const media = _fsExtra.default.readdirSync(mediaPath);
|
|
403
|
-
|
|
404
328
|
const video = (0, _filter.default)(media).call(media, a => /^video/.test(_mimeTypes.default.lookup(a)));
|
|
405
329
|
const audio = (0, _filter.default)(media).call(media, a => /^audio/.test(_mimeTypes.default.lookup(a)));
|
|
406
|
-
(0,
|
|
407
|
-
(0,
|
|
330
|
+
(0, _set2.default)(this, 'video', video);
|
|
331
|
+
(0, _set2.default)(this, 'audio', audio);
|
|
408
332
|
});
|
|
409
333
|
(0, _defineProperty2.default)(this, "loadBuildSettings", type => {
|
|
410
334
|
if (skipInitialization()) return;
|
|
@@ -412,24 +336,22 @@ class State {
|
|
|
412
336
|
src,
|
|
413
337
|
dist
|
|
414
338
|
} = this.config;
|
|
415
|
-
|
|
416
339
|
const projectDir = _path.default.resolve(src);
|
|
340
|
+
if (!_fsExtra.default.existsSync(projectDir)) _bBerLogger.default.error(`Project directory [${projectDir}] does not exist`);
|
|
417
341
|
|
|
418
|
-
|
|
342
|
+
// One TOC to rule them all (toc.yml). A user can override the TOC for a
|
|
419
343
|
// specific build by including a <type>.yml file, which will be loaded
|
|
420
344
|
// instead of toc.yml below.
|
|
421
|
-
|
|
422
345
|
const navigationConfigFileDefaultPath = _path.default.resolve(src, 'toc.yml');
|
|
423
|
-
|
|
424
346
|
const navigationConfigFilePath = _path.default.resolve(src, `${type}.yml`);
|
|
425
|
-
|
|
426
347
|
const navigationConfigFile = _fsExtra.default.existsSync(navigationConfigFilePath) ? navigationConfigFilePath : navigationConfigFileDefaultPath;
|
|
427
348
|
const spine = new _Spine.default({
|
|
428
349
|
src,
|
|
429
350
|
buildType: type,
|
|
430
351
|
navigationConfigFile
|
|
431
|
-
});
|
|
352
|
+
});
|
|
432
353
|
|
|
354
|
+
// Build-specific config. gets merged into base config during build step
|
|
433
355
|
const config = this.config[type] ? _objectSpread({}, this.config[type]) : {};
|
|
434
356
|
return {
|
|
435
357
|
src,
|
|
@@ -447,10 +369,11 @@ class State {
|
|
|
447
369
|
});
|
|
448
370
|
(0, _defineProperty2.default)(this, "loadBuilds", () => {
|
|
449
371
|
const builds = ['sample', 'epub', 'mobi', 'pdf', 'web', 'reader', 'xml'];
|
|
450
|
-
(0, _forEach.default)(builds).call(builds, build => (0,
|
|
372
|
+
(0, _forEach.default)(builds).call(builds, build => (0, _set2.default)(this.builds, build, this.loadBuildSettings(build)));
|
|
451
373
|
});
|
|
452
|
-
let version;
|
|
374
|
+
let version;
|
|
453
375
|
|
|
376
|
+
// for testing, since our directory structure is different in dist
|
|
454
377
|
try {
|
|
455
378
|
;
|
|
456
379
|
({
|
|
@@ -462,9 +385,8 @@ class State {
|
|
|
462
385
|
version
|
|
463
386
|
} = _fsExtra.default.readJSONSync(require.resolve('../package.json')));
|
|
464
387
|
}
|
|
465
|
-
|
|
466
|
-
(0,
|
|
467
|
-
(0, _set.default)(this, 'config', new _Config.default());
|
|
388
|
+
(0, _set2.default)(this, 'version', version);
|
|
389
|
+
(0, _set2.default)(this, 'config', new _Config.default());
|
|
468
390
|
this.reset();
|
|
469
391
|
this.loadMetadata();
|
|
470
392
|
this.loadAudioVideo();
|
|
@@ -472,9 +394,6 @@ class State {
|
|
|
472
394
|
this.loadBuilds();
|
|
473
395
|
this.loadTheme();
|
|
474
396
|
}
|
|
475
|
-
|
|
476
397
|
}
|
|
477
|
-
|
|
478
398
|
var _default = new State();
|
|
479
|
-
|
|
480
399
|
exports.default = _default;
|
package/Template.js
CHANGED
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
|
|
11
8
|
exports.default = void 0;
|
|
12
|
-
|
|
13
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
14
|
-
|
|
15
10
|
var _vinyl = _interopRequireDefault(require("vinyl"));
|
|
16
|
-
|
|
17
11
|
var _layouts = _interopRequireDefault(require("layouts"));
|
|
18
|
-
|
|
19
12
|
class Template {}
|
|
20
|
-
|
|
21
13
|
(0, _defineProperty2.default)(Template, "render", (contents, template) => (0, _layouts.default)(new _vinyl.default({
|
|
22
14
|
path: '.Template',
|
|
23
15
|
layout: 'template',
|