palt-typesetting 0.9.1 → 0.9.3
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 +9 -5
- package/bundle/typesetter.min.js +1 -1
- package/dist/html-processor.d.ts +6 -0
- package/dist/html-processor.d.ts.map +1 -1
- package/dist/html-processor.js +176 -14
- package/dist/index.js +1 -1
- package/dist/insert-separators.d.ts.map +1 -1
- package/dist/insert-separators.js +8 -4
- package/dist/util-text-classes.js +2 -2
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -43,12 +43,12 @@ WordPress や jQuery などの環境で使用する場合
|
|
|
43
43
|
```html
|
|
44
44
|
<head>
|
|
45
45
|
<!-- head タグ内でスタイルの読み込み -->
|
|
46
|
-
<link rel="stylesheet" type="text/css" href="https://unpkg.com/palt-typesetting@0.9.
|
|
46
|
+
<link rel="stylesheet" type="text/css" href="https://unpkg.com/palt-typesetting@0.9.3/bundle/typesetter.min.css" />
|
|
47
47
|
</head>
|
|
48
48
|
|
|
49
49
|
<body>
|
|
50
50
|
<!-- body 閉じタグの前でスクリプトの読み込み -->
|
|
51
|
-
<script src="https://unpkg.com/palt-typesetting@0.9.
|
|
51
|
+
<script src="https://unpkg.com/palt-typesetting@0.9.3/bundle/typesetter.min.js"></script>
|
|
52
52
|
</body>
|
|
53
53
|
```
|
|
54
54
|
|
|
@@ -291,7 +291,8 @@ typesetter.renderToSelector('.my-class')
|
|
|
291
291
|
|
|
292
292
|
モダンな JavaScript フレームワーク用のサンプル集です。
|
|
293
293
|
|
|
294
|
-
|
|
294
|
+
<details>
|
|
295
|
+
<summary>React</summary>
|
|
295
296
|
|
|
296
297
|
Typesetting コンポーネントの作成
|
|
297
298
|
|
|
@@ -336,7 +337,10 @@ export default Typesetting
|
|
|
336
337
|
}
|
|
337
338
|
```
|
|
338
339
|
|
|
339
|
-
|
|
340
|
+
</details>
|
|
341
|
+
|
|
342
|
+
<details>
|
|
343
|
+
<summary>Astro.js</summary>
|
|
340
344
|
|
|
341
345
|
Typesetting コンポーネントの作成
|
|
342
346
|
|
|
@@ -397,7 +401,7 @@ import Typeset from '../components/Typesetting.astro'
|
|
|
397
401
|
</style>
|
|
398
402
|
```
|
|
399
403
|
|
|
400
|
-
|
|
404
|
+
</details>
|
|
401
405
|
|
|
402
406
|
## Notes
|
|
403
407
|
|
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={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)}}},667:(t,e,r)=>{const n=r(741),{swap32LE:o}=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)),o(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]}}},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,o=new e,a=new Uint8Array(30),u=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 o,a;for(o=0;o<r;++o)t[o]=0;for(o=0;o<30-r;++o)t[o+r]=o/r|0;for(a=n,o=0;o<30;++o)e[o]=a,a+=1<<t[o]}var p=new Uint16Array(16);function b(t,e,r,n){var o,a;for(o=0;o<16;++o)t.table[o]=0;for(o=0;o<n;++o)t.table[e[r+o]]++;for(t.table[0]=0,a=0,o=0;o<16;++o)p[o]=a,a+=t.table[o];for(o=0;o<n;++o)e[r+o]&&(t.trans[p[e[r+o]]++]=o)}function d(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,o=0,a=t.tag;do{n=2*n+(1&a),a>>>=1,++o,r+=e.table[o],n-=e.table[o]}while(n>=0);return t.tag=a,t.bitcount-=o,e.trans[r+n]}function g(t,e,r){var n,o,a,u,i,s;for(n=v(t,5,257),o=v(t,5,1),a=v(t,4,4),u=0;u<19;++u)l[u]=0;for(u=0;u<a;++u){var h=v(t,3,0);l[c[u]]=h}for(b(f,l,0,19),i=0;i<n+o;){var p=y(t,f);switch(p){case 16:var d=l[i-1];for(s=v(t,2,3);s;--s)l[i++]=d;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++]=p}}b(e,l,0,n),b(r,l,n,o)}function A(t,e,r){for(;;){var n,o,c,f,l=y(t,e);if(256===l)return 0;if(l<256)t.dest[t.destLen++]=l;else for(n=v(t,a[l-=257],u[l]),o=y(t,r),f=c=t.destLen-v(t,i[o],s[o]);f<c+n;++f)t.dest[t.destLen++]=t.dest[f]}}function w(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,o),h(a,u,4,3),h(i,s,2,1),a[28]=0,u[28]=258,t.exports=function(t,e){var a,u,i=new r(t,e);do{switch(a=d(i),v(i,2,0)){case 0:u=w(i);break;case 1:u=A(i,n,o);break;case 2:g(i,i.ltree,i.dtree),u=A(i,i.ltree,i.dtree);break;default:u=-3}if(0!==u)throw new Error("Data error")}while(!a);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}},954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),o="0".charCodeAt(0),a="a".charCodeAt(0),u="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<o?-1:e<o+10?e-o+26+26:e<u+26?e-u:e<a+26?e-a+26:void 0}t.toByteArray=function(t){var r,n,o,a,u,i;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=t.length;u="="===t.charAt(s-2)?2:"="===t.charAt(s-1)?1:0,i=new e(3*t.length/4-u),o=u>0?t.length-4:t.length;var f=0;function l(t){i[f++]=t}for(r=0,n=0;r<o;r+=4,n+=3)l((16711680&(a=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&a)>>8),l(255&a);return 2===u?l(255&(a=c(t.charAt(r))<<2|c(t.charAt(r+1))>>4)):1===u&&(l((a=c(t.charAt(r))<<10|c(t.charAt(r+1))<<4|c(t.charAt(r+2))>>2)>>8&255),l(255&a)),i},t.fromByteArray=function(t){var e,r,n,o,a=t.length%3,u="";function i(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-a;e<n;e+=3)u+=i((o=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+i(o>>12&63)+i(o>>6&63)+i(63&o);switch(a){case 1:u+=i((r=t[t.length-1])>>2),u+=i(r<<4&63),u+="==";break;case 2:u+=i((r=(t[t.length-2]<<8)+t[t.length-1])>>10),u+=i(r>>4&63),u+=i(r<<2&63),u+="="}return u}}(e)}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.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";function t(e){return t="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},t(e)}function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(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,a(n.key),n)}}function a(e){var r=function(e){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(r)?r:r+""}r.d(n,{default:()=>Q});var u,i=function(){return t=function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.transformFunctions=e,this.options=r},(r=[{key:"processHtmlWithFunctions",value:function(t){if(""===t)return t;var r,n=t,o=function(t,r){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,r){if(t){if("string"==typeof t)return e(t,r);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?e(t,r):void 0}}(t))||r&&t&&"number"==typeof t.length){n&&(t=n);var o=0,a=function(){};return{s:a,n:function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,i=!0,s=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){s=!0,u=t},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw u}}}}(this.transformFunctions);try{for(o.s();!(r=o.n()).done;){var a=r.value;n=this.processHtml(n,a)}}catch(t){o.e(t)}finally{o.f()}return n}},{key:"processHtml",value:function(t,e){if(""===t)return t;for(var r,n=/(<[^>]+>)|([^<]+)/g,o=[];null!==(r=n.exec(t));)r[1]?o.push({type:"tag",value:r[1]}):r[2]&&o.push({type:"text",value:r[2]});for(var a=0;a<o.length;a++)if("text"===o[a].type){for(var u="",i=a+1;i<o.length;i++)if("text"===o[i].type){u=o[i].value;break}var s=o[a].value;s=e(s,u,this.options),o[a].value=s}return o.map((function(t){return t.value})).join("")}}])&&o(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r}(),s=r(667),c=r(954);const f=[[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]],l=new s(c.toByteArray("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")),h=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},p=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class b{constructor(t,e=!1){this.position=t,this.required=e}}u=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 h(l.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(f[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=p(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=p(h(this.nextClass)),new b(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new b(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new b(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\xB7\xB9\xBA\xBF-\u02B8\u02BC\u02C7\u02C9-\u02CB\u02CD\u02D7\u02D9\u02E0-\u02E4\u0300-\u030E\u0310\u0311\u0313\u0320\u0323-\u0325\u032D\u032E\u0330\u0331\u0358\u035E\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1DF8\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\u2E17\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\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,v=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,y=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,g=/・|:|;/,A=/、|,/,w=/。|./,m=new RegExp("[\\p{scx=Hiragana}\\p{scx=Katakana}|ヲ-゚\\p{scx=Han}".concat(v.source).concat(y.source).concat(g.source).concat(A.source).concat(w.source,"]+"),"u"),P=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),x=/[\s\u00A0]/,B=new RegExp("".concat(/,/.source,"|").concat(/\./.source,"|").concat(v.source,"|").concat(y.source,"|").concat(g.source,"|").concat(A.source,"|").concat(w.source),"u"),S={isLatin:function(t){return d.test(t)},isJapanese:function(t){return m.test(t)},hasLanguageTransition:function(t,e){return S.isJapanese(t)!==S.isJapanese(e)},shouldAddThinSpace:function(t,e){return S.hasLanguageTransition(t,e)}},O="typesetting",C=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(o).concat(n,">").concat(t,"</span>")},j=function(t,e,r,n){var o="letter-spacing: ".concat(r,";"),a=' data-content="'.concat(n?" ":" ",'"');return C(t,e,o,a)},L=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},D=function(t,e){return!x.test(t)&&!x.test(e)&&(function(t,e){return B.test(t)||B.test(e)}(t,e)?function(t,e){for(var r=new RegExp("(".concat(y.source,"|").concat(A.source,"|").concat(w.source,")")),n={spaceBefore:{regex:v,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:r,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:g,hasSpaceBefore:!0,hasSpaceAfter:!0}},o=0,a=Object.values(n);o<a.length;o++){var u=a[o],i=u.regex,s=u.hasSpaceBefore,c=u.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):S.shouldAddThinSpace(t,e))},F=function(t,e){var r=t.slice(-1)+e.slice(0,1),n=new u(r).nextBreak();return!!n&&1===n.position},k=function(t,e,r){var n=L(t),o=L(e);return n.reduce((function(t,e,n,a){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,o=r.insertThinSpaces&&D(t,e),a=F(t,e);return o?t+function(t,e){var r="".concat(O,"-thin-space");return j("",r,t,e)}(g.test(t)||g.test(e)?"calc(".concat(r.thinSpaceWidth," / 2.0)"):null!==(n=r.thinSpaceWidth)&&void 0!==n?n:"",a):r.useWordBreak&&a?t+"<wbr>":t}(e,a[n+1]||o[0],r)}),"")};function X(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var H=function(t,e,r){return" "===t?t:(n=t,o=r.useWordBreak,a="".concat(O,"-wrapper"),u="".concat(O,"-word-break"),i=o?"".concat(a," ").concat(u):a,C(n,i));var n,o,a,u,i},z=function(t,e,r){return" "===t?t:r.wrapLatin&&S.isLatin(t)?t.replace(d,(function(t){return e=t,r="".concat(O,"-latin"),C(e,r);var e,r})):r.noSpaceBetweenNoBreaks&&(n=t,P.test(n))?t.replace(P,(function(t){return e=t,r="".concat(O,"-no-breaks"),C(e,r);var e,r})):t;var n},W=function(t,e,r){var n,o=function(t){if(Array.isArray(t))return X(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 X(t,e);var r={}.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)?X(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 o.map((function(t,n){var a,u=o[n+1]||e[0]||"",i=null===(a=r.kerningRules)||void 0===a?void 0:a.find((function(e){return e.between[0]===t&&e.between[1]===u}));if(i){var s="number"==typeof i.value?i.value:parseInt(i.value,10),c=!r.useWordBreak&&F(t,u);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 C("",r,n)}return j("",r,t/1e3+"em",e)}(s,c)}return t})).join("")},U=function(t,e,r){if(!r.wrapChars||0===r.wrapChars.length)return t;var n=t;return r.wrapChars.forEach((function(t){var e=("string"==typeof t.char?[t.char]:t.char).filter((function(t){return 1===Array.from(t).length}));if(0!==e.length){var r;if(1===e.length)r=t.label?t.label:e[0];else{if(!t.label)return void console.error("Invalid configuration in wrapChars: when grouping multiple characters, a label must be provided.");r=t.label}if(/^[^"'<>\s]+$/.test(r)){var o="typesetting-char-".concat(r),a=e.map((function(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")})).join(""),u=new RegExp("([".concat(a,"]+)"),"gu");n=n.replace(u,(function(t){return'<span class="'.concat(o,'">').concat(t,"</span>")}))}else console.error("Invalid configuration in wrapChars: '".concat(e.join(","),"' is used. To be used as a CSS class, the 'label' property must not contain spaces, quotes, '<' or '>'. Skipping this wrapping rule."))}else console.error("Invalid configuration in wrapChars: rule.char does not contain any valid single character.")})),n},E=window;function T(t){return T="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},T(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 I(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){N(t,e,r[e])})):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 N(t,e,r){return(e=q(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Z(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,q(n.key),n)}}function q(t){var e=function(t){if("object"!=T(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=T(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==T(e)?e:e+""}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(t){function e(){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,e);var r=void 0!==Intl.Segmenter;r||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=r?[H,k,z,W,U]:[z,W,U],o=e.validateOptions(t);return function(t,e,r){return e=K(e),function(t,e){if(e&&("object"==T(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))}(this,e,[n,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)}(e,t),r=e,o=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,wrapChars:[],noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(e.isValidKerningRule)),I(I({},e.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)}}],(n=[{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(t){if(t){var e=E.document.querySelectorAll(t);this.renderToElements(Array.from(e))}}}])&&Z(r.prototype,n),o&&Z(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}(i)})(),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={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)}}},667:(t,e,r)=>{const n=r(741),{swap32LE:a}=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)),a(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]}}},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,a=new e,o=new Uint8Array(30),u=new Uint16Array(30),s=new Uint8Array(30),i=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]),l=new e,f=new Uint8Array(320);function h(t,e,r,n){var a,o;for(a=0;a<r;++a)t[a]=0;for(a=0;a<30-r;++a)t[a+r]=a/r|0;for(o=n,a=0;a<30;++a)e[a]=o,o+=1<<t[a]}var p=new Uint16Array(16);function d(t,e,r,n){var a,o;for(a=0;a<16;++a)t.table[a]=0;for(a=0;a<n;++a)t.table[e[r+a]]++;for(t.table[0]=0,o=0,a=0;a<16;++a)p[a]=o,o+=t.table[a];for(a=0;a<n;++a)e[r+a]&&(t.trans[p[e[r+a]]++]=a)}function b(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,a=0,o=t.tag;do{n=2*n+(1&o),o>>>=1,++a,r+=e.table[a],n-=e.table[a]}while(n>=0);return t.tag=o,t.bitcount-=a,e.trans[r+n]}function g(t,e,r){var n,a,o,u,s,i;for(n=v(t,5,257),a=v(t,5,1),o=v(t,4,4),u=0;u<19;++u)f[u]=0;for(u=0;u<o;++u){var h=v(t,3,0);f[c[u]]=h}for(d(l,f,0,19),s=0;s<n+a;){var p=y(t,l);switch(p){case 16:var b=f[s-1];for(i=v(t,2,3);i;--i)f[s++]=b;break;case 17:for(i=v(t,3,3);i;--i)f[s++]=0;break;case 18:for(i=v(t,7,11);i;--i)f[s++]=0;break;default:f[s++]=p}}d(e,f,0,n),d(r,f,n,a)}function m(t,e,r){for(;;){var n,a,c,l,f=y(t,e);if(256===f)return 0;if(f<256)t.dest[t.destLen++]=f;else for(n=v(t,o[f-=257],u[f]),a=y(t,r),l=c=t.destLen-v(t,s[a],i[a]);l<c+n;++l)t.dest[t.destLen++]=t.dest[l]}}function w(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,a),h(o,u,4,3),h(s,i,2,1),o[28]=0,u[28]=258,t.exports=function(t,e){var o,u,s=new r(t,e);do{switch(o=b(s),v(s,2,0)){case 0:u=w(s);break;case 1:u=m(s,n,a);break;case 2:g(s,s.ltree,s.dtree),u=m(s,s.ltree,s.dtree);break;default:u=-3}if(0!==u)throw new Error("Data error")}while(!o);return s.destLen<s.dest.length?"function"==typeof s.dest.slice?s.dest.slice(0,s.destLen):s.dest.subarray(0,s.destLen):s.dest}},954:(t,e)=>{!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,r="+".charCodeAt(0),n="/".charCodeAt(0),a="0".charCodeAt(0),o="a".charCodeAt(0),u="A".charCodeAt(0),s="-".charCodeAt(0),i="_".charCodeAt(0);function c(t){var e=t.charCodeAt(0);return e===r||e===s?62:e===n||e===i?63:e<a?-1:e<a+10?e-a+26+26:e<u+26?e-u:e<o+26?e-o+26:void 0}t.toByteArray=function(t){var r,n,a,o,u,s;if(t.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.length;u="="===t.charAt(i-2)?2:"="===t.charAt(i-1)?1:0,s=new e(3*t.length/4-u),a=u>0?t.length-4:t.length;var l=0;function f(t){s[l++]=t}for(r=0,n=0;r<a;r+=4,n+=3)f((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),f((65280&o)>>8),f(255&o);return 2===u?f(255&(o=c(t.charAt(r))<<2|c(t.charAt(r+1))>>4)):1===u&&(f((o=c(t.charAt(r))<<10|c(t.charAt(r+1))<<4|c(t.charAt(r+2))>>2)>>8&255),f(255&o)),s},t.fromByteArray=function(t){var e,r,n,a,o=t.length%3,u="";function s(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,n=t.length-o;e<n;e+=3)u+=s((a=r=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+s(a>>12&63)+s(a>>6&63)+s(63&a);switch(o){case 1:u+=s((r=t[t.length-1])>>2),u+=s(r<<4&63),u+="==";break;case 2:u+=s((r=(t[t.length-2]<<8)+t[t.length-1])>>10),u+=s(r>>4&63),u+=s(r<<2&63),u+="="}return u}}(e)}},e={};function r(n){var a=e[n];if(void 0!==a)return a.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:()=>et});var t=/(?:[\t-\r -~\xA0-\xA5\xAA\xAC\xB1-\xB3\xB7\xB9\xBA\xBF-\u02B8\u02BC\u02C7\u02C9-\u02CB\u02CD\u02D7\u02D9\u02E0-\u02E4\u0300-\u030E\u0310\u0311\u0313\u0320\u0323-\u0325\u032D\u032E\u0330\u0331\u0358\u035E\u0363-\u036F\u0485\u0486\u0951\u0952\u10FB\u1680\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1DF8\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\u2E17\u3000\uA700-\uA707\uA722-\uA787\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\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,e=/(|[|{|〔|〈|《|「|『|【|〘|〖|“|‘/,a=/)|]|}|〕|〉|》|」|』|】|〙|〗|”|’/,o=/・|:|;/,u=/、|,/,s=/。|./,i=new RegExp("[\\p{scx=Hiragana}\\p{scx=Katakana}|ヲ-゚\\p{scx=Han}".concat(e.source).concat(a.source).concat(o.source).concat(u.source).concat(s.source,"]+"),"u"),c=new RegExp("[".concat("—‥…_",String.fromCharCode(9472),"-").concat(String.fromCharCode(9599),"]+"),"g"),l=/[\s\u00A0]/,f=new RegExp("".concat(/,/.source,"|").concat(/\./.source,"|").concat(e.source,"|").concat(a.source,"|").concat(o.source,"|").concat(u.source,"|").concat(s.source),"u");function h(t){return h="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},h(t)}function p(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function d(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,b(n.key),n)}}function b(t){var e=function(t){if("object"!=h(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=h(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==h(e)?e:e+""}var v,y="__TYPESETTING_PROTECTED_BLOCK__",g="__TYPESETTING_PROTECTED_GENERATED__",m=/<(script|style|textarea|code|pre|kbd|samp)\b[^>]*>[\s\S]*?<\/\1>/gi,w=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),A=new Set(["typesetting-wrapper","typesetting-word-break","typesetting-latin","typesetting-no-breaks","typesetting-thin-space","typesetting-kerning"]),x=["typesetting-char-"],P=function(){return t=function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.transformFunctions=e,this.options=r},e=[{key:"processHtmlWithFunctions",value:function(t){if(""===t)return t;var e,r=this.extractProtectedBlocks(t),n=r.html,a=r.protectedBlocks,o=this.extractManagedGeneratedBlocks(n),u=o.html,s=o.protectedBlocks,i=u,c=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return p(t,e);var r={}.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)?p(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,a=function(){};return{s:a,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,u=!0,s=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){s=!0,o=t},f:function(){try{u||null==r.return||r.return()}finally{if(s)throw o}}}}(this.transformFunctions);try{for(c.s();!(e=c.n()).done;){var l=e.value;i=this.processHtml(i,l)}}catch(t){c.e(t)}finally{c.f()}var f=this.restoreProtectedBlocks(i,s,g);return this.restoreProtectedBlocks(f,a,y)}},{key:"processHtml",value:function(t,e){if(""===t)return t;for(var r,n=/(<[^>]+>)|([^<]+)/g,a=[];null!==(r=n.exec(t));)r[1]?a.push({type:"tag",value:r[1]}):r[2]&&a.push({type:"text",value:r[2]});for(var o=0;o<a.length;o++)if("text"===a[o].type&&!this.isWhitespaceOnly(a[o].value)){for(var u="",s=o+1;s<a.length;s++)if("text"===a[s].type){u=a[s].value;break}a[o].value=e(a[o].value,u,this.options)}return a.map((function(t){return t.value})).join("")}},{key:"extractProtectedBlocks",value:function(t){var e=[];return{html:t.replace(m,(function(t){var r="\x3c!--".concat(y).concat(e.length,"--\x3e");return e.push(t),r})),protectedBlocks:e}}},{key:"extractManagedGeneratedBlocks",value:function(t){for(var e,r=/(<[^>]+>)|([^<]+)/g,n=[],a=[],o=[],u=[];null!==(e=r.exec(t));){var s=e[0],i=e[1]?this.getTagInfo(e[1]):null,c=u.length>0;if(c||!i||i.isClosing||i.isSelfClosing||!this.isManagedGeneratedTag(i))if(c){if(o.push(s),i&&(i.isClosing?u[u.length-1]===i.tagName&&u.pop():i.isSelfClosing||w.has(i.tagName)||u.push(i.tagName),0===u.length)){var l="\x3c!--".concat(g).concat(n.length,"--\x3e");n.push(o.join("")),a.push(l),o.length=0}}else a.push(s);else u.push(i.tagName),o.push(s)}return{html:a.join(""),protectedBlocks:n}}},{key:"restoreProtectedBlocks",value:function(t,e,r){return e.reduce((function(t,e,n){var a="\x3c!--".concat(r).concat(n,"--\x3e");return t.replace(a,e)}),t)}},{key:"isWhitespaceOnly",value:function(t){return new RegExp("^".concat(l.source,"*$")).test(t)}},{key:"getTagInfo",value:function(t){var e=t.match(/^<\s*\/\s*([a-zA-Z][\w:-]*)\b/);if(e)return{tagName:e[1].toLowerCase(),isClosing:!0,isSelfClosing:!1,classNames:[]};var r=t.match(/^<\s*([a-zA-Z][\w:-]*)\b/);if(!r)return null;var n=t.match(/\bclass\s*=\s*(["'])(.*?)\1/i),a=n?n[2].split(/\s+/).filter(Boolean):[];return{tagName:r[1].toLowerCase(),isClosing:!1,isSelfClosing:/\/\s*>$/.test(t),classNames:a}}},{key:"isManagedGeneratedTag",value:function(t){return"span"===t.tagName&&t.classNames.some((function(t){return A.has(t)||x.some((function(e){return t.startsWith(e)}))}))}}],e&&d(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}(),B=P,S=r(667),C=r(954);const k=[[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]],O=new S(C.toByteArray("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")),j=function(t){switch(t){case 33:case 39:case 40:case 42:return 12;case 35:return 5;default:return t}},L=function(t){switch(t){case 37:case 38:return 34;case 41:return 22;default:return t}};class D{constructor(t,e=!1){this.position=t,this.required=e}}v=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 j(O.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(k[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=L(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=L(j(this.nextClass)),new D(this.lastPos,!0);let e=this.getSimpleBreak();if(null===e&&(e=this.getPairTableBreak(t)),this.LB8a=31===this.nextClass,e)return new D(this.lastPos)}return this.lastPos<this.string.length?(this.lastPos=this.string.length,new D(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 T={isLatin:function(e){return new RegExp(t.source,"u").test(e)},isJapanese:function(t){return i.test(t)},hasLanguageTransition:function(t,e){return T.isJapanese(t)!==T.isJapanese(e)},shouldAddThinSpace:function(t,e){return T.hasLanguageTransition(t,e)}},E="typesetting",F=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=r?' style="'.concat(r,'"'):"";return'<span class="'.concat(e,'"').concat(a).concat(n,">").concat(t,"</span>")},X=function(t,e,r,n){var a="letter-spacing: ".concat(r,";"),o=' data-content="'.concat(n?" ":" ",'"');return F(t,e,a,o)},H=function(t){var e=new Intl.Segmenter("ja-JP",{granularity:"word"});return Array.from(e.segment(t),(function(t){return t.segment}))},W=function(t,r){return!l.test(t)&&!l.test(r)&&(function(t,e){return f.test(t)||f.test(e)}(t,r)?function(t,r){for(var n=new RegExp("(".concat(a.source,"|").concat(u.source,"|").concat(s.source,")")),i={spaceBefore:{regex:e,hasSpaceBefore:!0,hasSpaceAfter:!1},spaceAfter:{regex:n,hasSpaceBefore:!1,hasSpaceAfter:!0},spaceBoth:{regex:o,hasSpaceBefore:!0,hasSpaceAfter:!0}},c=0,l=Object.values(i);c<l.length;c++){var f=l[c],h=f.regex,p=f.hasSpaceBefore,d=f.hasSpaceAfter;if(p&&h.test(r)&&!h.test(t))return!0;if(d&&h.test(t)&&!h.test(r))return!0}return!1}(t,r):T.shouldAddThinSpace(t,r))},z=function(t,e){var r,n,a=null!==(r=Array.from(t).at(-1))&&void 0!==r?r:"",o=null!==(n=Array.from(e)[0])&&void 0!==n?n:"";if(!a||!o)return!1;if(l.test(o))return!1;var u=new v(a+o).nextBreak();return!!u&&u.position===a.length},U=function(t,e,r){var n=H(t),a=H(e);return n.reduce((function(t,e,n,u){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,a=r.insertThinSpaces&&W(t,e),u=z(t,e);return a?t+function(t,e){var r="".concat(E,"-thin-space");return X("",r,t,e)}(o.test(t)||o.test(e)?"calc(".concat(r.thinSpaceWidth," / 2.0)"):null!==(n=r.thinSpaceWidth)&&void 0!==n?n:"",u):r.useWordBreak&&u?t+"<wbr>":t}(e,u[n+1]||a[0],r)}),"")};function I(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var N=function(t,e,r){return" "===t?t:(n=t,a=r.useWordBreak,o="".concat(E,"-wrapper"),u="".concat(E,"-word-break"),s=a?"".concat(o," ").concat(u):o,F(n,s));var n,a,o,u,s},V=function(e,r,n){return" "===e?e:n.wrapLatin&&T.isLatin(e)?e.replace(t,(function(t){return e=t,r="".concat(E,"-latin"),F(e,r);var e,r})):n.noSpaceBetweenNoBreaks&&(a=e,new RegExp(c.source,"u").test(a))?e.replace(c,(function(t){return e=t,r="".concat(E,"-no-breaks"),F(e,r);var e,r})):e;var a},R=function(t,e,r){var n,a=function(t){if(Array.isArray(t))return I(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 I(t,e);var r={}.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)?I(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 a.map((function(t,n){var o,u=a[n+1]||e[0]||"",s=null===(o=r.kerningRules)||void 0===o?void 0:o.find((function(e){return e.between[0]===t&&e.between[1]===u}));if(s){var i="number"==typeof s.value?s.value:parseInt(s.value,10),c=!r.useWordBreak&&z(t,u);return t+function(t,e){if(0===t)return"";var r="".concat(E,"-kerning");if(t<0){var n="margin: ".concat(t/1e3/2+"em",";");return F("",r,n)}return X("",r,t/1e3+"em",e)}(i,c)}return t})).join("")},Z=function(t,e,r){if(!r.wrapChars||0===r.wrapChars.length)return t;var n=t;return r.wrapChars.forEach((function(t){var e=("string"==typeof t.char?[t.char]:t.char).filter((function(t){return 1===Array.from(t).length}));if(0!==e.length){var r;if(1===e.length)r=t.label?t.label:e[0];else{if(!t.label)return void console.error("Invalid configuration in wrapChars: when grouping multiple characters, a label must be provided.");r=t.label}if(/^[^"'<>\s]+$/.test(r)){var a="typesetting-char-".concat(r),o=e.map((function(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")})).join(""),u=new RegExp("([".concat(o,"]+)"),"gu");n=n.replace(u,(function(t){return'<span class="'.concat(a,'">').concat(t,"</span>")}))}else console.error("Invalid configuration in wrapChars: '".concat(e.join(","),"' is used. To be used as a CSS class, the 'label' property must not contain spaces, quotes, '<' or '>'. Skipping this wrapping rule."))}else console.error("Invalid configuration in wrapChars: rule.char does not contain any valid single character.")})),n},q=window;function G(t){return G="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},G(t)}function K(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 J(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?K(Object(r),!0).forEach((function(e){M(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):K(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function M(t,e,r){return(e=Y(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Q(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,Y(n.key),n)}}function Y(t){var e=function(t){if("object"!=G(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=G(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==G(e)?e:e+""}function _(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(_=function(){return!!t})()}function $(t){return $=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},$(t)}function tt(t,e){return tt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},tt(t,e)}var et=function(t){function e(){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,e);var r=void 0!==Intl.Segmenter;r||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=r?[N,U,V,R,Z]:[V,R,Z],a=e.validateOptions(t);return function(t,e,r){return e=$(e),function(t,e){if(e&&("object"==G(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,_()?Reflect.construct(e,r||[],$(t).constructor):e.apply(t,r))}(this,e,[n,a])}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&&tt(t,e)}(e,t),r=e,a=[{key:"getDefaultOptions",value:function(){return{useWordBreak:!0,wrapLatin:!0,wrapChars:[],noSpaceBetweenNoBreaks:!0,insertThinSpaces:!0,thinSpaceWidth:"0.2em",kerningRules:[]}}},{key:"validateOptions",value:function(t){return t.kerningRules&&(t.kerningRules=t.kerningRules.filter(e.isValidKerningRule)),J(J({},e.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)}}],(n=[{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(t){if(t){var e=q.document.querySelectorAll(t);this.renderToElements(Array.from(e))}}}])&&Q(r.prototype,n),a&&Q(r,a),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,a}(B)})(),n.default})()));
|
package/dist/html-processor.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ declare class HTMLProcessor {
|
|
|
5
5
|
constructor(transformFunctions: TransformFunction[], options: TypesettingOptions);
|
|
6
6
|
processHtmlWithFunctions(srcHtml: string): string;
|
|
7
7
|
private processHtml;
|
|
8
|
+
private extractProtectedBlocks;
|
|
9
|
+
private extractManagedGeneratedBlocks;
|
|
10
|
+
private restoreProtectedBlocks;
|
|
11
|
+
private isWhitespaceOnly;
|
|
12
|
+
private getTagInfo;
|
|
13
|
+
private isManagedGeneratedTag;
|
|
8
14
|
}
|
|
9
15
|
export default HTMLProcessor;
|
|
10
16
|
export type { TransformFunction, TypesettingOptions };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-processor.d.ts","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"html-processor.d.ts","sourceRoot":"","sources":["../src/html-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AA2BrE,cAAM,aAAa;IACjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAoB;gBAQvB,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,kBAAkB;IAYhF,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA0BjD,OAAO,CAAC,WAAW;IA8CnB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,6BAA6B;IAyDrC,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,UAAU;IAkClB,OAAO,CAAC,qBAAqB;CAS9B;AAED,eAAe,aAAa,CAAA;AAC5B,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAA"}
|
package/dist/html-processor.js
CHANGED
|
@@ -1,25 +1,52 @@
|
|
|
1
|
+
import { whitespaceRegex } from "./util-regex.js";
|
|
2
|
+
const PROTECTED_BLOCK_TOKEN_PREFIX = "__TYPESETTING_PROTECTED_BLOCK__";
|
|
3
|
+
const PROTECTED_GENERATED_TOKEN_PREFIX = "__TYPESETTING_PROTECTED_GENERATED__";
|
|
4
|
+
const protectedBlockRegex = /<(script|style|textarea|code|pre|kbd|samp)\b[^>]*>[\s\S]*?<\/\1>/gi;
|
|
5
|
+
const VOID_TAGS = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"]);
|
|
6
|
+
const MANAGED_CLASS_NAMES = /* @__PURE__ */ new Set([
|
|
7
|
+
"typesetting-wrapper",
|
|
8
|
+
"typesetting-word-break",
|
|
9
|
+
"typesetting-latin",
|
|
10
|
+
"typesetting-no-breaks",
|
|
11
|
+
"typesetting-thin-space",
|
|
12
|
+
"typesetting-kerning"
|
|
13
|
+
]);
|
|
14
|
+
const MANAGED_CLASS_PREFIXES = ["typesetting-char-"];
|
|
1
15
|
class HTMLProcessor {
|
|
16
|
+
/**
|
|
17
|
+
* HTMLProcessor を初期化します。
|
|
18
|
+
*
|
|
19
|
+
* @param transformFunctions - テキストトークンごとに適用する変換関数の配列。
|
|
20
|
+
* @param options - 各変換関数に渡す組版オプション。
|
|
21
|
+
*/
|
|
2
22
|
constructor(transformFunctions, options) {
|
|
3
23
|
this.transformFunctions = transformFunctions;
|
|
4
24
|
this.options = options;
|
|
5
25
|
}
|
|
6
26
|
/**
|
|
7
27
|
* 与えられたHTML文字列に対して、各変換関数を順次適用し、変換されたHTML文字列を返します。
|
|
8
|
-
*
|
|
28
|
+
* 文字列ベースで高速に処理しつつ、保護対象のブロックはそのまま保持します。
|
|
9
29
|
*
|
|
10
30
|
* @param srcHtml - 変換を適用する元のHTML文字列。
|
|
11
31
|
* @return 変換後のHTML文字列。
|
|
12
32
|
*/
|
|
13
33
|
processHtmlWithFunctions(srcHtml) {
|
|
14
34
|
if (srcHtml === "") return srcHtml;
|
|
15
|
-
|
|
35
|
+
const { html: htmlWithoutProtectedBlocks, protectedBlocks } = this.extractProtectedBlocks(srcHtml);
|
|
36
|
+
const { html, protectedBlocks: protectedGeneratedBlocks } = this.extractManagedGeneratedBlocks(htmlWithoutProtectedBlocks);
|
|
37
|
+
let processedHtml = html;
|
|
16
38
|
for (const transformFunction of this.transformFunctions) {
|
|
17
39
|
processedHtml = this.processHtml(processedHtml, transformFunction);
|
|
18
40
|
}
|
|
19
|
-
|
|
41
|
+
const restoredGeneratedHtml = this.restoreProtectedBlocks(
|
|
42
|
+
processedHtml,
|
|
43
|
+
protectedGeneratedBlocks,
|
|
44
|
+
PROTECTED_GENERATED_TOKEN_PREFIX
|
|
45
|
+
);
|
|
46
|
+
return this.restoreProtectedBlocks(restoredGeneratedHtml, protectedBlocks, PROTECTED_BLOCK_TOKEN_PREFIX);
|
|
20
47
|
}
|
|
21
48
|
/**
|
|
22
|
-
* HTML
|
|
49
|
+
* HTML文字列を「タグ」と「テキスト」に分割し、テキスト部分に対して変換関数を適用します。
|
|
23
50
|
*
|
|
24
51
|
* @param html - 解析および変換するHTML文字列。
|
|
25
52
|
* @param transformFunction - テキスト部分に適用する変換関数。
|
|
@@ -38,21 +65,156 @@ class HTMLProcessor {
|
|
|
38
65
|
}
|
|
39
66
|
}
|
|
40
67
|
for (let i = 0; i < tokens.length; i++) {
|
|
41
|
-
if (tokens[i].type
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
68
|
+
if (tokens[i].type !== "text") {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (this.isWhitespaceOnly(tokens[i].value)) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
let nextText = "";
|
|
75
|
+
for (let j = i + 1; j < tokens.length; j++) {
|
|
76
|
+
if (tokens[j].type === "text") {
|
|
77
|
+
nextText = tokens[j].value;
|
|
78
|
+
break;
|
|
48
79
|
}
|
|
49
|
-
let transformed = tokens[i].value;
|
|
50
|
-
transformed = transformFunction(transformed, nextText, this.options);
|
|
51
|
-
tokens[i].value = transformed;
|
|
52
80
|
}
|
|
81
|
+
tokens[i].value = transformFunction(tokens[i].value, nextText, this.options);
|
|
53
82
|
}
|
|
54
83
|
return tokens.map((token) => token.value).join("");
|
|
55
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* 除外対象のブロック要素を一時的なプレースホルダに置き換えます。
|
|
87
|
+
* これにより、文字列ベースのトークン処理中に script/style などの中身が
|
|
88
|
+
* 組版対象として誤って書き換えられることを防ぎます。
|
|
89
|
+
*
|
|
90
|
+
* @param html - 保護対象のブロックを含むHTML文字列。
|
|
91
|
+
* @return プレースホルダ化後のHTMLと、退避したブロックの配列。
|
|
92
|
+
*/
|
|
93
|
+
extractProtectedBlocks(html) {
|
|
94
|
+
const protectedBlocks = [];
|
|
95
|
+
const extractedHtml = html.replace(protectedBlockRegex, (block) => {
|
|
96
|
+
const token = `<!--${PROTECTED_BLOCK_TOKEN_PREFIX}${protectedBlocks.length}-->`;
|
|
97
|
+
protectedBlocks.push(block);
|
|
98
|
+
return token;
|
|
99
|
+
});
|
|
100
|
+
return { html: extractedHtml, protectedBlocks };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* 既に組版済みの span 要素をプレースホルダに置き換えます。
|
|
104
|
+
* ここで保護するのは入力HTMLに元から存在していた要素だけで、
|
|
105
|
+
* 今回の render() 中に生成される wrapper や latin span は後続の変換対象に残します。
|
|
106
|
+
*
|
|
107
|
+
* @param html - 既生成の span 要素を含むHTML文字列。
|
|
108
|
+
* @return プレースホルダ化後のHTMLと、退避した要素の配列。
|
|
109
|
+
*/
|
|
110
|
+
extractManagedGeneratedBlocks(html) {
|
|
111
|
+
const tokenRegex = /(<[^>]+>)|([^<]+)/g;
|
|
112
|
+
const protectedBlocks = [];
|
|
113
|
+
const outputTokens = [];
|
|
114
|
+
const protectedTokens = [];
|
|
115
|
+
const protectedTagStack = [];
|
|
116
|
+
let match;
|
|
117
|
+
while ((match = tokenRegex.exec(html)) !== null) {
|
|
118
|
+
const token = match[0];
|
|
119
|
+
const tagInfo = match[1] ? this.getTagInfo(match[1]) : null;
|
|
120
|
+
const isInsideProtectedBlock = protectedTagStack.length > 0;
|
|
121
|
+
if (!isInsideProtectedBlock && tagInfo && !tagInfo.isClosing && !tagInfo.isSelfClosing && this.isManagedGeneratedTag(tagInfo)) {
|
|
122
|
+
protectedTagStack.push(tagInfo.tagName);
|
|
123
|
+
protectedTokens.push(token);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
if (!isInsideProtectedBlock) {
|
|
127
|
+
outputTokens.push(token);
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
protectedTokens.push(token);
|
|
131
|
+
if (!tagInfo) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
if (tagInfo.isClosing) {
|
|
135
|
+
if (protectedTagStack[protectedTagStack.length - 1] === tagInfo.tagName) {
|
|
136
|
+
protectedTagStack.pop();
|
|
137
|
+
}
|
|
138
|
+
} else if (!tagInfo.isSelfClosing && !VOID_TAGS.has(tagInfo.tagName)) {
|
|
139
|
+
protectedTagStack.push(tagInfo.tagName);
|
|
140
|
+
}
|
|
141
|
+
if (protectedTagStack.length === 0) {
|
|
142
|
+
const placeholder = `<!--${PROTECTED_GENERATED_TOKEN_PREFIX}${protectedBlocks.length}-->`;
|
|
143
|
+
protectedBlocks.push(protectedTokens.join(""));
|
|
144
|
+
outputTokens.push(placeholder);
|
|
145
|
+
protectedTokens.length = 0;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return { html: outputTokens.join(""), protectedBlocks };
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* extractProtectedBlocks で退避したブロック要素を、元の位置へ復元します。
|
|
152
|
+
*
|
|
153
|
+
* @param html - プレースホルダを含むHTML文字列。
|
|
154
|
+
* @param protectedBlocks - 退避していたブロック要素の配列。
|
|
155
|
+
* @param tokenPrefix - extract 側で使用したプレースホルダの接頭辞。
|
|
156
|
+
* @return プレースホルダを元のブロック要素に戻したHTML文字列。
|
|
157
|
+
*/
|
|
158
|
+
restoreProtectedBlocks(html, protectedBlocks, tokenPrefix) {
|
|
159
|
+
return protectedBlocks.reduce((restoredHtml, block, index) => {
|
|
160
|
+
const token = `<!--${tokenPrefix}${index}-->`;
|
|
161
|
+
return restoredHtml.replace(token, block);
|
|
162
|
+
}, html);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* テキストが空白文字と制御文字だけで構成されているかを判定します。
|
|
166
|
+
*
|
|
167
|
+
* @param value - 判定対象の文字列。
|
|
168
|
+
* @return 空白のみなら true、意味のある文字を含むなら false。
|
|
169
|
+
*/
|
|
170
|
+
isWhitespaceOnly(value) {
|
|
171
|
+
return new RegExp(`^${whitespaceRegex.source}*$`).test(value);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* タグ文字列から、タグ名とクラス名などの最小限の情報を抽出します。
|
|
175
|
+
* コメントや doctype のような通常タグでないものは null を返します。
|
|
176
|
+
*
|
|
177
|
+
* @param tag - tokenRegex で切り出したタグ文字列。
|
|
178
|
+
* @return 抽出したタグ情報。通常タグでなければ null。
|
|
179
|
+
*/
|
|
180
|
+
getTagInfo(tag) {
|
|
181
|
+
const closingMatch = tag.match(/^<\s*\/\s*([a-zA-Z][\w:-]*)\b/);
|
|
182
|
+
if (closingMatch) {
|
|
183
|
+
return {
|
|
184
|
+
tagName: closingMatch[1].toLowerCase(),
|
|
185
|
+
isClosing: true,
|
|
186
|
+
isSelfClosing: false,
|
|
187
|
+
classNames: []
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
const openingMatch = tag.match(/^<\s*([a-zA-Z][\w:-]*)\b/);
|
|
191
|
+
if (!openingMatch) {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
const classMatch = tag.match(/\bclass\s*=\s*(["'])(.*?)\1/i);
|
|
195
|
+
const classNames = classMatch ? classMatch[2].split(/\s+/).filter(Boolean) : [];
|
|
196
|
+
return {
|
|
197
|
+
tagName: openingMatch[1].toLowerCase(),
|
|
198
|
+
isClosing: false,
|
|
199
|
+
isSelfClosing: /\/\s*>$/.test(tag),
|
|
200
|
+
classNames
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* このライブラリが生成した要素として扱うべきタグかを判定します。
|
|
205
|
+
* `.typesetting-*` を一括判定せず、実際に出力で使用しているクラスだけを対象にします。
|
|
206
|
+
*
|
|
207
|
+
* @param tagInfo - 判定対象のタグ情報。
|
|
208
|
+
* @return ライブラリ生成要素なら true、そうでなければ false。
|
|
209
|
+
*/
|
|
210
|
+
isManagedGeneratedTag(tagInfo) {
|
|
211
|
+
if (tagInfo.tagName !== "span") {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
return tagInfo.classNames.some((className) => {
|
|
215
|
+
return MANAGED_CLASS_NAMES.has(className) || MANAGED_CLASS_PREFIXES.some((prefix) => className.startsWith(prefix));
|
|
216
|
+
});
|
|
217
|
+
}
|
|
56
218
|
}
|
|
57
219
|
var html_processor_default = HTMLProcessor;
|
|
58
220
|
export {
|
package/dist/index.js
CHANGED
|
@@ -70,7 +70,7 @@ class Typesetter extends HTMLProcessor {
|
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* 与えられたElementまたはElementの配列に対して、スタイルと区切り文字を適用します。
|
|
73
|
-
* 各要素のinnerHTML
|
|
73
|
+
* 各要素の innerHTML を処理して置き換えます。
|
|
74
74
|
*
|
|
75
75
|
* @param elements - スタイルを適用するElementまたはHTMLElementの配列。
|
|
76
76
|
*/
|
|
@@ -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,MAkBzF,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAO3D,CAAA;AAQD,QAAA,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,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,MAkBzF,CAAA;AAQD,QAAA,MAAM,kBAAkB,YAAa,MAAM,QAAQ,MAAM,KAAG,OAO3D,CAAA;AAQD,QAAA,MAAM,WAAW,YAAa,MAAM,QAAQ,MAAM,KAAG,OAiBpD,CAAA;AAED,eAAe,sBAAsB,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -35,10 +35,14 @@ const shouldAddThinSpace = (current, next) => {
|
|
|
35
35
|
return CharClass.includesPunctuation(current, next) ? CharClass.shouldAddThinSpace(current, next) : LanguageClass.shouldAddThinSpace(current, next);
|
|
36
36
|
};
|
|
37
37
|
const isBreakable = (current, next) => {
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
const currentChar = Array.from(current).at(-1) ?? "";
|
|
39
|
+
const nextChar = Array.from(next)[0] ?? "";
|
|
40
|
+
if (!currentChar || !nextChar) return false;
|
|
41
|
+
if (whitespaceRegex.test(nextChar)) return false;
|
|
42
|
+
const combinedText = currentChar + nextChar;
|
|
43
|
+
const lineBreaker = new LineBreaker(combinedText);
|
|
44
|
+
const breakOpportunity = lineBreaker.nextBreak();
|
|
45
|
+
return breakOpportunity ? breakOpportunity.position === currentChar.length : false;
|
|
42
46
|
};
|
|
43
47
|
var insert_separators_default = insertSeparatorsToText;
|
|
44
48
|
export {
|
|
@@ -6,7 +6,7 @@ const CharClass = {
|
|
|
6
6
|
* @return 分離禁則文字で構成されている場合はtrue、そうでない場合はfalse
|
|
7
7
|
*/
|
|
8
8
|
shouldNotBreak: (segment) => {
|
|
9
|
-
return util.noBreakRulesRegex.test(segment);
|
|
9
|
+
return new RegExp(util.noBreakRulesRegex.source, "u").test(segment);
|
|
10
10
|
},
|
|
11
11
|
/**
|
|
12
12
|
* 2つのセグメント間に四分アキを追加すべきかを判断します。
|
|
@@ -62,7 +62,7 @@ const LanguageClass = {
|
|
|
62
62
|
* @return ラテン文字で構成されている場合はtrue、そうでない場合はfalse
|
|
63
63
|
*/
|
|
64
64
|
isLatin: (segment) => {
|
|
65
|
-
return util.latinRegex.test(segment);
|
|
65
|
+
return new RegExp(util.latinRegex.source, "u").test(segment);
|
|
66
66
|
},
|
|
67
67
|
/**
|
|
68
68
|
* セグメントが日本語文字で構成されているかどうかを判定します。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "palt-typesetting",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.3",
|
|
4
4
|
"description": "Typesetting Library for Proportional Spacing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
],
|
|
13
13
|
"repository": {
|
|
14
14
|
"type": "git",
|
|
15
|
-
"url": "https://github.com/yamatoiizuka/palt-typesetting.git"
|
|
15
|
+
"url": "git+https://github.com/yamatoiizuka/palt-typesetting.git"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
18
|
"clean": "rm -rf ./dist && rm -rf ./bundle",
|
|
@@ -34,17 +34,17 @@
|
|
|
34
34
|
"./dist/win.js": "./dist/win-browser.js"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"jsdom": "^
|
|
37
|
+
"jsdom": "^27.0.0",
|
|
38
38
|
"linebreak": "^1.1.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@babel/core": "^7.23.9",
|
|
42
42
|
"@babel/preset-env": "^7.23.9",
|
|
43
|
-
"@types/jsdom": "^
|
|
44
|
-
"@types/node": "^
|
|
43
|
+
"@types/jsdom": "^27.0.0",
|
|
44
|
+
"@types/node": "^24",
|
|
45
45
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
46
46
|
"@typescript-eslint/parser": "^8.0.0",
|
|
47
|
-
"babel-loader": "^
|
|
47
|
+
"babel-loader": "^10.0.0",
|
|
48
48
|
"clean-css-cli": "^5.6.3",
|
|
49
49
|
"esbuild": "^0.25.0",
|
|
50
50
|
"eslint": "^9",
|