palt-typesetting 0.6.0 → 0.7.1
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 +156 -75
- package/bundle/typesetter.min.css +1 -1
- package/bundle/typesetter.min.js +1 -1
- package/dist/apply-style.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/insert-separators.d.ts.map +1 -1
- package/dist/insert-separators.js +2 -1
- package/dist/typesetter.css +7 -7
- package/dist/util-tags.d.ts +1 -1
- package/dist/util-tags.d.ts.map +1 -1
- package/dist/util-tags.js +2 -2
- package/package.json +2 -2
- package/types/index.d.ts +12 -12
package/README.md
CHANGED
|
@@ -13,10 +13,14 @@ Palt Typesetting は、美しいテキスト表示を実現するための JavaS
|
|
|
13
13
|
- [Interactive Demo](https://palt.typesetting.jp)
|
|
14
14
|
- [Try on CodePen](https://codepen.io/yamatoiizuka-the-animator/pen/PoLGrZe)
|
|
15
15
|
|
|
16
|
+
---
|
|
17
|
+
|
|
16
18
|
## Getting Started
|
|
17
19
|
|
|
18
20
|
### Install from NPM
|
|
19
21
|
|
|
22
|
+
npm でパッケージをインストールする場合
|
|
23
|
+
|
|
20
24
|
```shell
|
|
21
25
|
npm install palt-typesetting
|
|
22
26
|
```
|
|
@@ -32,11 +36,20 @@ const typesetter = new Typesetter()
|
|
|
32
36
|
typesetter.renderToSelector('.my-class')
|
|
33
37
|
```
|
|
34
38
|
|
|
35
|
-
### Use
|
|
39
|
+
### Use from CDN
|
|
40
|
+
|
|
41
|
+
WordPress や jQuery などの環境で使用する場合
|
|
36
42
|
|
|
37
43
|
```html
|
|
38
|
-
<
|
|
39
|
-
|
|
44
|
+
<head>
|
|
45
|
+
<!-- head タグ内でスタイルの読み込み -->
|
|
46
|
+
<link rel="stylesheet" type="text/css" href="https://unpkg.com/palt-typesetting@0.7.1/bundle/typesetter.min.css" />
|
|
47
|
+
</head>
|
|
48
|
+
|
|
49
|
+
<body>
|
|
50
|
+
<!-- body 閉じタグの前でスクリプトの読み込み -->
|
|
51
|
+
<script src="https://unpkg.com/palt-typesetting@0.7.1/bundle/typesetter.min.js"></script>
|
|
52
|
+
</body>
|
|
40
53
|
```
|
|
41
54
|
|
|
42
55
|
```html
|
|
@@ -49,13 +62,15 @@ typesetter.renderToSelector('.my-class')
|
|
|
49
62
|
</script>
|
|
50
63
|
```
|
|
51
64
|
|
|
52
|
-
### Apply CSS
|
|
65
|
+
### Apply Custom CSS
|
|
66
|
+
|
|
67
|
+
生成された組版用 HTML にカスタム CSS を適用
|
|
53
68
|
|
|
54
69
|
```css
|
|
55
|
-
|
|
70
|
+
/**
|
|
56
71
|
* 共通のスタイリング(例)
|
|
57
72
|
*/
|
|
58
|
-
.
|
|
73
|
+
.typesetting-wrapper {
|
|
59
74
|
/* プロポーショナルメトリクス(ツメ組み)の設定 */
|
|
60
75
|
font-feature-settings: 'palt';
|
|
61
76
|
|
|
@@ -65,27 +80,27 @@ typesetter.renderToSelector('.my-class')
|
|
|
65
80
|
/* 文字間 */
|
|
66
81
|
letter-spacing: 0.1em;
|
|
67
82
|
|
|
68
|
-
|
|
83
|
+
/**
|
|
69
84
|
* Safari のフォントレンダリング対策。
|
|
70
|
-
* 英数(.
|
|
85
|
+
* 英数(.typesetting-latin)で -webkit-text-stroke を使う場合は必須。
|
|
71
86
|
* text-stroke-weight > 0, text-stroke-color: transparent
|
|
72
87
|
*/
|
|
73
88
|
-webkit-text-stroke: 0.01em transparent;
|
|
74
89
|
}
|
|
75
90
|
|
|
76
|
-
|
|
91
|
+
/**
|
|
77
92
|
* 英数のみのスタイリング(例)
|
|
78
93
|
*/
|
|
79
|
-
.
|
|
94
|
+
.typesetting-latin {
|
|
80
95
|
/* フォントの拡大・縮小 */
|
|
81
96
|
font-size: 105%;
|
|
82
97
|
|
|
83
98
|
/* ベースラインの調整 */
|
|
84
99
|
vertical-align: 0.02em;
|
|
85
100
|
|
|
86
|
-
|
|
87
|
-
* 行間の調整。親要素 .
|
|
88
|
-
* [.
|
|
101
|
+
/**
|
|
102
|
+
* 行間の調整。親要素 .typesetting-wrapper の行間と視覚的に合わせます。
|
|
103
|
+
* [.typesetting-wrapper の line-height] ÷ [フォントの拡大率] - [ベースラインの調整値の絶対値] × 2
|
|
89
104
|
*/
|
|
90
105
|
line-height: calc(1.8 / 1.05 - 0.02 * 2);
|
|
91
106
|
|
|
@@ -97,56 +112,28 @@ typesetter.renderToSelector('.my-class')
|
|
|
97
112
|
}
|
|
98
113
|
```
|
|
99
114
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
### Usage
|
|
103
|
-
|
|
104
|
-
```javascript
|
|
105
|
-
// Typesetter のインスタンスを作成
|
|
106
|
-
const typesetter = new Typesetter()
|
|
107
|
-
|
|
108
|
-
// セレクターにマッチする要素に対して組版を適用
|
|
109
|
-
typesetter.renderToSelector('div')
|
|
110
|
-
typesetter.renderToSelector('.my-class')
|
|
111
|
-
typesetter.renderToSelector('#my-id')
|
|
112
|
-
|
|
113
|
-
// HTML 要素に組版を適用
|
|
114
|
-
const elements = document.querySelectorAll('.my-class')
|
|
115
|
-
typesetter.renderToElements(elements)
|
|
116
|
-
|
|
117
|
-
// 組版を適用した HTML の取得
|
|
118
|
-
const srcHtml = '「日本語」とEnglish'
|
|
119
|
-
console.log(typesetter.render(srcHtml))
|
|
120
|
-
// <span class="typeset" /* 中略 */>「日本語」<span class="typeset-thin-space" style="font-size: 100%;" /* 中略 */> </span><wbr>と<span class="typeset-thin-space" style="font-size: 100%;" /* 中略 */> </span><wbr><span class="typeset-latin">English</span></span>
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### Constructor
|
|
124
|
-
|
|
125
|
-
| コンストラクタ | 説明 | 引数 |
|
|
126
|
-
| ---------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------- |
|
|
127
|
-
| `Typesetter(options?)` | Typesetter インスタンスを作成します。<br>オプションを指定することでカスタムの組版設定を適用できます。 | `options`: オプション(任意)。 |
|
|
128
|
-
|
|
129
|
-
### Methods
|
|
115
|
+
---
|
|
130
116
|
|
|
131
|
-
|
|
132
|
-
| ---------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------- |
|
|
133
|
-
| `render(srcHtml)` | スタイルを適用した HTML 文字列を返します。 | `srcHtml`: 処理する HTML 文字列 | `string`: スタイルを適用した HTML 文字列 |
|
|
134
|
-
| `renderToElements(elements)` | 指定された Element または Element の配列にスタイルを適用します。 | `elements`: スタイルを適用する Element または Element の配列 | `void` |
|
|
135
|
-
| `renderToSelector(selector)` | 指定された CSS セレクタに一致するすべての要素にスタイルを適用します。 | `selector`: スタイルを適用する要素を選択する CSS セレクタ | `void` |
|
|
117
|
+
## Typesetter Class
|
|
136
118
|
|
|
137
|
-
|
|
119
|
+
Palt Typesetting では、Typesetter クラスを使用して HTML 文字列に組版を適用します。
|
|
120
|
+
ライブラリの機能はオプションを通じてカスタマイズできます。
|
|
138
121
|
|
|
139
|
-
###
|
|
122
|
+
### サンプルコード
|
|
140
123
|
|
|
141
124
|
```javascript
|
|
125
|
+
/**
|
|
126
|
+
* options: TypesettingOptions
|
|
127
|
+
* オプションの設定
|
|
128
|
+
*/
|
|
142
129
|
const options = {
|
|
143
130
|
// 単語や助詞など、単語区切りでの改行を行います。
|
|
144
131
|
useWordBreak: true,
|
|
145
132
|
|
|
146
|
-
// 英数を `.
|
|
133
|
+
// 英数を `.typesetting-latin` でラップします。
|
|
147
134
|
wrapLatin: true,
|
|
148
135
|
|
|
149
|
-
// 罫線などの分離禁則文字を `.
|
|
136
|
+
// 罫線などの分離禁則文字を `.typesetting-no-breaks` でラップし、文字間を 0 に設定します。
|
|
150
137
|
noSpaceBetweenNoBreaks: true,
|
|
151
138
|
|
|
152
139
|
// 四分アキスペースを自動で挿入します。
|
|
@@ -168,51 +155,139 @@ const options = {
|
|
|
168
155
|
],
|
|
169
156
|
}
|
|
170
157
|
|
|
171
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Typesetter(options?: TypesettingOptions)
|
|
160
|
+
* インスタンスの作成
|
|
161
|
+
*/
|
|
162
|
+
const typesetter = new Typesetter(options)
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* renderToSelector(selector: string): void
|
|
166
|
+
* セレクターにマッチする要素に対して組版を適用
|
|
167
|
+
*/
|
|
168
|
+
typesetter.renderToSelector('div')
|
|
172
169
|
typesetter.renderToSelector('.my-class')
|
|
170
|
+
typesetter.renderToSelector('#my-id')
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* renderToElements(elements: string): void
|
|
174
|
+
* HTML 文字列に組版を適用
|
|
175
|
+
*/
|
|
176
|
+
const elements = document.querySelectorAll('.my-class')
|
|
177
|
+
typesetter.renderToElements(elements)
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* render(srcHtml: string): string
|
|
181
|
+
* 組版を適用した HTML 文字列の取得
|
|
182
|
+
*/
|
|
183
|
+
const srcHtml = '「日本語」とEnglish'
|
|
184
|
+
console.log('output: ' + typesetter.render(srcHtml))
|
|
185
|
+
// output: <span class="typeset typesetting-wrapper typesetting-word-break">「日本語」<span class="typesetting-thin-space" style="letter-spacing: 0.2em;" data-content=" "></span>と<span class="typesetting-thin-space" style="letter-spacing: 0.2em;" data-content=" "></span><span class="typesetting-latin">English </span></span>
|
|
173
186
|
```
|
|
174
187
|
|
|
175
|
-
###
|
|
188
|
+
### コンストラクタ
|
|
189
|
+
|
|
190
|
+
| コンストラクタ | 説明 | 引数の型 |
|
|
191
|
+
| ---------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------ |
|
|
192
|
+
| `Typesetter(options?)` | Typesetter インスタンスを作成します。<br>オプションを指定することでカスタムの組版設定を適用できます。 | `options?: TypesettingOptions` |
|
|
193
|
+
|
|
194
|
+
### メソッド
|
|
195
|
+
|
|
196
|
+
| メソッド名 | 説明 | 引数の型 | 戻り値の型 |
|
|
197
|
+
| ---------------------------- | --------------------------------------------------------------------- | ---------------------- | ---------- |
|
|
198
|
+
| `render(srcHtml)` | スタイルを適用した HTML 文字列を返します。 | `string` | `string` |
|
|
199
|
+
| `renderToElements(elements)` | 指定された Element または Element の配列にスタイルを適用します。 | `Element \| Element[]` | `void` |
|
|
200
|
+
| `renderToSelector(selector)` | 指定された CSS セレクタに一致するすべての要素にスタイルを適用します。 | `string` | `void` |
|
|
201
|
+
|
|
202
|
+
### オプション
|
|
203
|
+
|
|
204
|
+
| オプション名 | 説明 | オプションの型 | デフォルト値 |
|
|
205
|
+
| ------------------------ | ------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------ |
|
|
206
|
+
| `useWordBreak` | 単語や助詞など、単語区切りでの改行を行います。 | `boolean` | `true` |
|
|
207
|
+
| `wrapLatin` | 英数を `span.typesetting-latin` でラップします。 | `boolean` | `true` |
|
|
208
|
+
| `noSpaceBetweenNoBreaks` | 罫線などの分離禁則文字を `span.typesetting-no-breaks` でラップし、文字間を 0 に設定します。 | `boolean` | `true` |
|
|
209
|
+
| `insertThinSpaces` | 四分アキスペースを自動で挿入します。 | `boolean` | `true` |
|
|
210
|
+
| `thinSpaceWidth` | 四分アキスペースの幅を設定します。 | `string` | `'0.2em' ` |
|
|
211
|
+
| `kerningRules` | 特定の文字間のカーニングルールを設定します。 | `{between: [string, string], value: string \| number}[]` | `[]` |
|
|
212
|
+
|
|
213
|
+
### 生成される CSS クラス
|
|
214
|
+
|
|
215
|
+
| CSS クラス名 | 説明 |
|
|
216
|
+
| ------------------------- | ----------------------------------------------------------------------------------------------------------- |
|
|
217
|
+
| `.typesetting-wrapper` | HTML 文字列中のテキストコンテンツをラップします。<br>オプションの指定に関わらず、常に生成されます。 |
|
|
218
|
+
| `.typesetting-word-break` | HTML 文字列中のテキストコンテンツをラップします。<br>`useWordBreak: true` のときに生成されます。 |
|
|
219
|
+
| `.typesetting-latin` | テキストコンテンツ中の英数をラップします。<br>`wrapLatin: true` のときに生成されます。 |
|
|
220
|
+
| `.typesetting-no-breaks` | テキストコンテンツ中の分離禁則文字をラップします。<br>`noSpaceBetweenNoBreaks: true` のときに生成されます。 |
|
|
221
|
+
| `.typesetting-thin-space` | 挿入される四分アキスペースエレメントの CSS クラスです。<br>`insertThinSpaces: true` のときに生成されます。 |
|
|
222
|
+
| `.typesetting-kerning` | 挿入されるカーニングエレメントの CSS クラスです。<br>有効な `kerningRules` が存在するときに生成されます。 |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## for Typescript
|
|
227
|
+
|
|
228
|
+
TypeScript の型定義を提供しています。完全な型定義は[こちら](https://github.com/yamatoiizuka/palt-typesetting/blob/main/types/index.d.ts)をご参照ください。
|
|
229
|
+
|
|
230
|
+
### サンプルコード
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
import Typesetter from 'palt-typesetting'
|
|
234
|
+
import type { TypesettingOptions, KerningRule } from 'palt-typesetting/types'
|
|
235
|
+
import 'palt-typesetting/dist/typesetter.css'
|
|
236
|
+
|
|
237
|
+
const kerning: KerningRule[] = [
|
|
238
|
+
{
|
|
239
|
+
between: ['し', 'ま'],
|
|
240
|
+
value: '60',
|
|
241
|
+
},
|
|
242
|
+
]
|
|
243
|
+
|
|
244
|
+
const options: TypesettingOptions = {
|
|
245
|
+
thinSpaceWidth: '0.25em',
|
|
246
|
+
kerningRules: kerning,
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const typeset = new Typesetter(options)
|
|
250
|
+
typesetter.renderToSelector('.my-class')
|
|
251
|
+
```
|
|
176
252
|
|
|
177
|
-
|
|
178
|
-
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------- | ------------ |
|
|
179
|
-
| `useWordBreak` | 単語や助詞など、単語区切りでの改行を行います。 | `boolean` | `true` |
|
|
180
|
-
| `wrapLatin` | 英数を `span.typeset-latin` でラップします。<br>`useWordBreak` が `true` の場合にのみ有効です。 | `boolean` | `true` |
|
|
181
|
-
| `noSpaceBetweenNoBreaks` | 罫線などの分離禁則文字を `span.typeset-no-breaks` でラップし、文字間を 0 に設定します。<br>`useWordBreak` が `true` の場合にのみ有効です。 | `boolean` | `true` |
|
|
182
|
-
| `insertThinSpaces` | 四分アキスペースを自動で挿入します。 | `boolean` | `true` |
|
|
183
|
-
| `thinSpaceWidth` | 四分アキスペースの幅を設定します。<br>`insertThinSpaces` が `true` の場合にのみ有効です。 | `string` | `'0.2em' ` |
|
|
184
|
-
| `kerningRules` | 特定の文字間のカーニングルールを設定します。 | `{between: [string, string], value: string \| number}[]` | `[]` |
|
|
253
|
+
---
|
|
185
254
|
|
|
186
255
|
## for Frameworks
|
|
187
256
|
|
|
257
|
+
モダンな JavaScript フレームワーク用のサンプル集です。
|
|
258
|
+
|
|
188
259
|
### Astro.js
|
|
189
260
|
|
|
190
|
-
|
|
261
|
+
Typesetting コンポーネントの作成
|
|
191
262
|
|
|
192
263
|
`components/Typesetting.astro`
|
|
193
264
|
|
|
194
265
|
```astro
|
|
195
266
|
---
|
|
196
|
-
import Typesetter from 'palt-typesetting'
|
|
197
|
-
import 'palt-typesetting/dist/typesetter.css'
|
|
267
|
+
import Typesetter from 'palt-typesetting'
|
|
268
|
+
import 'palt-typesetting/dist/typesetter.css'
|
|
269
|
+
|
|
270
|
+
const { src } = Astro.props
|
|
271
|
+
const slot = await Astro.slots.render('default')
|
|
272
|
+
const content = src || slot || ''
|
|
198
273
|
|
|
199
|
-
const srcHtml = await Astro.slots.render('default');
|
|
200
274
|
const typesetter = new Typesetter();
|
|
201
275
|
---
|
|
202
276
|
|
|
203
|
-
|
|
277
|
+
<!-- content が空でなければ組版を適用 -->
|
|
278
|
+
{content && <Fragment set:html={typesetter.render(content)} />}
|
|
204
279
|
|
|
205
|
-
<style>
|
|
280
|
+
<style is:global>
|
|
206
281
|
/* 合成フォントのイメージでスタイルを設定 */
|
|
207
282
|
|
|
208
|
-
.
|
|
283
|
+
.typesetting-wrapper {
|
|
209
284
|
font-feature-settings: 'palt';
|
|
210
285
|
line-height: 1.8;
|
|
211
286
|
letter-spacing: 0.1em;
|
|
212
287
|
/* ...その他のスタイル */
|
|
213
288
|
}
|
|
214
289
|
|
|
215
|
-
.
|
|
290
|
+
.typesetting-latin {
|
|
216
291
|
font-size: 105%;
|
|
217
292
|
letter-spacing: 0.05em;
|
|
218
293
|
/* ...その他のスタイル */
|
|
@@ -220,20 +295,24 @@ const typesetter = new Typesetter();
|
|
|
220
295
|
</style>
|
|
221
296
|
```
|
|
222
297
|
|
|
223
|
-
|
|
298
|
+
Typesetting コンポーネントの読み込み
|
|
224
299
|
|
|
225
300
|
`pages/index.astro`
|
|
226
301
|
|
|
227
302
|
```astro
|
|
228
303
|
---
|
|
229
|
-
import
|
|
304
|
+
import Typeset from '../components/Typesetting.astro'
|
|
230
305
|
---
|
|
231
306
|
|
|
232
|
-
<
|
|
307
|
+
<div>
|
|
308
|
+
<!-- props を使った書き方 -->
|
|
309
|
+
<Typesetting src="「日本語」とEnglish、晴れ・28度。" />
|
|
310
|
+
|
|
311
|
+
<!-- slot を使った書き方 -->
|
|
233
312
|
<Typesetting>
|
|
234
|
-
|
|
313
|
+
<a href="../">トップページ</a>
|
|
235
314
|
</Typesetting>
|
|
236
|
-
</
|
|
315
|
+
</div>
|
|
237
316
|
|
|
238
317
|
<style>
|
|
239
318
|
p {
|
|
@@ -242,6 +321,8 @@ import Typesetting from '../components/Typesetting.astro'
|
|
|
242
321
|
</style>
|
|
243
322
|
```
|
|
244
323
|
|
|
324
|
+
---
|
|
325
|
+
|
|
245
326
|
## Notes
|
|
246
327
|
|
|
247
328
|
### 環境要件
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@font-face{font-family:ling-one;src:url('data:font/woff2;base64,AAEAAAAKAIAAAwAgT1MvMhG03xcAAAEoAAAAYGNtYXAADABzAAABkAAAADRnbHlmJAM2GwAAAcwAAAAYaGVhZCLbfFwAAACsAAAANmhoZWEnEvkrAAAA5AAAACRobXR4AAEAAAAAAYgAAAAIbG9jYQAMABgAAAHEAAAACG1heHAAcQAiAAABCAAAACBuYW1lBbsdPAAAAeQAAACKcG9zdHQrY6cAAAJwAAAALQABAAAAAQAAsWqD8F8PPPUAAycQAAAAAOHcugAAAAAA4edeTwAAAAAAAQABAAAABwACAAAAAAAAAAEAACcQ+DAAAAB9AAAAfAABAAEAAAAAAAAAAAAAAAAAAAABAAEAAAADAAMAAQAAAAAAAQACAB4ABgAAAGQAAAAAAAAAAwB9AZAABQAIGWQXcAAAAu4ZZBdwAAANrAAyC7gAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3N6bQBAACAAIB9A+DAH0CcQB9AAAAABAAAAABOIG1gAAAAgAAAAAQAAAAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAIAAAAAQABAABAAAAIP//AAAAIP///+EAAQAAAAAAAAAMAAwADAABAAAAAAABAAEAAgAANRcjAQEBAQAAAAAAAAYATgADAAEECQABAAgAAAADAAEECQACAAIACAADAAEECQADAB4ACgADAAEECQAEAAwAKAADAAEECQAFAAgANAADAAEECQAGAAwAKABMAGkAbgBnADEAMQAuADAAOwBzAHMAegBtADsATABpAG4AZwAtADEATABpAG4AZwAtADEAdgAxAC4AMAAAAAIAAAAAAAD/tQAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMBAgRuYnNwAAAA') format('woff2')}.
|
|
1
|
+
@font-face{font-family:ling-one;src:url('data:font/woff2;base64,AAEAAAAKAIAAAwAgT1MvMhG03xcAAAEoAAAAYGNtYXAADABzAAABkAAAADRnbHlmJAM2GwAAAcwAAAAYaGVhZCLbfFwAAACsAAAANmhoZWEnEvkrAAAA5AAAACRobXR4AAEAAAAAAYgAAAAIbG9jYQAMABgAAAHEAAAACG1heHAAcQAiAAABCAAAACBuYW1lBbsdPAAAAeQAAACKcG9zdHQrY6cAAAJwAAAALQABAAAAAQAAsWqD8F8PPPUAAycQAAAAAOHcugAAAAAA4edeTwAAAAAAAQABAAAABwACAAAAAAAAAAEAACcQ+DAAAAB9AAAAfAABAAEAAAAAAAAAAAAAAAAAAAABAAEAAAADAAMAAQAAAAAAAQACAB4ABgAAAGQAAAAAAAAAAwB9AZAABQAIGWQXcAAAAu4ZZBdwAAANrAAyC7gAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3N6bQBAACAAIB9A+DAH0CcQB9AAAAABAAAAABOIG1gAAAAgAAAAAQAAAAAAAAAAAAIAAAADAAAAFAADAAEAAAAUAAQAIAAAAAQABAABAAAAIP//AAAAIP///+EAAQAAAAAAAAAMAAwADAABAAAAAAABAAEAAgAANRcjAQEBAQAAAAAAAAYATgADAAEECQABAAgAAAADAAEECQACAAIACAADAAEECQADAB4ACgADAAEECQAEAAwAKAADAAEECQAFAAgANAADAAEECQAGAAwAKABMAGkAbgBnADEAMQAuADAAOwBzAHMAegBtADsATABpAG4AZwAtADEATABpAG4AZwAtADEAdgAxAC4AMAAAAAIAAAAAAAD/tQAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMBAgRuYnNwAAAA') format('woff2')}.typesetting-wrapper wbr{visibility:hidden}.typesetting-word-break{word-break:keep-all;overflow-wrap:anywhere}.typesetting-kerning,.typesetting-thin-space{letter-spacing:0;user-select:none}.typesetting-kerning[data-content]::after,.typesetting-thin-space[data-content]::after{content:attr(data-content);font-family:ling-one;line-height:0}.typesetting-no-breaks{letter-spacing:0}
|
package/bundle/typesetter.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typesetter=e():t.Typesetter=e()}(this,(()=>(()=>{var t={954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),u="0".charCodeAt(0),o="a".charCodeAt(0),a="A".charCodeAt(0),i="-".charCodeAt(0),s="_".charCodeAt(0);function c(t){var e=t.charCodeAt(0);return e===r||e===i?62:e===n||e===s?63:e<u?-1:e<u+10?e-u+26+26:e<a+26?e-a:e<o+26?e-o+26:void 0}t.toByteArray=function(t){var r,n,u,o,a,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.length;a="="===t.charAt(s-2)?2:"="===t.charAt(s-1)?1:0,i=new e(3*t.length/4-a),u=a>0?t.length-4:t.length;var f=0;function l(t){i[f++]=t}for(r=0,n=0;r<u;r+=4,n+=3)l((16711680&(o=c(t.charAt(r))<<18|c(t.charAt(r+1))<<12|c(t.charAt(r+2))<<6|c(t.charAt(r+3))))>>16),l((65280&o)>>8),l(255&o);return 2===a?l(255&(o=c(t.charAt(r))<<2|c(t.charAt(r+1))>>4)):1===a&&(l((o=c(t.charAt(r))<<10|c(t.charAt(r+1))<<4|c(t.charAt(r+2))>>2)>>8&255),l(255&o)),i},t.fromByteArray=function(t){var e,r,n,u,o=t.length%3,a="";function i(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-o;e<n;e+=3)a+=i((u=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+i(u>>12&63)+i(u>>6&63)+i(63&u);switch(o){case 1:a+=i((r=t[t.length-1])>>2),a+=i(r<<4&63),a+="==";break;case 2:a+=i((r=(t[t.length-2]<<8)+t[t.length-1])>>10),a+=i(r>>4&63),a+=i(r<<2&63),a+="="}return a}}(e)},741:t=>{function e(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(t,r){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=r,this.destLen=0,this.ltree=new e,this.dtree=new e}var n=new e,u=new e,o=new Uint8Array(30),a=new Uint16Array(30),i=new Uint8Array(30),s=new Uint16Array(30),c=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),f=new e,l=new Uint8Array(320);function h(t,e,r,n){var u,o;for(u=0;u<r;++u)t[u]=0;for(u=0;u<30-r;++u)t[u+r]=u/r|0;for(o=n,u=0;u<30;++u)e[u]=o,o+=1<<t[u]}var d=new Uint16Array(16);function b(t,e,r,n){var u,o;for(u=0;u<16;++u)t.table[u]=0;for(u=0;u<n;++u)t.table[e[r+u]]++;for(t.table[0]=0,o=0,u=0;u<16;++u)d[u]=o,o+=t.table[u];for(u=0;u<n;++u)e[r+u]&&(t.trans[d[e[r+u]]++]=u)}function p(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=1&t.tag;return t.tag>>>=1,e}function v(t,e,r){if(!e)return r;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var n=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,n+r}function y(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var r=0,n=0,u=0,o=t.tag;do{n=2*n+(1&o),o>>>=1,++u,r+=e.table[u],n-=e.table[u]}while(n>=0);return t.tag=o,t.bitcount-=u,e.trans[r+n]}function D(t,e,r){var n,u,o,a,i,s;for(n=v(t,5,257),u=v(t,5,1),o=v(t,4,4),a=0;a<19;++a)l[a]=0;for(a=0;a<o;++a){var h=v(t,3,0);l[c[a]]=h}for(b(f,l,0,19),i=0;i<n+u;){var d=y(t,f);switch(d){case 16:var p=l[i-1];for(s=v(t,2,3);s;--s)l[i++]=p;break;case 17:for(s=v(t,3,3);s;--s)l[i++]=0;break;case 18:for(s=v(t,7,11);s;--s)l[i++]=0;break;default:l[i++]=d}}b(e,l,0,n),b(r,l,n,u)}function F(t,e,r){for(;;){var n,u,c,f,l=y(t,e);if(256===l)return 0;if(l<256)t.dest[t.destLen++]=l;else for(n=v(t,o[l-=257],a[l]),u=y(t,r),f=c=t.destLen-v(t,i[u],s[u]);f<c+n;++f)t.dest[t.destLen++]=t.dest[f]}}function g(t){for(var e,r;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if((e=256*(e=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return-3;for(t.sourceIndex+=4,r=e;r;--r)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,0}!function(t,e){var r;for(r=0;r<7;++r)t.table[r]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,r=0;r<24;++r)t.trans[r]=256+r;for(r=0;r<144;++r)t.trans[24+r]=r;for(r=0;r<8;++r)t.trans[168+r]=280+r;for(r=0;r<112;++r)t.trans[176+r]=144+r;for(r=0;r<5;++r)e.table[r]=0;for(e.table[5]=32,r=0;r<32;++r)e.trans[r]=r}(n,u),h(o,a,4,3),h(i,s,2,1),o[28]=0,a[28]=258,t.exports=function(t,e){var o,a,i=new r(t,e);do{switch(o=p(i),v(i,2,0)){case 0:a=g(i);break;case 1:a=F(i,n,u);break;case 2:D(i,i.ltree,i.dtree),a=F(i,i.ltree,i.dtree);break;default:a=-3}if(0!==a)throw new Error("Data error")}while(!o);return i.destLen<i.dest.length?"function"==typeof i.dest.slice?i.dest.slice(0,i.destLen):i.dest.subarray(0,i.destLen):i.dest}},667:(t,e,r)=>{const n=r(741),{swap32LE:u}=r(288);t.exports=class{constructor(t){const e="function"==typeof t.readUInt32BE&&"function"==typeof t.slice;if(e||t instanceof Uint8Array){let r;if(e)this.highStart=t.readUInt32LE(0),this.errorValue=t.readUInt32LE(4),r=t.readUInt32LE(8),t=t.slice(12);else{const e=new DataView(t.buffer);this.highStart=e.getUint32(0,!0),this.errorValue=e.getUint32(4,!0),r=e.getUint32(8,!0),t=t.subarray(12)}t=n(t,new Uint8Array(r)),t=n(t,new Uint8Array(r)),u(t),this.data=new Uint32Array(t.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=t)}get(t){let e;return t<0||t>1114111?this.errorValue:t<55296||t>56319&&t<=65535?(e=(this.data[t>>5]<<2)+(31&t),this.data[e]):t<=65535?(e=(this.data[2048+(t-55296>>5)]<<2)+(31&t),this.data[e]):t<this.highStart?(e=this.data[2080+(t>>11)],e=this.data[e+(t>>5&63)],e=(e<<2)+(31&t),this.data[e]):this.data[this.data.length-4]}}},288:t=>{const e=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],r=(t,e,r)=>{let n=t[e];t[e]=t[r],t[r]=n};t.exports={swap32LE:t=>{e&&(t=>{const e=t.length;for(let n=0;n<e;n+=4)r(t,n,n+3),r(t,n+1,n+2)})(t)}}}},e={};function r(n){var u=e[n];if(void 0!==u)return u.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};return(()=>{"use strict";r.d(n,{default:()=>Q});var t=window;function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function u(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}function o(t){var r=function(t,r){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var u=n.call(t,"string");if("object"!=e(u))return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:String(r)}var a,i=function(){function e(r,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.replaceNode=function(e,r){var n=t.document.createRange();n.selectNode(e);var u=n.createContextualFragment(r);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.removeChild(e))},this.transformFunctions=r,this.options=n}var r,n;return r=e,(n=[{key:"processHtmlWithFunctions",value:function(t){var e=this;return""===t?t:this.transformFunctions.reduce((function(t,r){return e.processHtml(t,r)}),t)}},{key:"processHtml",value:function(t,e){var r=this;if(""===t)return t;var n=s(t),u=c(n.body);return u.forEach((function(t,n){var o=u[n+1]||null,a=r.getTransformedHtml(t,o,e);r.replaceNode(t,a)})),n.body.innerHTML}},{key:"getTransformedHtml",value:function(t,e,r){return r(t.nodeValue||"",e&&e.nodeValue||"",this.options)}}])&&u(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),e}(),s=function(e){return(new t.DOMParser).parseFromString(e,"text/html")},c=function(e){for(var r=t.document.createTreeWalker(e,t.NodeFilter.SHOW_TEXT),n=r.nextNode(),u=[];n;)n.nodeValue&&""!==n.nodeValue.trim()&&u.push(n),n=r.nextNode();return u},f=i,l=r(667),h=r(954);const d=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]],b=new l(h.toByteArray("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")),p=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},v=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class y{constructor(t,e=!1){this.position=t,this.required=e}}a=class{nextCodePoint(){const t=this.string.charCodeAt(this.pos++),e=this.string.charCodeAt(this.pos);return 55296<=t&&t<=56319&&56320<=e&&e<=57343?(this.pos++,1024*(t-55296)+(e-56320)+65536):t}nextCharClass(){return p(b.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case 41:return!1;case 34:case 37:case 38:return this.curClass=34,!1;case 36:return this.curClass=36,!1}return null}getPairTableBreak(t){let e=!1;switch(d[this.curClass][this.nextClass]){case 0:e=!0;break;case 1:e=41===t;break;case 2:if(e=41===t,!e)return e=!1,e;break;case 3:if(41!==t)return e}return this.LB8a&&(e=!1),!this.LB21a||16!==this.curClass&&17!==this.curClass?this.LB21a=13===this.curClass:(e=!1,this.LB21a=!1),28===this.curClass?(this.LB30a++,2==this.LB30a&&28===this.nextClass&&(e=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,e}nextBreak(){if(null==this.curClass){let t=this.nextCharClass();this.curClass=v(t),this.nextClass=t,this.LB8a=31===t,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;const t=this.nextClass;if(this.nextClass=this.nextCharClass(),34===this.curClass||36===this.curClass&&37!==this.nextClass)return this.curClass=v(p(this.nextClass)),new y(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new y(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new y(this.string.length)):null}constructor(t){this.string=t,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};var D=/(?:[\t-\r -~\xA0-\xA5\xAA\xAC\xB1-\xB3\xB9\xBA\xBF-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2000-\u200A\u2018\u2019\u201C\u201D\u2028\u2029\u202F\u2030\u205F\u2070\u2071\u2074-\u208E\u2090-\u209C\u20AC\u20F0\u212A\u212B\u2132\u214E\u2160-\u2188\u2202\u2205\u220F\u2211\u2212\u221A\u221E\u222B\u2248\u2260\u2264\u2265\u2C60-\u2C7F\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA7FF\uA92E\uAB30-\uAB5A\uAB5C-\uAB64\uAB66-\uAB69\uFB00-\uFB06\uFEFF\uFF21-\uFF3A\uFF41-\uFF5A]|\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A])+/g,F=/(?:[\|\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3001-\u3003\u3005-\u3011\u3013-\u301F\u3021-\u302D\u3030-\u3035\u3037-\u303F\u3041-\u3096\u3099-\u30FF\u3190-\u319F\u31C0-\u31E3\u31F0-\u31FF\u3220-\u3247\u3280-\u32B0\u32C0-\u32CB\u32D0-\u3370\u337B-\u337F\u33E0-\u33FE\u3400-\u4DBF\u4E00-\u9FFF\uA700-\uA707\uF900-\uFA6D\uFA70-\uFAD9\uFE45\uFE46\uFF61-\uFF9F]|\uD81B[\uDFE2\uDFE3\uDFF0\uDFF1]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67]|\uD834[\uDF60-\uDF71]|\uD83C[\uDE00\uDE50\uDE51]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])+/,g=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,A=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,w=/・|:|;/,m=/、|,/,P=/。|./,B=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),C=/[\s\u00A0]/,x={isLatin:function(t){return D.test(t)},isJapanese:function(t){return F.test(t)},hasLanguageTransition:function(t,e){return x.isJapanese(t)!==x.isJapanese(e)},shouldAddThinSpace:function(t,e){return x.hasLanguageTransition(t,e)&&(r=e,!new RegExp("^[".concat(P.source).concat(m.source,"]")).test(r));var r}},O="typeset",S=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",u=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(u).concat(n,">").concat(t,"</span>")},L=function(t,e,r,n){var u="letter-spacing: ".concat(r,";"),o=' data-content="'.concat(n?" ":" ",'"');return S(t,e,u,o)},j=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},E=function(t,e){return!C.test(t)&&!C.test(e)&&(x.shouldAddThinSpace(t,e)||function(t,e){for(var r=new RegExp("(".concat(A.source,"|").concat(m.source,"|").concat(P.source,")")),n={spaceBefore:{regex:g,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:r,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:w,hasSpaceBefore:!0,hasSpaceAfter:!0}},u=0,o=Object.values(n);u<o.length;u++){var a=o[u],i=a.regex,s=a.hasSpaceBefore,c=a.hasSpaceAfter;if(s&&i.test(e)&&!i.test(t))return!0;if(c&&i.test(t)&&!i.test(e))return!0}return!1}(t,e))},X=function(t,e){var r=t.slice(-1)+e.slice(0,1),n=new a(r).nextBreak();return!!n&&1===n.position},H=function(t,e,r){var n=j(t),u=j(e);return n.reduce((function(t,e,n,o){return t+function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0;if(!e)return t;var n=r.insertThinSpaces&&E(t,e),u=X(t,e);return n?t+function(t,e){var r="".concat(O,"-thin-space");return L("",r,t,e)}(r.thinSpaceWidth,u):r.useWordBreak&&u?t+"<wbr>":t}(e,o[n+1]||u[0],r)}),"")};function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var W=function(t,e,r){return" "===t?t:(n=t,u=r.useWordBreak,o=O,a="".concat(O,"-word-break"),i=u?"".concat(o," ").concat(a):o,S(n,i));var n,u,o,a,i},z=function(t,e,r){return" "===t?t:r.wrapLatin&&x.isLatin(t)?t.replace(D,(function(t){return e=t,r="".concat(O,"-latin"),S(e,r);var e,r})):r.noSpaceBetweenNoBreaks&&(n=t,B.test(n))?t.replace(B,(function(t){return e=t,r="".concat(O,"-no-breaks"),S(e,r);var e,r})):t;var n},T=function(t,e,r){var n,u=function(t){if(Array.isArray(t))return k(t)}(n=t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return k(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?k(t,e):void 0}}(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();return u.map((function(t,n){var o=u[n+1]||e[0]||"",a=r.kerningRules.find((function(e){return e.between[0]===t&&e.between[1]===o}));if(a){var i="number"==typeof a.value?a.value:parseInt(a.value,10),s=!r.useWordBreak&&X(t,o);return t+function(t,e){if(0===t)return"";var r="".concat(O,"-kerning");if(t<0){var n="margin: ".concat(t/1e3/2+"em",";");return S("",r,n)}return L("",r,t/1e3+"em",e)}(i,s)}return t})).join("")};function U(t){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function V(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function N(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?V(Object(r),!0).forEach((function(e){var n,u,o;n=t,u=e,o=r[e],(u=Z(u))in n?Object.defineProperty(n,u,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[u]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function I(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Z(n.key),n)}}function Z(t){var e=function(t,e){if("object"!=U(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=U(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==U(e)?e:String(e)}function q(t,e,r){return e=K(e),function(t,e){if(e&&("object"===U(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,R()?Reflect.construct(e,r||[],K(t).constructor):e.apply(t,r))}function R(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(R=function(){return!!t})()}function K(t){return K=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},K(t)}function J(t,e){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},J(t,e)}var Q=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r);var e=void 0!==Intl.Segmenter;e||console.warn("Intl.Segmenter is not supported in this environment. \nTherefore, the options `useWordBreak` and `insertThinSpaces` will be ignored. \nFor more information about Intl.Segmenter, please visit:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter");var n=e?[W,H,z,T]:[z,T],u=r.validateOptions(t);return q(this,r,[n,u])}var n,u,o;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J(t,e)}(r,e),n=r,o=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(r.isValidKerningRule)),N(N({},r.getDefaultOptions()),t)}},{key:"isValidKerningRule",value:function(t){return 1===t.between[0].length&&1===t.between[1].length||(console.warn("Kerning rule between '".concat(t.between[0],"' and '").concat(t.between[1],"' must be single characters.")),!1)}}],(u=[{key:"render",value:function(t){return t?this.processHtmlWithFunctions(t):""}},{key:"renderToElements",value:function(t){var e=this;t&&(Array.isArray(t)||(t=[t]),t.forEach((function(t){var r=e.render(t.innerHTML);t.innerHTML=r})))}},{key:"renderToSelector",value:function(e){if(e){var r=t.document.querySelectorAll(e);this.renderToElements(Array.from(r))}}}])&&I(n.prototype,u),o&&I(n,o),Object.defineProperty(n,"prototype",{writable:!1}),r}(f)})(),n.default})()));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.Typesetter=e():t.Typesetter=e()}(this,(()=>(()=>{var t={954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),u="0".charCodeAt(0),o="a".charCodeAt(0),a="A".charCodeAt(0),i="-".charCodeAt(0),s="_".charCodeAt(0);function c(t){var e=t.charCodeAt(0);return e===r||e===i?62:e===n||e===s?63:e<u?-1:e<u+10?e-u+26+26:e<a+26?e-a:e<o+26?e-o+26:void 0}t.toByteArray=function(t){var r,n,u,o,a,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.length;a="="===t.charAt(s-2)?2:"="===t.charAt(s-1)?1:0,i=new e(3*t.length/4-a),u=a>0?t.length-4:t.length;var f=0;function l(t){i[f++]=t}for(r=0,n=0;r<u;r+=4,n+=3)l((16711680&(o=c(t.charAt(r))<<18|c(t.charAt(r+1))<<12|c(t.charAt(r+2))<<6|c(t.charAt(r+3))))>>16),l((65280&o)>>8),l(255&o);return 2===a?l(255&(o=c(t.charAt(r))<<2|c(t.charAt(r+1))>>4)):1===a&&(l((o=c(t.charAt(r))<<10|c(t.charAt(r+1))<<4|c(t.charAt(r+2))>>2)>>8&255),l(255&o)),i},t.fromByteArray=function(t){var e,r,n,u,o=t.length%3,a="";function i(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-o;e<n;e+=3)a+=i((u=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+i(u>>12&63)+i(u>>6&63)+i(63&u);switch(o){case 1:a+=i((r=t[t.length-1])>>2),a+=i(r<<4&63),a+="==";break;case 2:a+=i((r=(t[t.length-2]<<8)+t[t.length-1])>>10),a+=i(r>>4&63),a+=i(r<<2&63),a+="="}return a}}(e)},741:t=>{function e(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function r(t,r){this.source=t,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=r,this.destLen=0,this.ltree=new e,this.dtree=new e}var n=new e,u=new e,o=new Uint8Array(30),a=new Uint16Array(30),i=new Uint8Array(30),s=new Uint16Array(30),c=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),f=new e,l=new Uint8Array(320);function h(t,e,r,n){var u,o;for(u=0;u<r;++u)t[u]=0;for(u=0;u<30-r;++u)t[u+r]=u/r|0;for(o=n,u=0;u<30;++u)e[u]=o,o+=1<<t[u]}var d=new Uint16Array(16);function b(t,e,r,n){var u,o;for(u=0;u<16;++u)t.table[u]=0;for(u=0;u<n;++u)t.table[e[r+u]]++;for(t.table[0]=0,o=0,u=0;u<16;++u)d[u]=o,o+=t.table[u];for(u=0;u<n;++u)e[r+u]&&(t.trans[d[e[r+u]]++]=u)}function p(t){t.bitcount--||(t.tag=t.source[t.sourceIndex++],t.bitcount=7);var e=1&t.tag;return t.tag>>>=1,e}function v(t,e,r){if(!e)return r;for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var n=t.tag&65535>>>16-e;return t.tag>>>=e,t.bitcount-=e,n+r}function y(t,e){for(;t.bitcount<24;)t.tag|=t.source[t.sourceIndex++]<<t.bitcount,t.bitcount+=8;var r=0,n=0,u=0,o=t.tag;do{n=2*n+(1&o),o>>>=1,++u,r+=e.table[u],n-=e.table[u]}while(n>=0);return t.tag=o,t.bitcount-=u,e.trans[r+n]}function D(t,e,r){var n,u,o,a,i,s;for(n=v(t,5,257),u=v(t,5,1),o=v(t,4,4),a=0;a<19;++a)l[a]=0;for(a=0;a<o;++a){var h=v(t,3,0);l[c[a]]=h}for(b(f,l,0,19),i=0;i<n+u;){var d=y(t,f);switch(d){case 16:var p=l[i-1];for(s=v(t,2,3);s;--s)l[i++]=p;break;case 17:for(s=v(t,3,3);s;--s)l[i++]=0;break;case 18:for(s=v(t,7,11);s;--s)l[i++]=0;break;default:l[i++]=d}}b(e,l,0,n),b(r,l,n,u)}function F(t,e,r){for(;;){var n,u,c,f,l=y(t,e);if(256===l)return 0;if(l<256)t.dest[t.destLen++]=l;else for(n=v(t,o[l-=257],a[l]),u=y(t,r),f=c=t.destLen-v(t,i[u],s[u]);f<c+n;++f)t.dest[t.destLen++]=t.dest[f]}}function g(t){for(var e,r;t.bitcount>8;)t.sourceIndex--,t.bitcount-=8;if((e=256*(e=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return-3;for(t.sourceIndex+=4,r=e;r;--r)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,0}!function(t,e){var r;for(r=0;r<7;++r)t.table[r]=0;for(t.table[7]=24,t.table[8]=152,t.table[9]=112,r=0;r<24;++r)t.trans[r]=256+r;for(r=0;r<144;++r)t.trans[24+r]=r;for(r=0;r<8;++r)t.trans[168+r]=280+r;for(r=0;r<112;++r)t.trans[176+r]=144+r;for(r=0;r<5;++r)e.table[r]=0;for(e.table[5]=32,r=0;r<32;++r)e.trans[r]=r}(n,u),h(o,a,4,3),h(i,s,2,1),o[28]=0,a[28]=258,t.exports=function(t,e){var o,a,i=new r(t,e);do{switch(o=p(i),v(i,2,0)){case 0:a=g(i);break;case 1:a=F(i,n,u);break;case 2:D(i,i.ltree,i.dtree),a=F(i,i.ltree,i.dtree);break;default:a=-3}if(0!==a)throw new Error("Data error")}while(!o);return i.destLen<i.dest.length?"function"==typeof i.dest.slice?i.dest.slice(0,i.destLen):i.dest.subarray(0,i.destLen):i.dest}},667:(t,e,r)=>{const n=r(741),{swap32LE:u}=r(288);t.exports=class{constructor(t){const e="function"==typeof t.readUInt32BE&&"function"==typeof t.slice;if(e||t instanceof Uint8Array){let r;if(e)this.highStart=t.readUInt32LE(0),this.errorValue=t.readUInt32LE(4),r=t.readUInt32LE(8),t=t.slice(12);else{const e=new DataView(t.buffer);this.highStart=e.getUint32(0,!0),this.errorValue=e.getUint32(4,!0),r=e.getUint32(8,!0),t=t.subarray(12)}t=n(t,new Uint8Array(r)),t=n(t,new Uint8Array(r)),u(t),this.data=new Uint32Array(t.buffer)}else({data:this.data,highStart:this.highStart,errorValue:this.errorValue}=t)}get(t){let e;return t<0||t>1114111?this.errorValue:t<55296||t>56319&&t<=65535?(e=(this.data[t>>5]<<2)+(31&t),this.data[e]):t<=65535?(e=(this.data[2048+(t-55296>>5)]<<2)+(31&t),this.data[e]):t<this.highStart?(e=this.data[2080+(t>>11)],e=this.data[e+(t>>5&63)],e=(e<<2)+(31&t),this.data[e]):this.data[this.data.length-4]}}},288:t=>{const e=18===new Uint8Array(new Uint32Array([305419896]).buffer)[0],r=(t,e,r)=>{let n=t[e];t[e]=t[r],t[r]=n};t.exports={swap32LE:t=>{e&&(t=>{const e=t.length;for(let n=0;n<e;n+=4)r(t,n,n+3),r(t,n+1,n+2)})(t)}}}},e={};function r(n){var u=e[n];if(void 0!==u)return u.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};return(()=>{"use strict";r.d(n,{default:()=>Q});var t=window;function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function u(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}function o(t){var r=function(t,r){if("object"!=e(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var u=n.call(t,"string");if("object"!=e(u))return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==e(r)?r:String(r)}var a,i=function(){function e(r,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.replaceNode=function(e,r){var n=t.document.createRange();n.selectNode(e);var u=n.createContextualFragment(r);e.parentNode&&(e.parentNode.insertBefore(u,e),e.parentNode.removeChild(e))},this.transformFunctions=r,this.options=n}var r,n;return r=e,(n=[{key:"processHtmlWithFunctions",value:function(t){var e=this;return""===t?t:this.transformFunctions.reduce((function(t,r){return e.processHtml(t,r)}),t)}},{key:"processHtml",value:function(t,e){var r=this;if(""===t)return t;var n=s(t),u=c(n.body);return u.forEach((function(t,n){var o=u[n+1]||null,a=r.getTransformedHtml(t,o,e);r.replaceNode(t,a)})),n.body.innerHTML}},{key:"getTransformedHtml",value:function(t,e,r){return r(t.nodeValue||"",e&&e.nodeValue||"",this.options)}}])&&u(r.prototype,n),Object.defineProperty(r,"prototype",{writable:!1}),e}(),s=function(e){return(new t.DOMParser).parseFromString(e,"text/html")},c=function(e){for(var r=t.document.createTreeWalker(e,t.NodeFilter.SHOW_TEXT),n=r.nextNode(),u=[];n;)n.nodeValue&&""!==n.nodeValue.trim()&&u.push(n),n=r.nextNode();return u},f=i,l=r(667),h=r(954);const d=[[4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,4,4,4,4,4,4,4],[0,4,4,1,1,4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,4,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,0,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,1,1,1,1,0,0,4,2,4,1,1,1,1,1,0,1,1,1,0],[1,4,4,1,1,1,4,4,4,0,0,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,1,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,0,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,4,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,2,4,1,1,1,1,1,1,1,1,1,1],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,1,1,1,1,0,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,1,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,1,0,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,0,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,1,0,0,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,1,1,0],[0,4,4,1,1,1,4,4,4,0,1,0,0,0,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[1,4,4,1,1,1,4,4,4,1,1,1,1,1,0,1,1,1,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0],[0,4,4,1,1,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,2,4,0,0,0,0,0,0,0,0,1,0]],b=new l(h.toByteArray("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")),p=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},v=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class y{constructor(t,e=!1){this.position=t,this.required=e}}a=class{nextCodePoint(){const t=this.string.charCodeAt(this.pos++),e=this.string.charCodeAt(this.pos);return 55296<=t&&t<=56319&&56320<=e&&e<=57343?(this.pos++,1024*(t-55296)+(e-56320)+65536):t}nextCharClass(){return p(b.get(this.nextCodePoint()))}getSimpleBreak(){switch(this.nextClass){case 41:return!1;case 34:case 37:case 38:return this.curClass=34,!1;case 36:return this.curClass=36,!1}return null}getPairTableBreak(t){let e=!1;switch(d[this.curClass][this.nextClass]){case 0:e=!0;break;case 1:e=41===t;break;case 2:if(e=41===t,!e)return e=!1,e;break;case 3:if(41!==t)return e}return this.LB8a&&(e=!1),!this.LB21a||16!==this.curClass&&17!==this.curClass?this.LB21a=13===this.curClass:(e=!1,this.LB21a=!1),28===this.curClass?(this.LB30a++,2==this.LB30a&&28===this.nextClass&&(e=!0,this.LB30a=0)):this.LB30a=0,this.curClass=this.nextClass,e}nextBreak(){if(null==this.curClass){let t=this.nextCharClass();this.curClass=v(t),this.nextClass=t,this.LB8a=31===t,this.LB30a=0}for(;this.pos<this.string.length;){this.lastPos=this.pos;const t=this.nextClass;if(this.nextClass=this.nextCharClass(),34===this.curClass||36===this.curClass&&37!==this.nextClass)return this.curClass=v(p(this.nextClass)),new y(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new y(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new y(this.string.length)):null}constructor(t){this.string=t,this.pos=0,this.lastPos=0,this.curClass=null,this.nextClass=null,this.LB8a=!1,this.LB21a=!1,this.LB30a=0}};var D=/(?:[\t-\r -~\xA0-\xA5\xAA\xAC\xB1-\xB3\xB9\xBA\xBF-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2000-\u200A\u2018\u2019\u201C\u201D\u2028\u2029\u202F\u2030\u205F\u2070\u2071\u2074-\u208E\u2090-\u209C\u20AC\u20F0\u212A\u212B\u2132\u214E\u2160-\u2188\u2202\u2205\u220F\u2211\u2212\u221A\u221E\u222B\u2248\u2260\u2264\u2265\u2C60-\u2C7F\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA7FF\uA92E\uAB30-\uAB5A\uAB5C-\uAB64\uAB66-\uAB69\uFB00-\uFB06\uFEFF\uFF21-\uFF3A\uFF41-\uFF5A]|\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A])+/g,F=/(?:[\|\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3001-\u3003\u3005-\u3011\u3013-\u301F\u3021-\u302D\u3030-\u3035\u3037-\u303F\u3041-\u3096\u3099-\u30FF\u3190-\u319F\u31C0-\u31E3\u31F0-\u31FF\u3220-\u3247\u3280-\u32B0\u32C0-\u32CB\u32D0-\u3370\u337B-\u337F\u33E0-\u33FE\u3400-\u4DBF\u4E00-\u9FFF\uA700-\uA707\uF900-\uFA6D\uFA70-\uFAD9\uFE45\uFE46\uFF61-\uFF9F]|\uD81B[\uDFE2\uDFE3\uDFF0\uDFF1]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67]|\uD834[\uDF60-\uDF71]|\uD83C[\uDE00\uDE50\uDE51]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])+/,g=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,A=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,w=/・|:|;/,m=/、|,/,P=/。|./,B=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),C=/[\s\u00A0]/,x={isLatin:function(t){return D.test(t)},isJapanese:function(t){return F.test(t)},hasLanguageTransition:function(t,e){return x.isJapanese(t)!==x.isJapanese(e)},shouldAddThinSpace:function(t,e){return x.hasLanguageTransition(t,e)&&(r=e,!new RegExp("^[".concat(P.source).concat(m.source,"]")).test(r));var r}},O="typesetting",S=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",u=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(u).concat(n,">").concat(t,"</span>")},L=function(t,e,r,n){var u="letter-spacing: ".concat(r,";"),o=' data-content="'.concat(n?" ":" ",'"');return S(t,e,u,o)},j=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},E=function(t,e){return!C.test(t)&&!C.test(e)&&(x.shouldAddThinSpace(t,e)||function(t,e){for(var r=new RegExp("(".concat(A.source,"|").concat(m.source,"|").concat(P.source,")")),n={spaceBefore:{regex:g,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:r,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:w,hasSpaceBefore:!0,hasSpaceAfter:!0}},u=0,o=Object.values(n);u<o.length;u++){var a=o[u],i=a.regex,s=a.hasSpaceBefore,c=a.hasSpaceAfter;if(s&&i.test(e)&&!i.test(t))return!0;if(c&&i.test(t)&&!i.test(e))return!0}return!1}(t,e))},X=function(t,e){var r=t.slice(-1)+e.slice(0,1),n=new a(r).nextBreak();return!!n&&1===n.position},H=function(t,e,r){var n=j(t),u=j(e);return n.reduce((function(t,e,n,o){return t+function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2?arguments[2]:void 0;if(!e)return t;var n,u=r.insertThinSpaces&&E(t,e),o=X(t,e);return u?t+function(t,e){var r="".concat(O,"-thin-space");return L("",r,t,e)}(null!==(n=r.thinSpaceWidth)&&void 0!==n?n:"",o):r.useWordBreak&&o?t+"<wbr>":t}(e,o[n+1]||u[0],r)}),"")};function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var W=function(t,e,r){return" "===t?t:(n=t,u=r.useWordBreak,o="".concat(O,"-wrapper"),a="".concat(O,"-word-break"),i=u?"".concat(o," ").concat(a):o,S(n,i));var n,u,o,a,i},z=function(t,e,r){return" "===t?t:r.wrapLatin&&x.isLatin(t)?t.replace(D,(function(t){return e=t,r="".concat(O,"-latin"),S(e,r);var e,r})):r.noSpaceBetweenNoBreaks&&(n=t,B.test(n))?t.replace(B,(function(t){return e=t,r="".concat(O,"-no-breaks"),S(e,r);var e,r})):t;var n},T=function(t,e,r){var n,u=function(t){if(Array.isArray(t))return k(t)}(n=t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(n)||function(t,e){if(t){if("string"==typeof t)return k(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?k(t,e):void 0}}(n)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();return u.map((function(t,n){var o,a=u[n+1]||e[0]||"",i=null===(o=r.kerningRules)||void 0===o?void 0:o.find((function(e){return e.between[0]===t&&e.between[1]===a}));if(i){var s="number"==typeof i.value?i.value:parseInt(i.value,10),c=!r.useWordBreak&&X(t,a);return t+function(t,e){if(0===t)return"";var r="".concat(O,"-kerning");if(t<0){var n="margin: ".concat(t/1e3/2+"em",";");return S("",r,n)}return L("",r,t/1e3+"em",e)}(s,c)}return t})).join("")};function U(t){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},U(t)}function V(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function N(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?V(Object(r),!0).forEach((function(e){var n,u,o;n=t,u=e,o=r[e],(u=Z(u))in n?Object.defineProperty(n,u,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[u]=o})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function I(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,Z(n.key),n)}}function Z(t){var e=function(t,e){if("object"!=U(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=U(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==U(e)?e:String(e)}function q(t,e,r){return e=K(e),function(t,e){if(e&&("object"===U(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,R()?Reflect.construct(e,r||[],K(t).constructor):e.apply(t,r))}function R(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(R=function(){return!!t})()}function K(t){return K=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},K(t)}function J(t,e){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},J(t,e)}var Q=function(e){function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r);var e=void 0!==Intl.Segmenter;e||console.warn("Intl.Segmenter is not supported in this environment. \nTherefore, the options `useWordBreak` and `insertThinSpaces` will be ignored. \nFor more information about Intl.Segmenter, please visit:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Segmenter");var n=e?[W,H,z,T]:[z,T],u=r.validateOptions(t);return q(this,r,[n,u])}var n,u,o;return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J(t,e)}(r,e),n=r,o=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(r.isValidKerningRule)),N(N({},r.getDefaultOptions()),t)}},{key:"isValidKerningRule",value:function(t){return 1===t.between[0].length&&1===t.between[1].length||(console.warn("Kerning rule between '".concat(t.between[0],"' and '").concat(t.between[1],"' must be single characters.")),!1)}}],(u=[{key:"render",value:function(t){return t?this.processHtmlWithFunctions(t):""}},{key:"renderToElements",value:function(t){var e=this;t&&(Array.isArray(t)||(t=[t]),t.forEach((function(t){var r=e.render(t.innerHTML);t.innerHTML=r})))}},{key:"renderToSelector",value:function(e){if(e){var r=t.document.querySelectorAll(e);this.renderToElements(Array.from(r))}}}])&&I(n.prototype,u),o&&I(n,o),Object.defineProperty(n,"prototype",{writable:!1}),r}(f)})(),n.default})()));
|
package/dist/apply-style.js
CHANGED
|
@@ -24,7 +24,7 @@ const applyKerningToSegment = (currentSegment, nextSegment, options) => {
|
|
|
24
24
|
const chars = [...currentSegment];
|
|
25
25
|
const kernedChars = chars.map((currentChar, i) => {
|
|
26
26
|
const nextChar = chars[i + 1] || nextSegment[0] || "";
|
|
27
|
-
const kerningRule = options.kerningRules
|
|
27
|
+
const kerningRule = options.kerningRules?.find(
|
|
28
28
|
(rule) => rule.between[0] === currentChar && rule.between[1] === nextChar
|
|
29
29
|
);
|
|
30
30
|
if (kerningRule) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import HTMLProcessor from './html-processor.js';
|
|
2
2
|
import type { TypesettingOptions } from '../types';
|
|
3
3
|
declare class Typesetter extends HTMLProcessor {
|
|
4
|
-
static getDefaultOptions(): TypesettingOptions
|
|
5
|
-
constructor(options?:
|
|
4
|
+
static getDefaultOptions(): Required<TypesettingOptions>;
|
|
5
|
+
constructor(options?: TypesettingOptions);
|
|
6
6
|
private static validateOptions;
|
|
7
7
|
private static isValidKerningRule;
|
|
8
8
|
render(srcHtml: string): string;
|
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,qBAAqB,CAAA;AAI/C,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,UAAU,CAAA;AAM/D,cAAM,UAAW,SAAQ,aAAa;IAIpC,MAAM,CAAC,iBAAiB,IAAI,kBAAkB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAI/C,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,UAAU,CAAA;AAM/D,cAAM,UAAW,SAAQ,aAAa;IAIpC,MAAM,CAAC,iBAAiB,IAAI,QAAQ,CAAC,kBAAkB,CAAC;gBAW5C,OAAO,GAAE,kBAAuB;IAgC5C,OAAO,CAAC,MAAM,CAAC,eAAe;IAkB9B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAiBjC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAY/B,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI;IAmB5D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAMhD;AAED,eAAe,UAAU,CAAA;AACzB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAS7C,QAAA,MAAM,sBAAsB,gBAAiB,MAAM,YAAY,MAAM,WAAW,kBAAkB,KAAG,MAWpG,CAAA;AAOD,QAAA,MAAM,cAAc,QAAS,MAAM,KAAG,MAAM,EAG3C,CAAA;AAQD,QAAA,MAAM,sBAAsB,YAAa,MAAM,qCAAsB,kBAAkB,KAAG,
|
|
1
|
+
{"version":3,"file":"insert-separators.d.ts","sourceRoot":"","sources":["../src/insert-separators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAS7C,QAAA,MAAM,sBAAsB,gBAAiB,MAAM,YAAY,MAAM,WAAW,kBAAkB,KAAG,MAWpG,CAAA;AAOD,QAAA,MAAM,cAAc,QAAS,MAAM,KAAG,MAAM,EAG3C,CAAA;AAQD,QAAA,MAAM,sBAAsB,YAAa,MAAM,qCAAsB,kBAAkB,KAAG,MAgBzF,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAI3D,CAAA;AAQD,QAAA,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OAKpD,CAAA;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -22,7 +22,8 @@ const addSeparatorsToSegment = (current, next = "", options) => {
|
|
|
22
22
|
const addThinSpace = options.insertThinSpaces && shouldAddThinSpace(current, next);
|
|
23
23
|
const breakable = isBreakable(current, next);
|
|
24
24
|
if (addThinSpace) {
|
|
25
|
-
|
|
25
|
+
const thinSpaceWidth = options.thinSpaceWidth ?? "";
|
|
26
|
+
return current + createThinSpace(thinSpaceWidth, breakable);
|
|
26
27
|
}
|
|
27
28
|
if (options.useWordBreak && breakable) {
|
|
28
29
|
return current + createWbr();
|
package/dist/typesetter.css
CHANGED
|
@@ -13,28 +13,28 @@
|
|
|
13
13
|
* Safari のリーダーモード対応
|
|
14
14
|
* See: {@link https://github.com/yamatoiizuka/palt-typesetting/issues/96}
|
|
15
15
|
*/
|
|
16
|
-
.
|
|
16
|
+
.typesetting-wrapper wbr {
|
|
17
17
|
visibility: hidden;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
.
|
|
20
|
+
.typesetting-word-break {
|
|
21
21
|
word-break: keep-all;
|
|
22
22
|
overflow-wrap: anywhere;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
.
|
|
26
|
-
.
|
|
25
|
+
.typesetting-thin-space,
|
|
26
|
+
.typesetting-kerning {
|
|
27
27
|
letter-spacing: 0; /* 親要素から継承される letter-spacing の影響を無視します。 */
|
|
28
28
|
user-select: none; /* ユーザーによるテキストのコピーを無効にします。 */
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
.
|
|
32
|
-
.
|
|
31
|
+
.typesetting-thin-space[data-content]::after,
|
|
32
|
+
.typesetting-kerning[data-content]::after {
|
|
33
33
|
content: attr(data-content); /* Space または No-Break Space */
|
|
34
34
|
font-family: ling-one; /* カスタムフォントのスペースを使用します。 */
|
|
35
35
|
line-height: 0; /* 空白による行の高さの影響を無視します。 */
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
.
|
|
38
|
+
.typesetting-no-breaks {
|
|
39
39
|
letter-spacing: 0; /* 親要素から継承される letter-spacing の影響を無視します。 */
|
|
40
40
|
}
|
package/dist/util-tags.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const createWbr: () => string;
|
|
2
2
|
declare const createThinSpace: (thinSpaceWidth: string, breakable?: boolean) => string;
|
|
3
3
|
declare const createKerning: (kerningValue: number, breakable?: boolean) => string;
|
|
4
|
-
declare const applyWrapperStyle: (text: string, useWordBreak
|
|
4
|
+
declare const applyWrapperStyle: (text: string, useWordBreak?: boolean) => string;
|
|
5
5
|
declare const applyLatinStyle: (segment: string) => string;
|
|
6
6
|
declare const applyNoBreaksStyle: (segment: string) => string;
|
|
7
7
|
export { createWbr, createThinSpace, createKerning, applyWrapperStyle, applyLatinStyle, applyNoBreaksStyle };
|
package/dist/util-tags.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util-tags.d.ts","sourceRoot":"","sources":["../src/util-tags.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,SAAS,QAAO,MAErB,CAAA;AAQD,QAAA,MAAM,eAAe,mBAAoB,MAAM,cAAc,OAAO,KAAG,MAItE,CAAA;AASD,QAAA,MAAM,aAAa,iBAAkB,MAAM,cAAc,OAAO,KAAG,MAclE,CAAA;AAQD,QAAA,MAAM,iBAAiB,SAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"util-tags.d.ts","sourceRoot":"","sources":["../src/util-tags.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,SAAS,QAAO,MAErB,CAAA;AAQD,QAAA,MAAM,eAAe,mBAAoB,MAAM,cAAc,OAAO,KAAG,MAItE,CAAA;AASD,QAAA,MAAM,aAAa,iBAAkB,MAAM,cAAc,OAAO,KAAG,MAclE,CAAA;AAQD,QAAA,MAAM,iBAAiB,SAAU,MAAM,iBAAiB,OAAO,KAAG,MAKjE,CAAA;AAOD,QAAA,MAAM,eAAe,YAAa,MAAM,KAAG,MAG1C,CAAA;AAOD,QAAA,MAAM,kBAAkB,YAAa,MAAM,KAAG,MAG7C,CAAA;AAkCD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
|
package/dist/util-tags.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const prefix = "
|
|
1
|
+
const prefix = "typesetting";
|
|
2
2
|
const createWbr = () => {
|
|
3
3
|
return "<wbr>";
|
|
4
4
|
};
|
|
@@ -22,7 +22,7 @@ const createKerning = (kerningValue, breakable) => {
|
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
const applyWrapperStyle = (text, useWordBreak) => {
|
|
25
|
-
const wrapperName = prefix
|
|
25
|
+
const wrapperName = `${prefix}-wrapper`;
|
|
26
26
|
const wordBreakName = `${prefix}-word-break`;
|
|
27
27
|
const className = useWordBreak ? `${wrapperName} ${wordBreakName}` : wrapperName;
|
|
28
28
|
return createStyledSpan(text, className);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "palt-typesetting",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.7.1",
|
|
4
|
+
"description": "Typesetting Library for Proportional Spacing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
package/types/index.d.ts
CHANGED
|
@@ -16,38 +16,38 @@ export interface TypesettingOptions {
|
|
|
16
16
|
* HTML内のテキストにWBRタグを自動的に追加するかどうかを指定します。
|
|
17
17
|
* WBRタグは、必要に応じて改行の挿入を許可するために使用されます。
|
|
18
18
|
*/
|
|
19
|
-
useWordBreak
|
|
19
|
+
useWordBreak?: boolean
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* 英数を .
|
|
22
|
+
* 英数を .typesetting-latin でラップします。
|
|
23
23
|
* useWordBreak が true の場合にのみ有効です。
|
|
24
24
|
*/
|
|
25
|
-
wrapLatin
|
|
25
|
+
wrapLatin?: boolean
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
|
-
* 分離禁則文字を .
|
|
28
|
+
* 分離禁則文字を .typesetting-no-breaks でラップし、文字間を 0 に設定します。
|
|
29
29
|
* useWordBreak が true の場合にのみ有効です。
|
|
30
30
|
*/
|
|
31
|
-
noSpaceBetweenNoBreaks
|
|
31
|
+
noSpaceBetweenNoBreaks?: boolean
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
* HTML
|
|
35
|
-
*
|
|
34
|
+
* HTML内のテキストに四分アキを自動的に挿入するかどうかを指定します。
|
|
35
|
+
* 四分アキは、視覚的なスペースを微調整するために使用されます。
|
|
36
36
|
*/
|
|
37
|
-
insertThinSpaces
|
|
37
|
+
insertThinSpaces?: boolean
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
|
-
*
|
|
41
|
-
* 例えば'20%'
|
|
40
|
+
* 四分アキの幅を指定します。
|
|
41
|
+
* 例えば'20%'と指定すると、四分アキは通常のスペースの20%の幅になります。
|
|
42
42
|
* insertThinSpaces が true の場合のみ有効です。
|
|
43
43
|
*/
|
|
44
|
-
thinSpaceWidth
|
|
44
|
+
thinSpaceWidth?: string
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* カーニングを適用するためのルールのリスト。
|
|
48
48
|
* 各ルールは、特定の文字ペア間に適用されるカーニング値を指定します。
|
|
49
49
|
*/
|
|
50
|
-
kerningRules
|
|
50
|
+
kerningRules?: KerningRule[]
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
/**
|