postext 1.33.2 → 1.33.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.
Files changed (122) hide show
  1. package/dist/__tests__/linearScans.test.d.ts +2 -0
  2. package/dist/__tests__/linearScans.test.d.ts.map +1 -0
  3. package/dist/__tests__/linearScans.test.js +112 -0
  4. package/dist/__tests__/linearScans.test.js.map +1 -0
  5. package/dist/__tests__/pipeline/refLabelBreaks.test.js +1 -1
  6. package/dist/__tests__/pipeline/refLabelBreaks.test.js.map +1 -1
  7. package/dist/__tests__/svgFonts.test.js +1 -1
  8. package/dist/__tests__/svgFonts.test.js.map +1 -1
  9. package/dist/bundle/api.d.ts.map +1 -1
  10. package/dist/bundle/api.js +51 -5
  11. package/dist/bundle/api.js.map +1 -1
  12. package/dist/bundle/configVersion.d.ts.map +1 -1
  13. package/dist/bundle/configVersion.js +12 -4
  14. package/dist/bundle/configVersion.js.map +1 -1
  15. package/dist/bundle/manifest.d.ts.map +1 -1
  16. package/dist/bundle/manifest.js +15 -1
  17. package/dist/bundle/manifest.js.map +1 -1
  18. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  19. package/dist/canvas-backend/blockRender.js +2 -1
  20. package/dist/canvas-backend/blockRender.js.map +1 -1
  21. package/dist/canvas-backend/verticalText.d.ts.map +1 -1
  22. package/dist/canvas-backend/verticalText.js +8 -3
  23. package/dist/canvas-backend/verticalText.js.map +1 -1
  24. package/dist/citations/bibtex.d.ts.map +1 -1
  25. package/dist/citations/bibtex.js +31 -10
  26. package/dist/citations/bibtex.js.map +1 -1
  27. package/dist/code/highlight.js +62 -12
  28. package/dist/code/highlight.js.map +1 -1
  29. package/dist/comics/layoutPage.d.ts.map +1 -1
  30. package/dist/comics/layoutPage.js +2 -1
  31. package/dist/comics/layoutPage.js.map +1 -1
  32. package/dist/comics/page.js +1 -1
  33. package/dist/comics/paint.d.ts.map +1 -1
  34. package/dist/comics/paint.js +3 -1
  35. package/dist/comics/paint.js.map +1 -1
  36. package/dist/comics/script.d.ts.map +1 -1
  37. package/dist/comics/script.js +5 -2
  38. package/dist/comics/script.js.map +1 -1
  39. package/dist/comics/split.d.ts.map +1 -1
  40. package/dist/comics/split.js +3 -1
  41. package/dist/comics/split.js.map +1 -1
  42. package/dist/comics/strip.d.ts.map +1 -1
  43. package/dist/comics/strip.js +3 -2
  44. package/dist/comics/strip.js.map +1 -1
  45. package/dist/contrast.js +3 -3
  46. package/dist/contrast.js.map +1 -1
  47. package/dist/design/layout.js +2 -2
  48. package/dist/design/layout.js.map +1 -1
  49. package/dist/frontmatter.d.ts.map +1 -1
  50. package/dist/frontmatter.js +9 -9
  51. package/dist/frontmatter.js.map +1 -1
  52. package/dist/html-backend.d.ts.map +1 -1
  53. package/dist/html-backend.js +55 -4
  54. package/dist/html-backend.js.map +1 -1
  55. package/dist/looseLines.d.ts.map +1 -1
  56. package/dist/looseLines.js +2 -2
  57. package/dist/looseLines.js.map +1 -1
  58. package/dist/measure/breakRules.d.ts.map +1 -1
  59. package/dist/measure/breakRules.js +3 -2
  60. package/dist/measure/breakRules.js.map +1 -1
  61. package/dist/measure/cjkAnnotate.d.ts.map +1 -1
  62. package/dist/measure/cjkAnnotate.js +3 -2
  63. package/dist/measure/cjkAnnotate.js.map +1 -1
  64. package/dist/measure/cjkCompose.d.ts.map +1 -1
  65. package/dist/measure/cjkCompose.js +5 -5
  66. package/dist/measure/cjkCompose.js.map +1 -1
  67. package/dist/measure/font.d.ts.map +1 -1
  68. package/dist/measure/font.js +2 -1
  69. package/dist/measure/font.js.map +1 -1
  70. package/dist/measure/fontString.d.ts +29 -0
  71. package/dist/measure/fontString.d.ts.map +1 -1
  72. package/dist/measure/fontString.js +156 -7
  73. package/dist/measure/fontString.js.map +1 -1
  74. package/dist/measure/rich.d.ts.map +1 -1
  75. package/dist/measure/rich.js +12 -14
  76. package/dist/measure/rich.js.map +1 -1
  77. package/dist/measure/vertical.d.ts.map +1 -1
  78. package/dist/measure/vertical.js +5 -5
  79. package/dist/measure/vertical.js.map +1 -1
  80. package/dist/parse/citations.d.ts.map +1 -1
  81. package/dist/parse/citations.js +5 -1
  82. package/dist/parse/citations.js.map +1 -1
  83. package/dist/parse/equationLabels.d.ts +11 -3
  84. package/dist/parse/equationLabels.d.ts.map +1 -1
  85. package/dist/parse/equationLabels.js +26 -17
  86. package/dist/parse/equationLabels.js.map +1 -1
  87. package/dist/parse/inlineFormatting.d.ts +26 -0
  88. package/dist/parse/inlineFormatting.d.ts.map +1 -1
  89. package/dist/parse/inlineFormatting.js +216 -49
  90. package/dist/parse/inlineFormatting.js.map +1 -1
  91. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  92. package/dist/pipeline/contentWarnings.js +4 -5
  93. package/dist/pipeline/contentWarnings.js.map +1 -1
  94. package/dist/pipeline/crossRefs.d.ts.map +1 -1
  95. package/dist/pipeline/crossRefs.js +9 -1
  96. package/dist/pipeline/crossRefs.js.map +1 -1
  97. package/dist/pipeline/headerFooter.js +3 -3
  98. package/dist/pipeline/headerFooter.js.map +1 -1
  99. package/dist/pipeline/parts.d.ts.map +1 -1
  100. package/dist/pipeline/parts.js +13 -1
  101. package/dist/pipeline/parts.js.map +1 -1
  102. package/dist/pipeline/placeholders.js +4 -4
  103. package/dist/pipeline/placeholders.js.map +1 -1
  104. package/dist/pipeline/statementNumbering.d.ts.map +1 -1
  105. package/dist/pipeline/statementNumbering.js +6 -13
  106. package/dist/pipeline/statementNumbering.js.map +1 -1
  107. package/dist/preflight.d.ts.map +1 -1
  108. package/dist/preflight.js +3 -2
  109. package/dist/preflight.js.map +1 -1
  110. package/dist/table/model.d.ts.map +1 -1
  111. package/dist/table/model.js +13 -3
  112. package/dist/table/model.js.map +1 -1
  113. package/dist/word/inline.d.ts.map +1 -1
  114. package/dist/word/inline.js +26 -4
  115. package/dist/word/inline.js.map +1 -1
  116. package/dist/word/template.d.ts.map +1 -1
  117. package/dist/word/template.js +61 -4
  118. package/dist/word/template.js.map +1 -1
  119. package/dist/word/toDocx.d.ts.map +1 -1
  120. package/dist/word/toDocx.js +54 -1
  121. package/dist/word/toDocx.js.map +1 -1
  122. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"html-backend.d.ts","sourceRoot":"","sources":["../src/html-backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAqBX,aAAa,EACd,MAAM,OAAO,CAAC;AAIf,OAAO,EAA8B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA2InF,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;kDAI8C;IAC9C,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG;QAC5D;;;0BAGkB;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;iEAY6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;4DAGwD;IACxD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D;;;;;;;2DAOuD;IACvD,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC;IACnG;;;wDAGoD;IACpD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C;;;;;;;uEAOmE;IACnE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;;;;;;;uBAUmB;IACnB,cAAc,CAAC,EAAE,OAAO,GAAG;QACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;KACxC,CAAC;CACH;AA4VD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAajE;AA4pFD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;IACvB;4EACwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,QAS4B,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAqGjB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAEtF"}
