palt-typesetting 0.1.2 → 0.1.4
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/README.md +161 -0
- package/bundle/palt-typesetting.min.js +2 -2
- package/bundle/palt-typesetting.min.js.map +3 -3
- package/dist/apply-style.d.ts +3 -3
- package/dist/apply-style.d.ts.map +1 -1
- package/dist/apply-style.js +10 -10
- package/dist/apply-style.js.map +1 -1
- package/dist/html-processor.d.ts +2 -2
- package/dist/html-processor.d.ts.map +1 -1
- package/dist/html-processor.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -22
- package/dist/index.js.map +1 -1
- package/dist/insert-separators.d.ts +3 -3
- package/dist/insert-separators.d.ts.map +1 -1
- package/dist/insert-separators.js +3 -3
- package/dist/insert-separators.js.map +1 -1
- package/dist/types/index.d.ts +23 -9
- package/dist/utils-tags.d.ts +6 -6
- package/dist/utils-tags.d.ts.map +1 -1
- package/dist/utils-tags.js +26 -20
- package/dist/utils-tags.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-processor.d.ts","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"html-processor.d.ts","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAOpE,cAAM,aAAa;IACjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAoB;gBAEvB,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,kBAAkB;IAahF,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAmBjD,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,WAAW,CASlB;CACF;AAQD,QAAA,MAAM,eAAe,SAAU,MAAM,aAEpC,CAAA;AAQD,QAAA,MAAM,YAAY,YAAa,WAAW,KAAG,IAAI,EAahD,CAAA;AAED,eAAe,aAAa,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-processor.js","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAQvB,MAAM,aAAa;IAIjB,YAAY,kBAAuC,EAAE,
|
|
1
|
+
{"version":3,"file":"html-processor.js","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import HTMLProcessor from './html-processor';
|
|
2
|
-
import type {
|
|
3
|
-
declare class
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import type { TypesettingOptions } from './types';
|
|
3
|
+
declare class Typesetter extends HTMLProcessor {
|
|
4
|
+
static defaultOptions: TypesettingOptions;
|
|
5
|
+
private isIntlSegmenterSupported;
|
|
6
|
+
constructor(options?: Partial<TypesettingOptions>);
|
|
6
7
|
private static validateOptions;
|
|
7
8
|
private static isValidKerningRule;
|
|
8
9
|
render(srcHtml: string): string;
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
renderToElements(elements: Element | Element[] | null): void;
|
|
11
|
+
renderToSelector(selector: string | null): void;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
export { TypeSet, createTypeSetting };
|
|
13
|
+
export default Typesetter;
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAA;AAI5C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAA;AAI5C,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAM9D,cAAM,UAAW,SAAQ,aAAa;IAIpC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAQxC;IAKD,OAAO,CAAC,wBAAwB,CAAS;gBAE7B,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM;IA2BrD,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiBjC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAc/B,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;IAqB5D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAQhD;AAED,eAAe,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -3,18 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createTypeSetting = exports.TypeSet = void 0;
|
|
7
6
|
const html_processor_1 = __importDefault(require("./html-processor"));
|
|
8
7
|
const insert_separators_1 = __importDefault(require("./insert-separators"));
|
|
9
8
|
const apply_style_1 = require("./apply-style");
|
|
10
9
|
const win_1 = __importDefault(require("./win"));
|
|
11
|
-
class
|
|
10
|
+
class Typesetter extends html_processor_1.default {
|
|
12
11
|
constructor(options = {}) {
|
|
13
|
-
const validatedOptions = TypeSet.validateOptions(options);
|
|
14
12
|
const transformFunctions = [apply_style_1.applyStyleToText, insert_separators_1.default, apply_style_1.applyStyleToSegment];
|
|
13
|
+
const validatedOptions = Typesetter.validateOptions(options);
|
|
15
14
|
super(transformFunctions, validatedOptions);
|
|
16
|
-
this.
|
|
17
|
-
if (!this.
|
|
15
|
+
this.isIntlSegmenterSupported = typeof Intl.Segmenter !== 'undefined';
|
|
16
|
+
if (!this.isIntlSegmenterSupported) {
|
|
18
17
|
console.warn(`
|
|
19
18
|
Intl.Segmenter is not supported in this environment.
|
|
20
19
|
The original HTML string will be returned.
|
|
@@ -23,26 +22,26 @@ class TypeSet extends html_processor_1.default {
|
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
static validateOptions(options) {
|
|
26
|
-
if (options.
|
|
27
|
-
options.
|
|
25
|
+
if (options.kerningRules) {
|
|
26
|
+
options.kerningRules = options.kerningRules.filter(Typesetter.isValidKerningRule);
|
|
28
27
|
}
|
|
29
|
-
return Object.assign({
|
|
28
|
+
return Object.assign(Object.assign({}, Typesetter.defaultOptions), options);
|
|
30
29
|
}
|
|
31
|
-
static isValidKerningRule(
|
|
32
|
-
if (
|
|
33
|
-
console.warn(`Kerning rule between '${
|
|
30
|
+
static isValidKerningRule(kerningRule) {
|
|
31
|
+
if (kerningRule.between[0].length !== 1 || kerningRule.between[1].length !== 1) {
|
|
32
|
+
console.warn(`Kerning rule between '${kerningRule.between[0]}' and '${kerningRule.between[1]}' must be single characters.`);
|
|
34
33
|
return false;
|
|
35
34
|
}
|
|
36
35
|
return true;
|
|
37
36
|
}
|
|
38
37
|
render(srcHtml) {
|
|
39
|
-
if (!this.
|
|
38
|
+
if (!this.isIntlSegmenterSupported || !srcHtml) {
|
|
40
39
|
return srcHtml;
|
|
41
40
|
}
|
|
42
41
|
return this.processHtmlWithFunctions(srcHtml);
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
if (!this.
|
|
43
|
+
renderToElements(elements) {
|
|
44
|
+
if (!this.isIntlSegmenterSupported || !elements) {
|
|
46
45
|
return;
|
|
47
46
|
}
|
|
48
47
|
if (!Array.isArray(elements)) {
|
|
@@ -53,18 +52,22 @@ class TypeSet extends html_processor_1.default {
|
|
|
53
52
|
element.innerHTML = processedHtml;
|
|
54
53
|
});
|
|
55
54
|
}
|
|
56
|
-
|
|
57
|
-
if (!this.
|
|
55
|
+
renderToSelector(selector) {
|
|
56
|
+
if (!this.isIntlSegmenterSupported || !selector) {
|
|
58
57
|
return;
|
|
59
58
|
}
|
|
60
59
|
const elements = win_1.default.document.querySelectorAll(selector);
|
|
61
|
-
this.
|
|
60
|
+
this.renderToElements(Array.from(elements));
|
|
62
61
|
}
|
|
63
62
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
Typesetter.defaultOptions = {
|
|
64
|
+
classNamePrefix: 'typeset',
|
|
65
|
+
useWordBreak: true,
|
|
66
|
+
wrapLatin: true,
|
|
67
|
+
noSpaceBetweenNoBreaks: true,
|
|
68
|
+
addThinSpaces: true,
|
|
69
|
+
thinSpaceWidth: '50%',
|
|
70
|
+
kerningRules: [],
|
|
68
71
|
};
|
|
69
|
-
exports.
|
|
72
|
+
exports.default = Typesetter;
|
|
70
73
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,sEAA4C;AAC5C,4EAAwD;AACxD,+CAAqE;AACrE,gDAAuB;AAOvB,MAAM,UAAW,SAAQ,wBAAa;IAmBpC,YAAY,UAAuC,EAAE;QACnD,MAAM,kBAAkB,GAAG,CAAC,8BAAgB,EAAE,2BAAsB,EAAE,iCAAmB,CAAC,CAAA;QAC1F,MAAM,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAE5D,KAAK,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;QAO3C,IAAI,CAAC,wBAAwB,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,WAAW,CAAA;QACrE,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC;;;;SAIV,CAAC,CAAA;QACN,CAAC;IACH,CAAC;IAQO,MAAM,CAAC,eAAe,CAAC,OAAoC;QACjE,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAA;QACnF,CAAC;QAGD,uCACK,UAAU,CAAC,cAAc,GACzB,OAAO,EACX;IACH,CAAC;IAQO,MAAM,CAAC,kBAAkB,CAAC,WAAwB;QACxD,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/E,OAAO,CAAC,IAAI,CACV,yBAAyB,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAC9G,CAAA;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAQD,MAAM,CAAC,OAAe;QACpB,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAQD,gBAAgB,CAAC,QAAoC;QACnD,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvB,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACpD,OAAO,CAAC,SAAS,GAAG,aAAa,CAAA;QACnC,CAAC,CAAC,CAAA;IACJ,CAAC;IAQD,gBAAgB,CAAC,QAAuB;QACtC,IAAI,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChD,OAAM;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,aAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7C,CAAC;;AAvHM,yBAAc,GAAuB;IAC1C,eAAe,EAAE,SAAS;IAC1B,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,sBAAsB,EAAE,IAAI;IAC5B,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,KAAK;IACrB,YAAY,EAAE,EAAE;CACjB,CAAA;AAkHH,kBAAe,UAAU,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const insertSeparatorsToText: (currentText: string, nextText: string, options:
|
|
1
|
+
import { TypesettingOptions } from './types';
|
|
2
|
+
declare const insertSeparatorsToText: (currentText: string, nextText: string, options: TypesettingOptions) => string;
|
|
3
3
|
declare const generateSegments: (src: string) => string[];
|
|
4
|
-
declare const addSeparatorsToSegment: (current: string, next: string | undefined, options:
|
|
4
|
+
declare const addSeparatorsToSegment: (current: string, next: string | undefined, options: TypesettingOptions) => string;
|
|
5
5
|
declare const shouldAddWbr: (current: string, next: string) => boolean | null;
|
|
6
6
|
declare const shouldAddThinSpace: (current: string, next: string) => boolean;
|
|
7
7
|
export default insertSeparatorsToText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAQ5C,QAAA,MAAM,sBAAsB,gBAAiB,MAAM,YAAY,MAAM,WAAW,kBAAkB,KAAG,MAWpG,CAAA;AAOD,QAAA,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAAM,EAG7C,CAAA;AAQD,QAAA,MAAM,sBAAsB,YAAa,MAAM,qCAAsB,kBAAkB,KAAG,MAMzF,CAAA;AAQD,QAAA,MAAM,YAAY,YAAa,MAAM,QAAQ,MAAM,KAAG,OAAO,GAAG,IAK/D,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAE3D,CAAA;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -25,9 +25,9 @@ exports.generateSegments = generateSegments;
|
|
|
25
25
|
const addSeparatorsToSegment = (current, next = '', options) => {
|
|
26
26
|
if (!next)
|
|
27
27
|
return current;
|
|
28
|
-
const addWbr = options.
|
|
29
|
-
const addSpace = options.
|
|
30
|
-
return current + (addSpace ? (0, utils_tags_1.thinSpace)(options.thinSpaceWidth) : '') + (addWbr ? utils_tags_1.wbr : '');
|
|
28
|
+
const addWbr = options.useWordBreak && shouldAddWbr(current, next);
|
|
29
|
+
const addSpace = options.addThinSpaces && shouldAddThinSpace(current, next);
|
|
30
|
+
return current + (addSpace ? (0, utils_tags_1.thinSpace)(options.thinSpaceWidth, options.classNamePrefix) : '') + (addWbr ? utils_tags_1.wbr : '');
|
|
31
31
|
};
|
|
32
32
|
exports.addSeparatorsToSegment = addSeparatorsToSegment;
|
|
33
33
|
const shouldAddWbr = (current, next) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-separators.js","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAmC;AACnC,6DAA+D;AAC/D,6CAA6C;AAS7C,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"insert-separators.js","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAmC;AACnC,6DAA+D;AAC/D,6CAA6C;AAS7C,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAE,OAA2B,EAAU,EAAE;IAC5G,MAAM,eAAe,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAA;IACrD,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAE/C,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACtF,MAAM,OAAO,GAAG,OAAO,CAAA;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA;QAChD,OAAO,eAAe,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACzE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AAOD,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAY,EAAE;IACjD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IACtE,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;AACrE,CAAC,CAAA;AAwCQ,4CAAgB;AAhCzB,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,IAAI,GAAG,EAAE,EAAE,OAA2B,EAAU,EAAE;IACjG,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAA;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,IAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC3E,OAAO,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,sBAAS,EAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AACrH,CAAC,CAAA;AA0B0B,wDAAsB;AAlBjD,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,IAAY,EAAkB,EAAE;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACzD,MAAM,EAAE,GAAG,IAAI,mBAAW,CAAC,YAAY,CAAC,CAAA;IACxC,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,EAAE,CAAA;IACvC,OAAO,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,KAAK,CAAC,CAAA;AAC5D,CAAC,CAAA;AAakD,oCAAY;AAL/D,MAAM,kBAAkB,GAAG,CAAC,OAAe,EAAE,IAAY,EAAW,EAAE;IACpE,OAAO,kCAAa,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,8BAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACvG,CAAC,CAAA;AAGgE,gDAAkB;AADnF,kBAAe,sBAAsB,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -6,31 +6,40 @@
|
|
|
6
6
|
* @param nextNodeValue - 次のノードの値(存在する場合)。存在しない場合は空文字列を想定。
|
|
7
7
|
* @return 変換後の文字列。
|
|
8
8
|
*/
|
|
9
|
-
export type TransformFunction = (
|
|
10
|
-
currentNodeValue: string,
|
|
11
|
-
nextNodeValue: string,
|
|
12
|
-
options: TypeSetttingOptions
|
|
13
|
-
) => string
|
|
9
|
+
export type TransformFunction = (currentNodeValue: string, nextNodeValue: string, options: TypesettingOptions) => string
|
|
14
10
|
|
|
15
11
|
/**
|
|
16
12
|
* 組版処理に関する設定オプションの型定義です。
|
|
17
13
|
*/
|
|
18
|
-
export interface
|
|
14
|
+
export interface TypesettingOptions {
|
|
19
15
|
/**
|
|
20
16
|
* HTML内のテキストにWBRタグを自動的に追加するかどうかを指定します。
|
|
21
17
|
* WBRタグは、必要に応じて改行の挿入を許可するために使用されます。
|
|
22
18
|
*/
|
|
23
|
-
|
|
19
|
+
useWordBreak: boolean
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 英数を .typeset-latin でラップします。
|
|
23
|
+
* useWordBreak が true の場合にのみ有効です。
|
|
24
|
+
*/
|
|
25
|
+
wrapLatin: boolean
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* 分離禁則文字を .typeset-nobreaks でラップし、文字間を 0 に設定します。
|
|
29
|
+
* useWordBreak が true の場合にのみ有効です。
|
|
30
|
+
*/
|
|
31
|
+
noSpaceBetweenNoBreaks: boolean
|
|
24
32
|
|
|
25
33
|
/**
|
|
26
34
|
* HTML内のテキストにTHIN SPACEを自動的に追加するかどうかを指定します。
|
|
27
35
|
* THIN SPACEは、視覚的なスペースを微調整するために使用されます。
|
|
28
36
|
*/
|
|
29
|
-
|
|
37
|
+
addThinSpaces: boolean
|
|
30
38
|
|
|
31
39
|
/**
|
|
32
40
|
* THIN SPACEの幅を指定します。
|
|
33
41
|
* 例えば'20%'と指定すると、THIN SPACEは通常のスペースの20%の幅になります。
|
|
42
|
+
* addThinSpaces が true の場合のみ有効です。
|
|
34
43
|
*/
|
|
35
44
|
thinSpaceWidth: string
|
|
36
45
|
|
|
@@ -38,7 +47,12 @@ export interface TypeSetttingOptions {
|
|
|
38
47
|
* カーニングを適用するためのルールのリスト。
|
|
39
48
|
* 各ルールは、特定の文字ペア間に適用されるカーニング値を指定します。
|
|
40
49
|
*/
|
|
41
|
-
|
|
50
|
+
kerningRules: KerningRule[]
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* ライブラリで使用されるCSSクラス名のプレフィックスを指定します。
|
|
54
|
+
*/
|
|
55
|
+
classNamePrefix: string
|
|
42
56
|
}
|
|
43
57
|
|
|
44
58
|
/**
|
package/dist/utils-tags.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
declare const wbr = "<wbr>";
|
|
2
|
-
declare const thinSpace: (
|
|
3
|
-
declare const applyKerning: (char: string,
|
|
4
|
-
declare const
|
|
5
|
-
declare const
|
|
6
|
-
declare const applyNoBreakStyle: (segment: string) => string;
|
|
7
|
-
export { wbr, thinSpace, applyKerning,
|
|
2
|
+
declare const thinSpace: (thisSpaceWidth: string, classNamePrefix: string) => string;
|
|
3
|
+
declare const applyKerning: (char: string, kerningValue: number, classNamePrefix: string) => string;
|
|
4
|
+
declare const applyWrapperStyle: (text: string, classNamePrefix: string, useWordBreak: boolean) => string;
|
|
5
|
+
declare const applyLatinStyle: (segment: string, classNamePrefix: string) => string;
|
|
6
|
+
declare const applyNoBreakStyle: (segment: string, classNamePrefix: string) => string;
|
|
7
|
+
export { wbr, thinSpace, applyKerning, applyWrapperStyle, applyLatinStyle, applyNoBreakStyle };
|
|
8
8
|
//# sourceMappingURL=utils-tags.d.ts.map
|
package/dist/utils-tags.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-tags.d.ts","sourceRoot":"","sources":["../src/utils-tags.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils-tags.d.ts","sourceRoot":"","sources":["../src/utils-tags.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,GAAG,UAAU,CAAA;AAQnB,QAAA,MAAM,SAAS,mBAAoB,MAAM,mBAAmB,MAAM,KAAG,MAKpE,CAAA;AAUD,QAAA,MAAM,YAAY,SAAU,MAAM,gBAAgB,MAAM,mBAAmB,MAAM,KAAG,MAKnF,CAAA;AASD,QAAA,MAAM,iBAAiB,SAAU,MAAM,mBAAmB,MAAM,gBAAgB,OAAO,KAAG,MAIzF,CAAA;AAQD,QAAA,MAAM,eAAe,YAAa,MAAM,mBAAmB,MAAM,KAAG,MAGnE,CAAA;AAQD,QAAA,MAAM,iBAAiB,YAAa,MAAM,mBAAmB,MAAM,KAAG,MAGrE,CAAA;AAED,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAA"}
|
package/dist/utils-tags.js
CHANGED
|
@@ -1,34 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyNoBreakStyle = exports.
|
|
4
|
-
const
|
|
5
|
-
|
|
3
|
+
exports.applyNoBreakStyle = exports.applyLatinStyle = exports.applyWrapperStyle = exports.applyKerning = exports.thinSpace = exports.wbr = void 0;
|
|
4
|
+
const uiIgnoreSettings = {
|
|
5
|
+
preventSelectStyle: 'user-select:none;',
|
|
6
|
+
hiddenFromReader: 'aria-hidden="true"',
|
|
7
|
+
noIndex: 'data-nosnippet=""',
|
|
8
|
+
};
|
|
6
9
|
const wbr = '<wbr>';
|
|
7
10
|
exports.wbr = wbr;
|
|
8
|
-
const thinSpace = (
|
|
11
|
+
const thinSpace = (thisSpaceWidth, classNamePrefix) => {
|
|
9
12
|
const THIN_SPACE = String.fromCharCode(0x2009);
|
|
10
|
-
const
|
|
11
|
-
|
|
13
|
+
const className = classNamePrefix + '-thin-space';
|
|
14
|
+
const style = `font-size: ${thisSpaceWidth}; ${uiIgnoreSettings.preventSelectStyle}`;
|
|
15
|
+
return `<span class="${className}" style="${style}" ${uiIgnoreSettings.hiddenFromReader} ${uiIgnoreSettings.noIndex}>${THIN_SPACE}</span>`;
|
|
12
16
|
};
|
|
13
17
|
exports.thinSpace = thinSpace;
|
|
14
|
-
const applyKerning = (char,
|
|
15
|
-
const emValue =
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
+
const applyKerning = (char, kerningValue, classNamePrefix) => {
|
|
19
|
+
const emValue = kerningValue / 1000 / 2 + 'em';
|
|
20
|
+
const className = classNamePrefix + '-kerning';
|
|
21
|
+
const style = `margin: ${emValue}; ${uiIgnoreSettings.preventSelectStyle}`;
|
|
22
|
+
return `${char}<span class="${className}" style="${style}" ${uiIgnoreSettings.hiddenFromReader} ${uiIgnoreSettings.noIndex}></span>`;
|
|
18
23
|
};
|
|
19
24
|
exports.applyKerning = applyKerning;
|
|
20
|
-
const
|
|
21
|
-
|
|
25
|
+
const applyWrapperStyle = (text, classNamePrefix, useWordBreak) => {
|
|
26
|
+
const style = useWordBreak ? 'word-break: keep-all; overflow-wrap: anywhere;' : '';
|
|
27
|
+
return `<span class="${classNamePrefix}" style="${style}">${text}</span>`;
|
|
22
28
|
};
|
|
23
|
-
exports.
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
return `<span class="${
|
|
29
|
+
exports.applyWrapperStyle = applyWrapperStyle;
|
|
30
|
+
const applyLatinStyle = (segment, classNamePrefix) => {
|
|
31
|
+
const className = classNamePrefix + '-latin';
|
|
32
|
+
return `<span class="${className}">${segment}</span>`;
|
|
27
33
|
};
|
|
28
|
-
exports.
|
|
29
|
-
const applyNoBreakStyle = (segment) => {
|
|
30
|
-
const
|
|
31
|
-
return `<span class="${
|
|
34
|
+
exports.applyLatinStyle = applyLatinStyle;
|
|
35
|
+
const applyNoBreakStyle = (segment, classNamePrefix) => {
|
|
36
|
+
const className = classNamePrefix + '-no-breaks';
|
|
37
|
+
return `<span class="${className}" style="letter-spacing: 0">${segment}</span>`;
|
|
32
38
|
};
|
|
33
39
|
exports.applyNoBreakStyle = applyNoBreakStyle;
|
|
34
40
|
//# sourceMappingURL=utils-tags.js.map
|
package/dist/utils-tags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-tags.js","sourceRoot":"","sources":["../src/utils-tags.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils-tags.js","sourceRoot":"","sources":["../src/utils-tags.ts"],"names":[],"mappings":";;;AAMA,MAAM,gBAAgB,GAAG;IACvB,kBAAkB,EAAE,mBAAmB;IACvC,gBAAgB,EAAE,oBAAoB;IACtC,OAAO,EAAE,mBAAmB;CAC7B,CAAA;AAKD,MAAM,GAAG,GAAG,OAAO,CAAA;AAiEV,kBAAG;AAzDZ,MAAM,SAAS,GAAG,CAAC,cAAsB,EAAE,eAAuB,EAAU,EAAE;IAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAG,eAAe,GAAG,aAAa,CAAA;IACjD,MAAM,KAAK,GAAG,cAAc,cAAc,KAAK,gBAAgB,CAAC,kBAAkB,EAAE,CAAA;IACpF,OAAO,gBAAgB,SAAS,YAAY,KAAK,KAAK,gBAAgB,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,IAAI,UAAU,SAAS,CAAA;AAC5I,CAAC,CAAA;AAoDa,8BAAS;AA1CvB,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,YAAoB,EAAE,eAAuB,EAAU,EAAE;IAC3F,MAAM,OAAO,GAAG,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAA;IAC9C,MAAM,SAAS,GAAG,eAAe,GAAG,UAAU,CAAA;IAC9C,MAAM,KAAK,GAAG,WAAW,OAAO,KAAK,gBAAgB,CAAC,kBAAkB,EAAE,CAAA;IAC1E,OAAO,GAAG,IAAI,gBAAgB,SAAS,YAAY,KAAK,KAAK,gBAAgB,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,UAAU,CAAA;AACtI,CAAC,CAAA;AAqCwB,oCAAY;AA5BrC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,eAAuB,EAAE,YAAqB,EAAU,EAAE;IAEjG,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,EAAE,CAAA;IAClF,OAAO,gBAAgB,eAAe,YAAY,KAAK,KAAK,IAAI,SAAS,CAAA;AAC3E,CAAC,CAAA;AAwBsC,8CAAiB;AAhBxD,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,eAAuB,EAAU,EAAE;IAC3E,MAAM,SAAS,GAAG,eAAe,GAAG,QAAQ,CAAA;IAC5C,OAAO,gBAAgB,SAAS,KAAK,OAAO,SAAS,CAAA;AACvD,CAAC,CAAA;AAayD,0CAAe;AALzE,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,eAAuB,EAAU,EAAE;IAC7E,MAAM,SAAS,GAAG,eAAe,GAAG,YAAY,CAAA;IAChD,OAAO,gBAAgB,SAAS,+BAA+B,OAAO,SAAS,CAAA;AACjF,CAAC,CAAA;AAE0E,8CAAiB"}
|
package/package.json
CHANGED