@paroicms/public-server-lib 0.34.1 → 0.35.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.
@@ -0,0 +1,8 @@
1
+ export declare function escapeHtml(text: string | undefined, options?: {
2
+ newLinesToBr?: boolean;
3
+ }): string;
4
+ export declare function htmlToRawText(html: string): string;
5
+ export declare function stripHtmlTags(html: string, { blockSeparator }?: {
6
+ blockSeparator?: string;
7
+ }): string;
8
+ export declare function makeStylesheetLinkAsyncTag(href: string): string;
@@ -0,0 +1,48 @@
1
+ import { decodeHtmlEntities, insertBlockSeparators, newLinesToBr, replaceLinks, } from "./internal/internal-html-utils.js";
2
+ /**
3
+ * @see https://stackoverflow.com/a/430240/3786294
4
+ */
5
+ const tagBody = "(?:[^\"'>]|\"[^\"]*\"|'[^']*')*";
6
+ const tagOrComment = new RegExp(`<(?:!--(?:(?:-*[^->])*--+|-?)|script\\b${tagBody}>[\\s\\S]*?</script\\s*|style\\b${tagBody}>[\\s\\S]*?</style\\s*|/?[a-z]${tagBody})>`, "gi");
7
+ /**
8
+ * @see https://stackoverflow.com/a/4835406/3786294
9
+ */
10
+ const htmlEntities = {
11
+ "&": "&amp;",
12
+ "<": "&lt;",
13
+ ">": "&gt;",
14
+ '"': "&quot;",
15
+ "'": "&#039;",
16
+ };
17
+ export function escapeHtml(text, options = {}) {
18
+ if (!text)
19
+ return "";
20
+ let val = text;
21
+ val = val.replace(/[&<>"']/g, (m) => htmlEntities[m]);
22
+ if (options.newLinesToBr) {
23
+ val = newLinesToBr(val);
24
+ }
25
+ return val;
26
+ }
27
+ export function htmlToRawText(html) {
28
+ return stripHtmlTags(replaceLinks(html));
29
+ }
30
+ export function stripHtmlTags(html, { blockSeparator } = {}) {
31
+ let val = blockSeparator ? insertBlockSeparators(html, blockSeparator) : html;
32
+ val = val.replace(/<br\s*\/?>/gi, "\n");
33
+ let prev;
34
+ do {
35
+ prev = val;
36
+ val = val.replace(tagOrComment, "");
37
+ } while (val !== prev);
38
+ if (blockSeparator && val.endsWith(blockSeparator)) {
39
+ val = val.slice(0, -blockSeparator.length);
40
+ }
41
+ return decodeHtmlEntities(val);
42
+ }
43
+ export function makeStylesheetLinkAsyncTag(href) {
44
+ const escHref = escapeHtml(href);
45
+ return `<link rel="preload" href="${escHref}" as="style" onload="this.onload=null;this.rel='stylesheet'">
46
+ <noscript><link rel="stylesheet" href="${escHref}"></noscript>`;
47
+ }
48
+ //# sourceMappingURL=html-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-helpers.js","sourceRoot":"","sources":["../src/html-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,YAAY,GACb,MAAM,mCAAmC,CAAC;AAE3C;;GAEG;AACH,MAAM,OAAO,GAAG,iCAAiC,CAAC;AAClD,MAAM,YAAY,GAAG,IAAI,MAAM,CAC7B,0CAA0C,OAAO,mCAAmC,OAAO,iCAAiC,OAAO,IAAI,EACvI,IAAI,CACL,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAA+B;IAC/C,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;CACd,CAAC;AAEF,MAAM,UAAU,UAAU,CACxB,IAAwB,EACxB,UAAsC,EAAE;IAExC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,EAAE,cAAc,KAAkC,EAAE;IAC9F,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9E,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACxC,IAAI,IAAY,CAAC;IACjB,GAAG,CAAC;QACF,IAAI,GAAG,GAAG,CAAC;QACX,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC,QAAQ,GAAG,KAAK,IAAI,EAAE;IACvB,IAAI,cAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACnD,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,6BAA6B,OAAO;yCACJ,OAAO,eAAe,CAAC;AAChE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export type * from "../types/backend-plugin-types.d.ts";
2
2
  export * from "./api-error-handler.js";
3
3
  export * from "./esm-module.helper.js";
4
- export * from "./html-helpers/html-helpers.js";
4
+ export * from "./html-helpers.js";
5
5
  export * from "./obfuscate.helper.js";
6
6
  export * from "./server-image-cache-engine.helper.js";
7
7
  export * from "./simple-i18n.js";
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from "./api-error-handler.js";
2
2
  export * from "./esm-module.helper.js";
3
- export * from "./html-helpers/html-helpers.js";
3
+ export * from "./html-helpers.js";
4
4
  export * from "./obfuscate.helper.js";
5
5
  export * from "./server-image-cache-engine.helper.js";
6
6
  export * from "./simple-i18n.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function newLinesToBr(text: string): string;
2
+ export declare function decodeHtmlEntities(str: string): string;
3
+ export declare function replaceLinks(html: string): string;
4
+ export declare function insertBlockSeparators(html: string, sep: string): string;
@@ -0,0 +1,35 @@
1
+ const entities = {
2
+ "&lt;": "<",
3
+ "&#60;": "<",
4
+ "&#x3C;": "<",
5
+ "&gt;": ">",
6
+ "&#62;": ">",
7
+ "&#x3E;": ">",
8
+ "&#47;": "/",
9
+ "&#x2F;": "/",
10
+ "&apos;": "'",
11
+ "&#39;": "'",
12
+ "&#x27;": "'",
13
+ "&quot;": '"',
14
+ "&#34;": '"',
15
+ "&#x22;": '"',
16
+ "&amp;": "&",
17
+ "&#38;": "&",
18
+ "&#x26;": "&",
19
+ };
20
+ export function newLinesToBr(text) {
21
+ return text.replace(/(?:\r\n|\r|\n)/g, "<br>\n");
22
+ }
23
+ export function decodeHtmlEntities(str) {
24
+ return str.replace(/&lt;|&#60;|&#x3C;|&gt;|&#62;|&#x3E;|&#47;|&#x2F;|&apos;|&#39;|&#x27;|&quot;|&#34;|&#x22;|&amp;|&#38;|&#x26;/g, (match) => entities[match]);
25
+ }
26
+ export function replaceLinks(html) {
27
+ return html.replace(/<a\s+[^>]*href="([^"]*)"[^>]*>([^<]*)<\/a>/gi, (_, url, label) => {
28
+ return `${label.trim()} ( ${url} )`;
29
+ });
30
+ }
31
+ export function insertBlockSeparators(html, sep) {
32
+ const regex = /(\w)(<\/(?:address|article|aside|blockquote|canvas|dd|div|dl|dt|fieldset|figcaption|figure|footer|form|h[1-6]|header|hr|li|main|nav|noscript|ol|p|pre|section|table|tfoot|ul|video)>)/g;
33
+ return html.replace(regex, (_, p1, p2) => `${p1}${sep}${p2}`);
34
+ }
35
+ //# sourceMappingURL=internal-html-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-html-utils.js","sourceRoot":"","sources":["../../src/internal/internal-html-utils.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAiC;IAC7C,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;CACd,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,CAAC,OAAO,CAChB,8GAA8G,EAC9G,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,8CAA8C,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACpF,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,GAAW;IAC7D,MAAM,KAAK,GACT,wLAAwL,CAAC;IAC3L,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;AAChE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { escapeHtml } from "./html-helpers/html-helpers.js";
1
+ import { escapeHtml } from "./html-helpers.js";
2
2
  export function generateObfuscatedHtml(inputString) {
3
3
  const jsString = JSON.stringify(btoa(inputString));
4
4
  return `<script>document.write(atob(${jsString}))</script>`;
@@ -1 +1 @@
1
- {"version":3,"file":"obfuscate.helper.js","sourceRoot":"","sources":["../src/obfuscate.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,OAAO,+BAA+B,QAAQ,aAAa,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,OAAO,sBAAsB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACnD,OAAO,YAAY,UAAU,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AAC9E,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,SAAS,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"obfuscate.helper.js","sourceRoot":"","sources":["../src/obfuscate.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,OAAO,+BAA+B,QAAQ,aAAa,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,OAAO,sBAAsB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACnD,OAAO,YAAY,UAAU,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC;AAC9E,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,SAAS,EAAE,CAAC;AACzD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paroicms/public-server-lib",
3
- "version": "0.34.1",
3
+ "version": "0.35.1",
4
4
  "description": "Common utilitaries for paroicms plugins (backend side).",
5
5
  "author": "Paroi Team",
6
6
  "repository": {
@@ -91,15 +91,32 @@ export interface BackendPluginInitService {
91
91
  handler: PluginLiquidFilterHandler,
92
92
  options?: { raw?: boolean },
93
93
  ): void;
94
+ registerLiquidTag(
95
+ tagName: string,
96
+ tagKind: "assignToVar",
97
+ handler: PluginLiquidTagReturnsVarHandler,
98
+ ): void;
99
+ registerLiquidTag(
100
+ tagName: string,
101
+ tagKind: "injectHtml",
102
+ handler: PluginLiquidTagReturnsHtmlHandler,
103
+ ): void;
94
104
  registerFieldPreprocessor(handler: FieldPreprocessor): void;
95
105
  registerHook(hookName: string, handler: BackendHookHandler, options?: { unique?: boolean }): void;
96
106
  setPublicApiHandler(handler: PublicApiHandler): void;
107
+ /** @deprecated */
97
108
  addHeadTag(...htmlTags: string[]): void;
109
+ registerHeadTags(handler: HeadTagsHandler): void;
98
110
  registeredSite: RegisteredSite;
99
111
  configuration: PluginConfiguration;
100
112
  pluginAssetsUrl: string;
101
113
  }
102
114
 
115
+ export type HeadTagsHandler = (options: { state: ReadonlyMap<string, unknown>; html: string }) =>
116
+ | string[]
117
+ | string
118
+ | undefined;
119
+
103
120
  export type BackendHookHandler = (
104
121
  service: BackendPluginService,
105
122
  params: any,
@@ -117,6 +134,17 @@ export type PluginLiquidFilterHandler = (
117
134
  },
118
135
  ) => string | Promise<string>;
119
136
 
137
+ export type PluginLiquidTagReturnsVarHandler = (
138
+ service: PluginRenderingService,
139
+ parameters: { [key: string]: unknown },
140
+ options: { variableName: string },
141
+ ) => Generator;
142
+
143
+ export type PluginLiquidTagReturnsHtmlHandler = (
144
+ service: PluginRenderingService,
145
+ parameters: { [key: string]: unknown },
146
+ ) => string | Promise<string>;
147
+
120
148
  export type FieldPreprocessor = (
121
149
  service: PluginRenderingService,
122
150
  value: ReadFieldValue,
@@ -181,6 +209,8 @@ export interface NewSiteOptions {
181
209
  export interface PluginRenderingService {
182
210
  pluginService: BackendPluginService;
183
211
  language: string;
212
+ homeUrl: string;
213
+ setRenderState(key: string, value: any): void;
184
214
  renderChildPartials(
185
215
  ctx: PaHttpContext,
186
216
  options: {
@@ -244,7 +274,7 @@ export interface PluginConfigurations {
244
274
  export interface PluginConfiguration {
245
275
  [key: string]: unknown;
246
276
  backOffice?: Obj;
247
- googleRecaptchaKey?: string;
277
+ googleRecaptchaSiteKey?: string;
248
278
  }
249
279
 
250
280
  export interface MailData {
@@ -1,14 +0,0 @@
1
- /**
2
- * @see https://stackoverflow.com/a/4835406/3786294
3
- */
4
- export declare function escapeHtml(text: string | undefined, options?: {
5
- newLinesToBr?: boolean;
6
- }): string;
7
- export declare function decodeHtmlEntities(str: string): string;
8
- export declare function newLinesToBr(text: string): string;
9
- export declare function htmlToText(html: string): string;
10
- export declare function stripHtmlTags(html: string, { blockSeparator }?: {
11
- blockSeparator?: string;
12
- }): string;
13
- export declare function insertBlockSeparators(html: string, sep: string): string;
14
- export declare function replaceLinks(html: string): string;
@@ -1,76 +0,0 @@
1
- /**
2
- * @see https://stackoverflow.com/a/4835406/3786294
3
- */
4
- const htmlEntities = {
5
- "&": "&amp;",
6
- "<": "&lt;",
7
- ">": "&gt;",
8
- '"': "&quot;",
9
- "'": "&#039;",
10
- };
11
- export function escapeHtml(text, options = {}) {
12
- if (!text)
13
- return "";
14
- let val = text;
15
- val = val.replace(/[&<>"']/g, (m) => htmlEntities[m]);
16
- if (options.newLinesToBr) {
17
- val = newLinesToBr(val);
18
- }
19
- return val;
20
- }
21
- export function decodeHtmlEntities(str) {
22
- const entities = {
23
- "&lt;": "<",
24
- "&#60;": "<",
25
- "&#x3C;": "<",
26
- "&gt;": ">",
27
- "&#62;": ">",
28
- "&#x3E;": ">",
29
- "&#47;": "/",
30
- "&#x2F;": "/",
31
- "&apos;": "'",
32
- "&#39;": "'",
33
- "&#x27;": "'",
34
- "&quot;": '"',
35
- "&#34;": '"',
36
- "&#x22;": '"',
37
- "&amp;": "&",
38
- "&#38;": "&",
39
- "&#x26;": "&",
40
- };
41
- return str.replace(/&lt;|&#60;|&#x3C;|&gt;|&#62;|&#x3E;|&#47;|&#x2F;|&apos;|&#39;|&#x27;|&quot;|&#34;|&#x22;|&amp;|&#38;|&#x26;/g, (match) => entities[match]);
42
- }
43
- export function newLinesToBr(text) {
44
- return text.replace(/(?:\r\n|\r|\n)/g, "<br>\n");
45
- }
46
- export function htmlToText(html) {
47
- return stripHtmlTags(replaceLinks(html));
48
- }
49
- /**
50
- * Thanks to https://stackoverflow.com/a/430240/3786294
51
- */
52
- const tagBody = "(?:[^\"'>]|\"[^\"]*\"|'[^']*')*";
53
- const tagOrComment = new RegExp(`<(?:!--(?:(?:-*[^->])*--+|-?)|script\\b${tagBody}>[\\s\\S]*?</script\\s*|style\\b${tagBody}>[\\s\\S]*?</style\\s*|/?[a-z]${tagBody})>`, "gi");
54
- export function stripHtmlTags(html, { blockSeparator } = {}) {
55
- let val = blockSeparator ? insertBlockSeparators(html, blockSeparator) : html;
56
- val = val.replace(/<br\s*\/?>/gi, "\n");
57
- let prev;
58
- do {
59
- prev = val;
60
- val = val.replace(tagOrComment, "");
61
- } while (val !== prev);
62
- if (blockSeparator && val.endsWith(blockSeparator)) {
63
- val = val.slice(0, -blockSeparator.length);
64
- }
65
- return decodeHtmlEntities(val);
66
- }
67
- export function insertBlockSeparators(html, sep) {
68
- const regex = /(\w)(<\/(?:address|article|aside|blockquote|canvas|dd|div|dl|dt|fieldset|figcaption|figure|footer|form|h[1-6]|header|hr|li|main|nav|noscript|ol|p|pre|section|table|tfoot|ul|video)>)/g;
69
- return html.replace(regex, (_, p1, p2) => `${p1}${sep}${p2}`);
70
- }
71
- export function replaceLinks(html) {
72
- return html.replace(/<a\s+[^>]*href="([^"]*)"[^>]*>([^<]*)<\/a>/gi, (_, url, label) => {
73
- return `${label.trim()} ( ${url} )`;
74
- });
75
- }
76
- //# sourceMappingURL=html-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-helpers.js","sourceRoot":"","sources":["../../src/html-helpers/html-helpers.ts"],"names":[],"mappings":"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"}