@canopycanopycanopy/b-ber-tasks 3.0.8-next.61 → 3.0.8-next.97

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.
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
10
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
11
- var _epubZipper = _interopRequireDefault(require("epub-zipper"));
12
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
13
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
14
- var _utils = require("@canopycanopycanopy/b-ber-lib/utils");
15
- const epub = () => {
16
- var _context;
17
- return (0, _includes.default)(_context = process.argv).call(_context, '--no-compile') ? _promise.default.resolve() : _epubZipper.default.create({
18
- input: _State.default.distDir,
19
- output: process.cwd(),
20
- clean: true,
21
- fileName: (0, _utils.getBookMetadata)('identifier', _State.default)
22
- }).catch(_bBerLogger.default.error);
23
- };
24
- var _default = exports.default = epub;
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _bind = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/bind"));
10
- var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
11
- var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
12
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
13
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
14
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
15
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
16
- var _bBerLib = require("@canopycanopycanopy/b-ber-lib");
17
- var _Xhtml = _interopRequireDefault(require("@canopycanopycanopy/b-ber-templates/Xhtml"));
18
- class Footnotes {
19
- get file() {
20
- return {
21
- name: this.baseName,
22
- path: _State.default.dist.text(`${this.baseName}.xhtml`)
23
- };
24
- }
25
- constructor() {
26
- var _context;
27
- this.baseName = 'notes';
28
- this.init = (0, _bind.default)(_context = this.init).call(_context, this);
29
- }
30
- async writeFootnotes() {
31
- var _context2;
32
- const notes = (0, _reduce.default)(_context2 = _State.default.footnotes).call(_context2, (acc, cur) => (0, _concat.default)(acc).call(acc, cur.notes), '');
33
- const markup = _bBerLib.Template.render(notes, _Xhtml.default.body());
34
- await _fsExtra.default.writeFile(this.file.path, markup, 'utf8');
35
- const fileData = new _bBerLib.SpineItem({
36
- fileName: this.file.name,
37
- // eslint-disable-next-line camelcase
38
- in_toc: false,
39
- linear: false,
40
- generated: true,
41
- buildType: _State.default.build
42
- });
43
- _State.default.add('spine.flattened', fileData);
44
- _bBerLogger.default.info(`create default footnotes page [${this.file.name}.xhtml]`);
45
- }
46
- init() {
47
- if (!_State.default.footnotes.length) {
48
- _bBerLogger.default.info('footnotes no footnotes found in source');
49
- return _promise.default.resolve(_State.default.footnotes);
50
- }
51
- _bBerLogger.default.info('footnotes generating links');
52
- return this.writeFootnotes().catch(_bBerLogger.default.error);
53
- }
54
- }
55
- const footnotes = new Footnotes();
56
- var _default = exports.default = footnotes.init;
@@ -1,79 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _bind = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/bind"));
10
- var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
11
- var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
12
- var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
13
- var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
14
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
15
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
16
- var _path = _interopRequireDefault(require("path"));
17
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
18
- var _YamlAdaptor = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/YamlAdaptor"));
19
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
20
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
21
- var _sequences = _interopRequireDefault(require("@canopycanopycanopy/b-ber-shapes-sequences/sequences"));
22
- /* eslint-disable class-methods-use-this */
23
-
24
- // Generate new Markdown documents
25
- class Generate {
26
- constructor() {
27
- var _context;
28
- this.init = (0, _bind.default)(_context = this.init).call(_context, this);
29
- }
30
- createFile({
31
- markdownDir,
32
- metadata
33
- }) {
34
- var _context2;
35
- const frontmatter = `---\n${(0, _reduce.default)(_context2 = (0, _entries.default)(metadata)).call(_context2, (acc, [k, v]) => v ? (0, _concat.default)(acc).call(acc, `${k}: ${v}\n`) : acc, '')}---\n`;
36
- const {
37
- title
38
- } = metadata;
39
- const fileName = `${title.replace(/[^a-z0-9_-]/gi, '-')}.md`;
40
- const filePath = _path.default.join(markdownDir, fileName);
41
- if (_fsExtra.default.existsSync(filePath)) _bBerLogger.default.error(`_markdown${_path.default.sep}${fileName} already exists, aborting`);
42
- return _fsExtra.default.writeFile(filePath, frontmatter).then(() => ({
43
- fileName
44
- }));
45
- }
46
- writePageMeta({
47
- fileName
48
- }) {
49
- const tocFile = _State.default.src.root('toc.yml');
50
- const pageMeta = _YamlAdaptor.default.load(tocFile) || [];
51
- const index = (0, _indexOf.default)(pageMeta).call(pageMeta, fileName);
52
- const content = `\n- ${_path.default.basename(fileName, '.md')}`;
53
- if (index > -1) {
54
- throw new Error(`${fileName} already exists in [${_path.default.basename(tocFile)}]. Aborting`);
55
- }
56
-
57
- // Add entry to main toc.yml
58
- const promises = [_fsExtra.default.appendFile(tocFile, content)];
59
-
60
- // If overrides toc files exist then write to them too
61
- const builds = (0, _keys.default)(_sequences.default);
62
- (0, _reduce.default)(builds).call(builds, (acc, curr) => _fsExtra.default.existsSync(_State.default.src.root(`${curr}.yml`)) ? (0, _concat.default)(acc).call(acc, _fsExtra.default.appendFile(_State.default.src.root(`${curr}.yml`), content)) : acc, promises);
63
- return _promise.default.all(promises).then(() => ({
64
- fileName
65
- }));
66
- }
67
- init(metadata) {
68
- // TODO: ensure markdown dir
69
- const markdownDir = _State.default.src.markdown();
70
- return _fsExtra.default.mkdirp(markdownDir).then(() => this.createFile({
71
- markdownDir,
72
- metadata
73
- })).then(resp => this.writePageMeta(resp)).then(({
74
- fileName
75
- }) => _bBerLogger.default.notice(`Generated new page [${fileName}]`)).catch(_bBerLogger.default.error);
76
- }
77
- }
78
- const generate = new Generate().init;
79
- var _default = exports.default = generate;
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
10
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
11
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
13
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
14
- var _path = _interopRequireDefault(require("path"));
15
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
16
- var _sequences = _interopRequireDefault(require("@canopycanopycanopy/b-ber-shapes-sequences/sequences"));
17
- var _bBerResources = _interopRequireDefault(require("@canopycanopycanopy/b-ber-resources"));
18
- var _Project = _interopRequireDefault(require("@canopycanopycanopy/b-ber-templates/Project"));
19
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
20
- var _Theme = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/Theme"));
21
- var _utils = require("@canopycanopycanopy/b-ber-lib/utils");
22
- class Initializer {
23
- constructor({
24
- name = '',
25
- config
26
- }) {
27
- (0, _defineProperty2.default)(this, "createAssets", () => {
28
- const files = [_Project.default.tocYAML(this.path), _Project.default.configYAML(this.path, this.config), _Project.default.metadataYAML(this.path), ..._Project.default.javascripts(this.path), ..._Project.default.stylesheets(this.path), ..._Project.default.markdown(this.path), _Project.default.readme(this.path), _Project.default.gitignore(this.path)];
29
- const dirs = _Project.default.directories(this.path);
30
- return (0, _utils.ensure)({
31
- files,
32
- dirs,
33
- prefix: this.name
34
- });
35
- });
36
- this.src = '_project';
37
- this.dist = 'project';
38
- this.name = name;
39
- this.config = config;
40
- this.path = _path.default.join(name, this.src);
41
- this.builds = (0, _keys.default)(_sequences.default);
42
- if (_fsExtra.default.existsSync(this.path)) {
43
- _bBerLogger.default.error(`Project [${name}] already exits, aborting`);
44
- }
45
- }
46
- copyImages() {
47
- return (0, _bBerResources.default)().then(assets => {
48
- const {
49
- 'b-ber-logo': bberLogo,
50
- 'default-publishers-logo': publishersLogo
51
- } = assets;
52
- const images = [bberLogo, publishersLogo];
53
- _bBerLogger.default.info('Copying development assets');
54
- const promises = (0, _map.default)(images).call(images, a => _fsExtra.default.copy(a, _path.default.join(this.path, '_images', _path.default.basename(a))));
55
- return _promise.default.all(promises);
56
- });
57
- }
58
-
59
- // eslint-disable-next-line class-methods-use-this
60
- setTheme() {
61
- const {
62
- theme
63
- } = _State.default.config;
64
- process.chdir(this.name);
65
- return _Theme.default.set(theme, true);
66
- }
67
-
68
- // Write default directories and files to the source directory
69
- start() {
70
- this.createAssets().then(() => this.copyImages()).then(() => this.setTheme()).then(() => _bBerLogger.default.notice(`Created new project [${this.name}]`)).catch(_bBerLogger.default.error);
71
- }
72
- }
73
- var _default = exports.default = Initializer;
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getFileObjects = exports.default = void 0;
9
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
10
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
11
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
12
- var _path = _interopRequireDefault(require("path"));
13
- var _vinyl = _interopRequireDefault(require("vinyl"));
14
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
15
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
16
- var _bBerLib = require("@canopycanopycanopy/b-ber-lib");
17
- var _Xhtml = _interopRequireDefault(require("@canopycanopycanopy/b-ber-templates/Xhtml"));
18
- const getRemoteAssets = type => _promise.default.resolve(_State.default.config[`remote_${type}`] || []);
19
- const getAssets = type => _promise.default.all([_fsExtra.default.readdir(_State.default.dist.ops(type)), getRemoteAssets(type)]).then(([a, b]) => [...a, ...b]);
20
- const getInlineScripts = () => [new _vinyl.default({
21
- contents: Buffer.from(`window.bber = window.bber || {}; window.bber.env = '${_State.default.build}';`)
22
- })];
23
- const ensureString = objectOrString => objectOrString instanceof _vinyl.default ? objectOrString.contents.toString() : objectOrString;
24
- const relative = (from, to) => _path.default.relative(_path.default.join(...from), _path.default.join(...to));
25
- const render = ({
26
- file,
27
- basePath,
28
- stylesheets,
29
- javascripts,
30
- inlineStylesheets,
31
- inlineJavascripts,
32
- metadata
33
- }) => {
34
- var _context, _context2, _context3, _context4, _context5;
35
- const stylesheets_ = (0, _map.default)(_context = (0, _map.default)(stylesheets).call(stylesheets, ensureString)).call(_context, f => _bBerLib.Template.render(relative([basePath], ['stylesheets', f]), _Xhtml.default.stylesheet())).join('');
36
- const inlineStylesheets_ = (0, _map.default)(_context2 = (0, _map.default)(inlineStylesheets).call(inlineStylesheets, ensureString)).call(_context2, f => _bBerLib.Template.render(f, _Xhtml.default.stylesheet(true))).join('');
37
- const javascripts_ = (0, _map.default)(_context3 = (0, _map.default)(javascripts).call(javascripts, ensureString)).call(_context3, f => _bBerLib.Template.render(relative([basePath], ['javascripts', f]), _Xhtml.default.javascript())).join('');
38
- const inlineJavascripts_ = (0, _map.default)(_context4 = (0, _map.default)(inlineJavascripts).call(inlineJavascripts, ensureString)).call(_context4, f => _bBerLib.Template.render(f, _Xhtml.default.javascript(true))).join('');
39
- const metadata_ = (0, _map.default)(_context5 = (0, _map.default)(metadata).call(metadata, ensureString)).call(_context5, f => _bBerLib.Template.render(f, _Xhtml.default.jsonLD())).join('');
40
- const head = _bBerLib.Template.render(`${stylesheets_}${inlineStylesheets_}`, _Xhtml.default.head());
41
- const body = file instanceof _vinyl.default ? file.contents.toString() : _fsExtra.default.readFileSync(_State.default.dist.ops(basePath, file), 'utf8');
42
- const tail = _bBerLib.Template.render(`${javascripts_}${inlineJavascripts_}${metadata_}`, _Xhtml.default.tail());
43
- return `${head}${body}${tail}`;
44
- };
45
- const writeAll = files => _promise.default.all((0, _map.default)(files).call(files, file => _fsExtra.default.writeFile(_State.default.dist.text(file.fileName), file.contents)));
46
- const getFileObjects = async (files, basePath = '') => {
47
- const stylesheets = await getAssets('stylesheets');
48
- const javascripts = await getAssets('javascripts');
49
- const inlineStylesheets = [];
50
- const inlineJavascripts = getInlineScripts();
51
-
52
- // TODO:
53
- // @issue: https://github.com/triplecanopy/b-ber/issues/226
54
- const metadata = [];
55
- const files_ = (0, _map.default)(files).call(files, file => ({
56
- fileName: file.name,
57
- contents: render({
58
- file: file.data,
59
- basePath,
60
- stylesheets,
61
- javascripts,
62
- inlineStylesheets,
63
- inlineJavascripts,
64
- metadata
65
- })
66
- }));
67
- return files_;
68
- };
69
- exports.getFileObjects = getFileObjects;
70
- const inject = async () => {
71
- var _context6;
72
- const basePath = 'text';
73
- const files = (0, _map.default)(_context6 = _fsExtra.default.readdirSync(_State.default.dist.ops(basePath))).call(_context6, file => ({
74
- name: file,
75
- data: file
76
- }));
77
- const fileObjects = await getFileObjects(files, basePath);
78
- return writeAll(fileObjects).catch(_bBerLogger.default.error);
79
- };
80
- var _default = exports.default = inject;
package/dist/loi/index.js DELETED
@@ -1,130 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
- var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
- var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
- var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
- var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
- var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
- var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
- _Object$defineProperty(exports, "__esModule", {
13
- value: true
14
- });
15
- exports.default = void 0;
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
- var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
18
- var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
19
- var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
20
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
21
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
22
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
23
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
24
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
25
- var _sortBy = _interopRequireDefault(require("lodash/sortBy"));
26
- var _bBerLib = require("@canopycanopycanopy/b-ber-lib");
27
- var _figures = _interopRequireDefault(require("@canopycanopycanopy/b-ber-templates/figures"));
28
- var _Xhtml = _interopRequireDefault(require("@canopycanopycanopy/b-ber-templates/Xhtml"));
29
- function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
30
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context3, _context4; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(t), !0)).call(_context3, function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context4 = ownKeys(Object(t))).call(_context4, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /* eslint-disable camelcase */
31
- const createLOILeader = () => {
32
- const baseName = 'figures-titlepage';
33
- const fileName = `${baseName}.xhtml`;
34
-
35
- // Create LOI page markup
36
- const markup = _bBerLib.Template.render(_Xhtml.default.loi(), _Xhtml.default.body());
37
-
38
- // Add guide item to content.opf
39
- const guideItem = new _bBerLib.GuideItem({
40
- fileName,
41
- title: 'Figures',
42
- type: 'loi'
43
- });
44
- _State.default.add('guide', guideItem);
45
-
46
- // Check if the figures titlepage has been declared
47
- const index = (0, _indexOf.default)(_State.default).call(_State.default, 'spine.flattened', item => item.fileName === baseName);
48
-
49
- // If not, add it to state.spine so that it can be referenced
50
- // in the content.opf
51
- if (index < 0) {
52
- const item = {
53
- fileName: baseName,
54
- in_toc: true,
55
- ref: null,
56
- pageOrder: -1,
57
- generated: true
58
- };
59
- _State.default.add('spine.entries', baseName);
60
- _State.default.add('spine.nested', new _bBerLib.SpineItem(item));
61
- _State.default.add('spine.flattened', item);
62
- }
63
- _bBerLogger.default.info(`loi emit default figures titlepage [${fileName}]`);
64
- return _fsExtra.default.writeFile(_State.default.dist.text(fileName), markup, 'utf8');
65
- };
66
-
67
- // only called in `reader` build
68
- const createLOIAsSingleHTMLFile = () => {
69
- var _context;
70
- const classes = item => item.classes ? item.classes.replace(/small/g, 'inline') : '';
71
- const figuresPage = (0, _reduce.default)(_context = _State.default.figures).call(_context, (acc, curr) => (0, _concat.default)(acc).call(acc, (0, _figures.default)(_objectSpread(_objectSpread({}, curr), {}, {
72
- classes: classes(curr)
73
- }), _State.default.build)), _Xhtml.default.loi());
74
- const fileName = 'figures-titlepage.xhtml';
75
- const markup = _bBerLib.Template.render(figuresPage, _Xhtml.default.body());
76
- const guideItem = new _bBerLib.GuideItem({
77
- fileName,
78
- title: 'Figures',
79
- type: 'loi'
80
- });
81
- _State.default.add('guide', guideItem);
82
- _bBerLogger.default.info(`loi emit figures titlepage [${fileName}]`);
83
- return _fsExtra.default.writeFile(_State.default.dist.text(fileName), markup, 'utf8');
84
- };
85
- const createLOIAsSeparateHTMLFiles = () => {
86
- var _context2;
87
- const promises = (0, _map.default)(_context2 = _State.default.figures).call(_context2, data => {
88
- // Create image string based on dimensions of image
89
- // returns square | landscape | portrait | portraitLong
90
- const figures = (0, _figures.default)(data, _State.default.build);
91
- const markup = _bBerLib.Template.render(figures, _Xhtml.default.body());
92
- const {
93
- page: fileName,
94
- ref,
95
- pageOrder
96
- } = data;
97
- const in_toc = false; //eslint-disable-line camelcase
98
- const buildType = _State.default.build;
99
- const spineItem = new _bBerLib.SpineItem({
100
- fileName,
101
- in_toc,
102
- ref,
103
- pageOrder,
104
- buildType
105
- });
106
- _State.default.add('loi', spineItem);
107
- _bBerLogger.default.info(`loi linking [${data.source}] to [${data.page}]`);
108
- return _fsExtra.default.writeFile(_State.default.dist.text(data.page), markup, 'utf8');
109
- });
110
- return _promise.default.all(promises).then(() => _State.default.update('loi', (0, _sortBy.default)(_State.default.loi, 'pageOrder')));
111
- };
112
- const loi = () => {
113
- if (!_State.default.figures.length) return _promise.default.resolve();
114
-
115
- // For certain builds it may be preferable to have all figures on a
116
- // single page (e.g., during the web or reader builds). We could set
117
- // a flag for this, but current functionality is to always default
118
- // to split the figures into separate files *unless* we're building
119
- // for the reader.
120
-
121
- // This branch concatentates all the figures, as well as the loi-leader
122
- // (the 'Figures' header text) into a single document
123
- if (_State.default.build === 'reader') {
124
- return createLOIAsSingleHTMLFile().catch(_bBerLogger.default.error);
125
- }
126
-
127
- // create separate files
128
- return createLOILeader().then(createLOIAsSeparateHTMLFiles).catch(_bBerLogger.default.error);
129
- };
130
- var _default = exports.default = loi;
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
10
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
11
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
12
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
13
- var _EbookConvert = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/EbookConvert"));
14
- var _utils = require("@canopycanopycanopy/b-ber-lib/utils");
15
- const pageBreakBeforeXPATH = () => [
16
- // eslint-disable-next-line no-useless-escape
17
- '//h:*\[@class="figure__large figure__inline"\]',
18
- // prettier-ignore
19
- // eslint-disable-next-line no-useless-escape
20
- '//h:*\[@class="figure__large figure__inline"\]/following::h:p[1]',
21
- // prettier-ignore
22
- // eslint-disable-next-line no-useless-escape
23
- '//h:*\[contains(@class, "break-before")\]',
24
- // prettier-ignore
25
- // eslint-disable-next-line no-useless-escape
26
- '//h:*\[@data-gallery-item\]' // prettier-ignore
27
- ].join('|');
28
- const mobi = () => {
29
- var _context;
30
- return (0, _includes.default)(_context = process.argv).call(_context, '--no-compile') ? _promise.default.resolve() : _EbookConvert.default.convert({
31
- // https://manual.calibre-ebook.com/generated/en/ebook-convert.html#mobi-output-options
32
- inputPath: _State.default.dist.ops('content.opf'),
33
- outputPath: process.cwd(),
34
- fileType: 'mobi',
35
- fileName: (0, _utils.getBookMetadata)('identifier', _State.default),
36
- flags: ['--mobi-file-type=both', '--disable-font-rescaling', '--no-inline-toc', '--chapter="/"', '--chapter-mark=none', '--disable-remove-fake-margins', `--page-breaks-before='${pageBreakBeforeXPATH()}'`]
37
- }).catch(_bBerLogger.default.error);
38
- };
39
- var _default = exports.default = mobi;
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
- var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
- _Object$defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
10
- var _splice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/splice"));
11
- var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
12
- var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
13
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
14
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
15
- var _css = _interopRequireDefault(require("css"));
16
- var _path = _interopRequireDefault(require("path"));
17
- var _bBerLogger = _interopRequireDefault(require("@canopycanopycanopy/b-ber-logger"));
18
- var _State = _interopRequireDefault(require("@canopycanopycanopy/b-ber-lib/State"));
19
- const blackListedPrefixes = ['epub|'];
20
- const blackListedTypes = ['namespace'];
21
-
22
- // CSS declarations that break mobi files
23
- const blackListedProperties = ['line-height', '-webkit-hyphens', '-epub-hyphens', 'adobe-hyphenate', '-moz-hyphens', '-ms-hyphens', 'hyphens', 'word-break', 'word-break', 'widows', 'orphans', 'text-rendering', '-webkit-font-smoothing', '-moz-osx-font-smoothing', '-webkit-text-fill-color'];
24
- const write = ({
25
- file,
26
- content
27
- }) => _fsExtra.default.writeFile(file, content, 'utf8').then(() => _bBerLogger.default.info(`mobiCSS write [${_path.default.basename(file)}]`));
28
- const process = file => _fsExtra.default.readFile(file, 'utf8').then(data => {
29
- const ast = _css.default.parse(data);
30
- let i = ast.stylesheet.rules.length - 1;
31
- while (i >= 0) {
32
- const rule = ast.stylesheet.rules[i];
33
- if (rule.selectors) {
34
- let j = rule.selectors.length - 1;
35
- while (j >= 0) {
36
- let jj = 0;
37
- while (jj < blackListedPrefixes.length) {
38
- var _context;
39
- if ((0, _slice.default)(_context = rule.selectors[j]).call(_context, 0, blackListedPrefixes[jj].length) === blackListedPrefixes[jj]) {
40
- var _context2;
41
- _bBerLogger.default.info('mobiCSS remove selector', rule.selectors[j]);
42
- (0, _splice.default)(_context2 = rule.selectors).call(_context2, j, 1);
43
- }
44
- jj++; // eslint-disable-line no-plusplus
45
- }
46
- j--; // eslint-disable-line no-plusplus
47
- }
48
- }
49
- if ((0, _indexOf.default)(blackListedTypes).call(blackListedTypes, rule.type) > -1) {
50
- var _context3;
51
- _bBerLogger.default.info(`mobiCSS remove ${rule.type} [${rule[rule.type]}]`);
52
- (0, _splice.default)(_context3 = ast.stylesheet.rules).call(_context3, i, 1);
53
- }
54
- if (ast.stylesheet.rules[i]) {
55
- const {
56
- declarations
57
- } = ast.stylesheet.rules[i];
58
- if (declarations) {
59
- let a = declarations.length - 1;
60
- while (a >= 0) {
61
- if ((0, _indexOf.default)(blackListedProperties).call(blackListedProperties, declarations[a].property) > -1) {
62
- _bBerLogger.default.info(`mobiCSS remove property [${declarations[a].property}]`);
63
- (0, _splice.default)(declarations).call(declarations, a, 1);
64
- }
65
- a--; // eslint-disable-line no-plusplus
66
- }
67
- }
68
- }
69
- i--; // eslint-disable-line no-plusplus
70
- }
71
- const content = _css.default.stringify(ast);
72
- return {
73
- file,
74
- content
75
- };
76
- });
77
- const mobiCSS = () => {
78
- const stylesheetsPath = _State.default.dist.stylesheets();
79
- return _fsExtra.default.readdir(stylesheetsPath).then(files => _promise.default.all((0, _map.default)(files).call(files, stylesheet => {
80
- const file = _State.default.dist.stylesheets(stylesheet);
81
- _bBerLogger.default.info(`mobiCSS process [${_path.default.basename(file)}]`);
82
- return process(file).then(write);
83
- })).catch(_bBerLogger.default.error));
84
- };
85
- var _default = exports.default = mobiCSS;