1
+ {"version":3,"file":"html-backend.d.ts","sourceRoot":"","sources":["../src/html-backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EAqBX,aAAa,EACd,MAAM,OAAO,CAAC;AAIf,OAAO,EAA8B,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA2InF,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC1B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;kDAI8C;IAC9C,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GAAG;QAC5D;;;0BAGkB;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF;;;;;;;;;;;;iEAY6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;4DAGwD;IACxD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC1D;;;;;;;2DAOuD;IACvD,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;QAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC;IACnG;;;wDAGoD;IACpD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C;;;;;;;uEAOmE;IACnE,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;;;;;;;uBAUmB;IACnB,cAAc,CAAC,EAAE,OAAO,GAAG;QACzB,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;KACxC,CAAC;CACH;AA4VD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAajE;AAssFD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,8EAA8E;IAC9E,cAAc,EAAE,MAAM,CAAC;IACvB;4EACwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,QAS4B,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAuGjB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAEtF"}
@@ -788,15 +788,63 @@ function refAnchorHref(key) {
788
788
  return `#${encodeURIComponent(anchorElementId(key.slice(ANCHOR_KEY.length)))}`;
789
789
  return `#${encodeURIComponent(resourceAnchorId(key))}`;
790
790
  }
791
+ const isDigit = (c) => c !== undefined && c >= '0' && c <= '9';
792
+ const isLineTerminator = (c) => c === '\n' || c === '\r' || c === '\u2028' || c === '\u2029';
793
+ /**
794
+ * A font shorthand split at its first size followed by white space and a
795
+ * family: what comes before the size, the size (`16px`, `12.5px`) and the
796
+ * family. The same as `/^(.*?)(\d+(?:\.\d+)?px)\s+(.+)$/` (`.` stops at a
797
+ * line terminator), read in one pass so that long runs of digits or
798
+ * spaces stay linear; null when there is none.
799
+ */
800
+ function splitFontSize(font) {
801
+ const n = font.length;
802
+ let lastBreak = -1;
803
+ for (let i = n - 1; i >= 0 && lastBreak < 0; i--)
804
+ if (isLineTerminator(font[i]))
805
+ lastBreak = i;
806
+ for (let i = 0; i < n; i++) {
807
+ const c = font[i];
808
+ // The prefix holds no line terminator.
809
+ if (isLineTerminator(c))
810
+ return null;
811
+ // A size starts at a run's first digit: one inside the run would end
812
+ // where the run's does.
813
+ if (!isDigit(c) || isDigit(font[i - 1]))
814
+ continue;
815
+ let j = i;
816
+ while (isDigit(font[j]))
817
+ j++;
818
+ if (font[j] === '.' && isDigit(font[j + 1])) {
819
+ j++;
820
+ while (isDigit(font[j]))
821
+ j++;
822
+ }
823
+ if (!font.startsWith('px', j))
824
+ continue;
825
+ const sizeEnd = j + 2;
826
+ let spaces = sizeEnd;
827
+ while (spaces < n && /\s/.test(font[spaces]))
828
+ spaces++;
829
+ // The spaces take all they can and leave the family one character
830
+ // (the last space when nothing else follows); the family holds no
831
+ // line terminator.
832
+ const familyStart = spaces < n ? spaces : n - 1;
833
+ if (familyStart <= sizeEnd || lastBreak >= familyStart)
834
+ continue;
835
+ return [font.slice(0, i), font.slice(i, sizeEnd), font.slice(familyStart)];
836
+ }
837
+ return null;
838
+ }
791
839
  function quoteFontString(fontString) {
792
840
  // Canvas accepts unquoted multi-word families; CSS is stricter. Wrap family in
793
841
  // single quotes (double quotes would collide with the outer HTML attribute
794
842
  // delimiter) if it contains a space and isn't already quoted. If the family
795
843
  // arrives already wrapped in double quotes, rewrite them to single quotes.
796
- const match = fontString.match(/^(.*?)(\d+(?:\.\d+)?px)\s+(.+)$/);
844
+ const match = splitFontSize(fontString);
797
845
  if (!match)
798
846
  return fontString;
799
- const [, prefix, size, family] = match;
847
+ const [prefix, size, family] = match;
800
848
  const trimmed = (family ?? '').trim();
801
849
  let quoted;
802
850
  if (trimmed.startsWith("'")) {
@@ -2480,7 +2528,8 @@ function renderResourceBlockHtml(block, paint) {
2480
2528
  '</div>');
2481
2529
  }
2482
2530
  function extractFontSizePx(fontString) {
2483
- const m = fontString.match(/(\d+(?:\.\d+)?)px/);
2531
+ // From a number's first digit only (`\D` before it): linear on long digit runs.
2532
+ const m = fontString.match(/(?:^|\D)(\d+(?:\.\d+)?)px/);
2484
2533
  return m ? parseFloat(m[1]) : 16;
2485
2534
  }
2486
2535
  function boxStyleDecls(style) {
@@ -3080,7 +3129,9 @@ export function renderToHtmlIndexed(doc, options = {}) {
3080
3129
  // browser picks the region's glyph forms, and so does a right-to-left one,
3081
3130
  // with its direction (see `renderLangOf`).
3082
3131
  const reset = rtl ? HTML_TEXT_RESET.replace('direction:ltr;', 'direction:rtl;') : HTML_TEXT_RESET;
3083
- const html = `<div class="pt-doc"${docLang !== undefined ? ` lang="${docLang}"` : ''}${rtl ? ' dir="rtl"' : ''} data-mode="${mode}" style="${reset}${docStyle}">` +
3132
+ // The mode, gap and padding come from the caller, typed but not checked:
3133
+ // escaped, they cannot leave their attributes.
3134
+ const html = `<div class="pt-doc"${docLang !== undefined ? ` lang="${docLang}"` : ''}${rtl ? ' dir="rtl"' : ''} data-mode="${esc(mode)}" style="${esc(reset + docStyle)}">` +
3084
3135
  pageHtmlParts.join('') +
3085
3136
  `</div>`;
3086
3137
  return { html, mode, pages: indexedPages };