@bloklabs/cli 1.12.0 → 1.14.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # @bloklabs/cli
2
2
 
3
- Command-line tools for [Blok](https://blokeditor.com) — the headless, Notion-like block editor whose content is JSON blocks, not HTML. Converts legacy HTML into Blok JSON and prints the Editor.js migration guide.
3
+ Command-line tools for [Blok](https://blokeditor.com). Blok is a headless, Notion-like block editor whose content is JSON blocks, not HTML. Converts legacy HTML into Blok JSON and prints the Editor.js migration guide.
4
4
 
5
5
  ## Install
6
6
 
package/dist/cli.mjs CHANGED
@@ -41,24 +41,22 @@ var t = "# Migrating from EditorJS to Blok\n\nThis guide covers the breaking cha
41
41
  case "convert-html": {
42
42
  let e = new (await (import("jsdom"))).JSDOM("");
43
43
  globalThis.DOMParser = e.window.DOMParser, globalThis.Node = e.window.Node;
44
- let { convertHtml: t } = await import("./convert-html-D4ge5XCh.mjs");
45
- r(t((await import("node:fs")).readFileSync("/dev/stdin", "utf-8")), s);
44
+ let { convertHtml: t } = await import("./convert-html-BcYeUJKw.mjs");
45
+ r(t((await import("node:fs")).readFileSync(0, "utf-8")), s);
46
46
  break;
47
47
  }
48
48
  case "convert-gdocs": {
49
49
  let e = new (await (import("jsdom"))).JSDOM("");
50
50
  globalThis.DOMParser = e.window.DOMParser, globalThis.Node = e.window.Node, globalThis.document = e.window.document;
51
- let { convertGdocs: t } = await import("./convert-gdocs-DmNzRwar.mjs");
52
- r(t((await import("node:fs")).readFileSync("/dev/stdin", "utf-8")), s);
51
+ let { convertGdocs: t } = await import("./convert-gdocs-CB-kubaI.mjs");
52
+ r(t((await import("node:fs")).readFileSync(0, "utf-8")), s);
53
53
  break;
54
54
  }
55
55
  case "migration":
56
56
  r(n(t), s);
57
57
  break;
58
58
  case "help":
59
- case null:
60
- process.stdout.write(i);
61
- break;
59
+ case null: process.stdout.write(i);
62
60
  }
63
61
  };
64
62
  //#endregion
@@ -1,19 +1,29 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./block-builder-Dc6PL7RK.mjs";
2
+ //#region src/components/utils/inert-html.ts
3
+ var o = { current: void 0 };
4
+ function s(e) {
5
+ o.current ??= document.implementation.createHTMLDocument("");
6
+ let t = o.current.createElement("div");
7
+ return t.innerHTML = e, t;
8
+ }
9
+ //#endregion
2
10
  //#region src/components/modules/paste/constants.ts
3
- var o = "data-blok-columns-candidate";
11
+ var c = "data-blok-columns-candidate", l = /(<br\s*\/?>)/i, u = /^<br\s*\/?>$/i;
12
+ function d(e) {
13
+ let t = e.split(l), n = t.reduce((e, t, n) => u.test(t) || t.trim() === "" ? e : n, -1);
14
+ return t.slice(0, n + 1).join("").trimEnd();
15
+ }
4
16
  //#endregion
5
17
  //#region src/components/modules/paste/google-docs-preprocessor.ts
6
- function s(e) {
7
- let n = document.createElement("div");
8
- n.innerHTML = e;
9
- let r = m(n);
10
- return w(n, r), r && D(n), j(n), r && (O(n), p(n)), t(n), n.innerHTML;
18
+ function f(e) {
19
+ let n = s(e), r = y(n);
20
+ return k(n, r), r && M(n), I(n), r && (N(n), v(n)), t(n), n.innerHTML;
11
21
  }
12
- function c(e, t) {
22
+ function p(e, t) {
13
23
  let n = e.parentElement;
14
- return n === null ? null : n === t ? e : c(n, t);
24
+ return n === null ? null : n === t ? e : p(n, t);
15
25
  }
16
- function l(e, t, n) {
26
+ function m(e, t, n) {
17
27
  let r = e.cloneNode(!1), i = [];
18
28
  for (let n of Array.from(e.childNodes)) {
19
29
  if (n === t) break;
@@ -21,11 +31,11 @@ function l(e, t, n) {
21
31
  }
22
32
  return i.forEach((e) => r.appendChild(e)), n !== null && r.appendChild(n), r.childNodes.length > 0 ? r : null;
23
33
  }
24
- function u(e, t, n) {
34
+ function h(e, t, n) {
25
35
  let r = e.cloneNode(!1), i = Array.from(e.childNodes), a = i.findIndex((e) => e === t), o = i.slice(a + 1);
26
36
  return n !== null && r.appendChild(n), o.forEach((e) => r.appendChild(e)), r.childNodes.length > 0 ? r : null;
27
37
  }
28
- function d(e, t) {
38
+ function g(e, t) {
29
39
  let n = (e, r, i) => {
30
40
  if (e === t) return {
31
41
  before: r,
@@ -36,45 +46,45 @@ function d(e, t) {
36
46
  before: r,
37
47
  after: i
38
48
  };
39
- let o = l(a, e, r), s = u(a, e, i);
49
+ let o = m(a, e, r), s = h(a, e, i);
40
50
  return n(a, o, s);
41
51
  };
42
52
  return n(e, null, null);
43
53
  }
44
- function f(e, t) {
54
+ function _(e, t) {
45
55
  let n = e.parentElement;
46
- return n === null || n === t ? !1 : n.tagName === "TABLE" || f(n, t);
56
+ return n === null || n === t ? !1 : n.tagName === "TABLE" || _(n, t);
47
57
  }
48
- function p(e) {
58
+ function v(e) {
49
59
  let t = Array.from(e.querySelectorAll("img"));
50
60
  for (let n of t) {
51
- if (f(n, e)) continue;
52
- let t = c(n, e);
61
+ if (_(n, e)) continue;
62
+ let t = p(n, e);
53
63
  if (!t) continue;
54
- let { before: r, after: i } = d(n, t), a = document.createDocumentFragment();
64
+ let { before: r, after: i } = g(n, t), a = document.createDocumentFragment();
55
65
  r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
56
66
  }
57
67
  }
58
- function m(e) {
68
+ function y(e) {
59
69
  let t = e.querySelector("b[id^=\"docs-internal-guid-\"]");
60
70
  if (!t) return !1;
61
71
  let n = document.createDocumentFragment();
62
72
  for (; t.firstChild;) n.appendChild(t.firstChild);
63
73
  return t.replaceWith(n), !0;
64
74
  }
65
- function h(e, t, n) {
75
+ function b(e, t, n) {
66
76
  return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
67
77
  }
68
- function g(e) {
78
+ function x(e) {
69
79
  let t = e.replace(/\s/g, "");
70
80
  return t === "rgb(0,0,0)" || t === "#000000";
71
81
  }
72
- function _(e) {
82
+ function S(e) {
73
83
  if (e.closest("a") !== null) return !0;
74
84
  let t = e.querySelector("a");
75
85
  return t !== null && t.textContent?.trim() === e.textContent?.trim();
76
86
  }
77
- function v(e) {
87
+ function C(e) {
78
88
  let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
79
89
  if (n) {
80
90
  let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
@@ -105,16 +115,16 @@ function v(e) {
105
115
  }
106
116
  return -1;
107
117
  }
108
- function y(e) {
109
- let t = v(e);
118
+ function w(e) {
119
+ let t = C(e);
110
120
  return t >= 0 && t > .75;
111
121
  }
112
- function b(t, n, r, i, a) {
122
+ function T(t, n, r, i, a) {
113
123
  if (!n && !r) return t;
114
- let o = n && i !== void 0 ? e(i, "text") : "", s = r && a !== void 0 ? e(a, "bg") : "", c = [n ? `color: ${o}` : "", h(r, n, s)].filter(Boolean).join("; ");
124
+ let o = n && i !== void 0 ? e(i, "text") : "", s = r && a !== void 0 ? e(a, "bg") : "", c = [n ? `color: ${o}` : "", b(r, n, s)].filter(Boolean).join("; ");
115
125
  return c ? `<mark style="${c};">${t}</mark>` : t;
116
126
  }
117
- var x = /* @__PURE__ */ new Set([
127
+ var E = /* @__PURE__ */ new Set([
118
128
  "H1",
119
129
  "H2",
120
130
  "H3",
@@ -122,77 +132,77 @@ var x = /* @__PURE__ */ new Set([
122
132
  "H5",
123
133
  "H6"
124
134
  ]);
125
- function S(e) {
135
+ function D(e) {
126
136
  let t = e.parentElement;
127
- return t === null ? !1 : x.has(t.tagName) ? !0 : S(t);
137
+ return t === null ? !1 : E.has(t.tagName) ? !0 : D(t);
128
138
  }
129
- function C(e, t) {
130
- let n = e.getAttribute("style") ?? "", i = /font-weight\s*:\s*(700|bold)/i.test(n) && !S(e), a = /font-style\s*:\s*italic/i.test(n), o = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), s = /background-color\s*:\s*([^;]+)/i.exec(n), c = o?.[1]?.trim(), l = s?.[1]?.trim(), u = !(c !== void 0 && _(e)) && (t ? c !== void 0 && !g(c) : c !== void 0 && !g(c) && !y(c)), d = l !== void 0 && !r(l);
139
+ function O(e, t) {
140
+ let n = e.getAttribute("style") ?? "", i = /font-weight\s*:\s*(700|bold)/i.test(n) && !D(e), a = /font-style\s*:\s*italic/i.test(n), o = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), s = /background-color\s*:\s*([^;]+)/i.exec(n), c = o?.[1]?.trim(), l = s?.[1]?.trim(), u = !(c !== void 0 && S(e)) && (t ? c !== void 0 && !x(c) : c !== void 0 && !x(c) && !w(c)), d = l !== void 0 && !r(l);
131
141
  if (!i && !a && !u && !d) return null;
132
- let f = b(e.innerHTML, u, d, c, l), p = a ? `<i>${f}</i>` : f;
142
+ let f = T(e.innerHTML, u, d, c, l), p = a ? `<i>${f}</i>` : f;
133
143
  return i ? `<b>${p}</b>` : p;
134
144
  }
135
- function w(e, t) {
145
+ function k(e, t) {
136
146
  for (let n of Array.from(e.querySelectorAll("span[style]"))) {
137
- let e = C(n, t);
138
- e !== null && n.replaceWith(document.createRange().createContextualFragment(e));
147
+ let e = O(n, t);
148
+ e !== null && n.replaceWith(n.ownerDocument.createRange().createContextualFragment(e));
139
149
  }
140
- t && T(e);
150
+ t && A(e);
141
151
  }
142
- function T(t) {
152
+ function A(t) {
143
153
  for (let n of Array.from(t.querySelectorAll("a[style]"))) {
144
154
  let t = n.getAttribute("style") ?? "", r = /background-color\s*:\s*([^;]+)/i.exec(t)?.[1]?.trim(), i = r !== void 0 && r !== "transparent" && r !== "inherit", a = n;
145
155
  a.style.removeProperty("color"), i && (a.innerHTML = `<mark style="background-color: ${e(r, "bg")};">${a.innerHTML}</mark>`, a.style.removeProperty("background-color"));
146
156
  }
147
157
  }
148
- function E(e) {
158
+ function j(e) {
149
159
  return Array.from(e.querySelectorAll("tr")).filter((t) => t.closest("table") === e).map((e) => Array.from(e.children).filter((e) => e.tagName === "TD" || e.tagName === "TH"));
150
160
  }
151
- function D(e) {
161
+ function M(e) {
152
162
  if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
153
163
  if (t.parentElement?.closest("table") !== null) continue;
154
- let e = E(t);
164
+ let e = j(t);
155
165
  e.length === 0 || e.some((e) => e.length !== 1) || (e.length === 1 || t.querySelector("img") !== null) && t.replaceWith(...e.flatMap(([e]) => Array.from(e.childNodes)));
156
166
  }
157
167
  }
158
- function O(e) {
168
+ function N(e) {
159
169
  if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
160
170
  if (t.parentElement?.closest("table") !== null) continue;
161
- let e = E(t);
171
+ let e = j(t);
162
172
  if (e.length === 0) continue;
163
173
  let n = e[0].length;
164
174
  if (!e.every((e) => e.length === n)) continue;
165
175
  let r = e.length === 1 && (n === 2 || n === 3), i = e.length > 1 && n === 2 && t.querySelector("img") !== null;
166
- (r || i) && t.setAttribute(o, "");
176
+ (r || i) && t.setAttribute(c, "");
167
177
  }
168
178
  }
169
- function k(e) {
179
+ function P(e) {
170
180
  return e.children.length === 0 && (e.textContent ?? "").replace(/\s/g, "") === "";
171
181
  }
172
- function A(e) {
173
- if (k(e)) {
182
+ function F(e) {
183
+ if (P(e)) {
174
184
  e.remove();
175
185
  return;
176
186
  }
177
- let t = document.createRange().createContextualFragment(e.innerHTML + "<br>");
187
+ let t = e.ownerDocument.createRange().createContextualFragment(e.innerHTML + "<br>");
178
188
  e.replaceWith(t);
179
189
  }
180
- function j(e) {
190
+ function I(e) {
181
191
  for (let t of Array.from(e.querySelectorAll("td, th"))) {
182
192
  let e = t.querySelectorAll("p");
183
- e.length !== 0 && (Array.from(e).forEach(A), t.innerHTML = t.innerHTML.replace(/(<br\s*\/?>|\s)+$/i, ""));
193
+ e.length !== 0 && (Array.from(e).forEach(F), t.innerHTML = d(t.innerHTML));
184
194
  }
185
195
  }
186
196
  //#endregion
187
197
  //#region src/cli/commands/convert-gdocs/index.ts
188
- function M(e) {
189
- let t = s(e), r = new DOMParser().parseFromString(t, "text/html").body;
198
+ function L(e) {
199
+ let t = f(e), r = new DOMParser().parseFromString(t, "text/html").body;
190
200
  i(r), n(r);
191
201
  let o = {
192
- version: "1.11.0",
202
+ version: "1.14.0",
193
203
  blocks: a(r)
194
204
  };
195
205
  return JSON.stringify(o);
196
206
  }
197
207
  //#endregion
198
- export { M as convertGdocs };
208
+ export { L as convertGdocs };
@@ -4,7 +4,7 @@ function i(i) {
4
4
  let a = new DOMParser().parseFromString(i, "text/html").body;
5
5
  n(a), t(a), e(a);
6
6
  let o = {
7
- version: "1.11.0",
7
+ version: "1.14.0",
8
8
  blocks: r(a)
9
9
  };
10
10
  return JSON.stringify(o);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloklabs/cli",
3
- "version": "1.12.0",
3
+ "version": "1.14.0",
4
4
  "description": "CLI tools for Blok — convert HTML to Blok JSON, generate migration guides",
5
5
  "bin": {
6
6
  "blok-cli": "bin/blok-cli.mjs"
@@ -1,198 +0,0 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "./block-builder-Dc6PL7RK.mjs";
2
- //#region src/components/modules/paste/constants.ts
3
- var o = "data-blok-columns-candidate";
4
- //#endregion
5
- //#region src/components/modules/paste/google-docs-preprocessor.ts
6
- function s(e) {
7
- let n = document.createElement("div");
8
- n.innerHTML = e;
9
- let r = m(n);
10
- return w(n, r), r && D(n), j(n), r && (O(n), p(n)), t(n), n.innerHTML;
11
- }
12
- function c(e, t) {
13
- let n = e.parentElement;
14
- return n === null ? null : n === t ? e : c(n, t);
15
- }
16
- function l(e, t, n) {
17
- let r = e.cloneNode(!1), i = [];
18
- for (let n of Array.from(e.childNodes)) {
19
- if (n === t) break;
20
- i.push(n);
21
- }
22
- return i.forEach((e) => r.appendChild(e)), n !== null && r.appendChild(n), r.childNodes.length > 0 ? r : null;
23
- }
24
- function u(e, t, n) {
25
- let r = e.cloneNode(!1), i = Array.from(e.childNodes), a = i.findIndex((e) => e === t), o = i.slice(a + 1);
26
- return n !== null && r.appendChild(n), o.forEach((e) => r.appendChild(e)), r.childNodes.length > 0 ? r : null;
27
- }
28
- function d(e, t) {
29
- let n = (e, r, i) => {
30
- if (e === t) return {
31
- before: r,
32
- after: i
33
- };
34
- let a = e.parentElement;
35
- if (a === null) return {
36
- before: r,
37
- after: i
38
- };
39
- let o = l(a, e, r), s = u(a, e, i);
40
- return n(a, o, s);
41
- };
42
- return n(e, null, null);
43
- }
44
- function f(e, t) {
45
- let n = e.parentElement;
46
- return n === null || n === t ? !1 : n.tagName === "TABLE" || f(n, t);
47
- }
48
- function p(e) {
49
- let t = Array.from(e.querySelectorAll("img"));
50
- for (let n of t) {
51
- if (f(n, e)) continue;
52
- let t = c(n, e);
53
- if (!t) continue;
54
- let { before: r, after: i } = d(n, t), a = document.createDocumentFragment();
55
- r && a.appendChild(r), a.appendChild(n), i && a.appendChild(i), t.replaceWith(a);
56
- }
57
- }
58
- function m(e) {
59
- let t = e.querySelector("b[id^=\"docs-internal-guid-\"]");
60
- if (!t) return !1;
61
- let n = document.createDocumentFragment();
62
- for (; t.firstChild;) n.appendChild(t.firstChild);
63
- return t.replaceWith(n), !0;
64
- }
65
- function h(e, t, n) {
66
- return e ? `background-color: ${n}` : t ? "background-color: transparent" : "";
67
- }
68
- function g(e) {
69
- let t = e.replace(/\s/g, "");
70
- return t === "rgb(0,0,0)" || t === "#000000";
71
- }
72
- function _(e) {
73
- if (e.closest("a") !== null) return !0;
74
- let t = e.querySelector("a");
75
- return t !== null && t.textContent?.trim() === e.textContent?.trim();
76
- }
77
- function v(e) {
78
- let t = e.replace(/\s/g, "").toLowerCase(), n = /^rgba?\((\d+),(\d+),(\d+)(?:,[\d.]+)?\)$/.exec(t);
79
- if (n) {
80
- let e = parseInt(n[1], 10) / 255, t = parseInt(n[2], 10) / 255, r = parseInt(n[3], 10) / 255;
81
- return .2126 * e + .7152 * t + .0722 * r;
82
- }
83
- let r = /^hsla?\(([\d.]+),([\d.]+)%,([\d.]+)%(?:,[\d.]+)?\)$/.exec(t);
84
- if (r) {
85
- let e = parseFloat(r[1]) / 360, t = parseFloat(r[2]) / 100, n = parseFloat(r[3]) / 100;
86
- if (t === 0) return .2126 * n + .7152 * n + .0722 * n;
87
- let i = n < .5 ? n * (1 + t) : n + t - n * t, a = 2 * n - i, o = (e) => {
88
- let t = e < 0 ? e + 1 : e > 1 ? e - 1 : e;
89
- return t < 1 / 6 ? a + (i - a) * 6 * t : t < 1 / 2 ? i : t < 2 / 3 ? a + (i - a) * (2 / 3 - t) * 6 : a;
90
- }, s = o(e + 1 / 3), c = o(e), l = o(e - 1 / 3);
91
- return .2126 * s + .7152 * c + .0722 * l;
92
- }
93
- let i = /^#([0-9a-f]{6}|[0-9a-f]{3})$/.exec(t);
94
- if (i) {
95
- let e = i[1], t = e.length === 3 ? [
96
- e[0] + e[0],
97
- e[1] + e[1],
98
- e[2] + e[2]
99
- ] : [
100
- e.substring(0, 2),
101
- e.substring(2, 4),
102
- e.substring(4, 6)
103
- ], n = parseInt(t[0], 16) / 255, r = parseInt(t[1], 16) / 255, a = parseInt(t[2], 16) / 255;
104
- return .2126 * n + .7152 * r + .0722 * a;
105
- }
106
- return -1;
107
- }
108
- function y(e) {
109
- let t = v(e);
110
- return t >= 0 && t > .75;
111
- }
112
- function b(t, n, r, i, a) {
113
- if (!n && !r) return t;
114
- let o = n && i !== void 0 ? e(i, "text") : "", s = r && a !== void 0 ? e(a, "bg") : "", c = [n ? `color: ${o}` : "", h(r, n, s)].filter(Boolean).join("; ");
115
- return c ? `<mark style="${c};">${t}</mark>` : t;
116
- }
117
- var x = /* @__PURE__ */ new Set([
118
- "H1",
119
- "H2",
120
- "H3",
121
- "H4",
122
- "H5",
123
- "H6"
124
- ]);
125
- function S(e) {
126
- let t = e.parentElement;
127
- return t === null ? !1 : x.has(t.tagName) ? !0 : S(t);
128
- }
129
- function C(e, t) {
130
- let n = e.getAttribute("style") ?? "", i = /font-weight\s*:\s*(700|bold)/i.test(n) && !S(e), a = /font-style\s*:\s*italic/i.test(n), o = /(?<![a-z-])color\s*:\s*([^;]+)/i.exec(n), s = /background-color\s*:\s*([^;]+)/i.exec(n), c = o?.[1]?.trim(), l = s?.[1]?.trim(), u = !(c !== void 0 && _(e)) && (t ? c !== void 0 && !g(c) : c !== void 0 && !g(c) && !y(c)), d = l !== void 0 && !r(l);
131
- if (!i && !a && !u && !d) return null;
132
- let f = b(e.innerHTML, u, d, c, l), p = a ? `<i>${f}</i>` : f;
133
- return i ? `<b>${p}</b>` : p;
134
- }
135
- function w(e, t) {
136
- for (let n of Array.from(e.querySelectorAll("span[style]"))) {
137
- let e = C(n, t);
138
- e !== null && n.replaceWith(document.createRange().createContextualFragment(e));
139
- }
140
- t && T(e);
141
- }
142
- function T(t) {
143
- for (let n of Array.from(t.querySelectorAll("a[style]"))) {
144
- let t = n.getAttribute("style") ?? "", r = /background-color\s*:\s*([^;]+)/i.exec(t)?.[1]?.trim(), i = r !== void 0 && r !== "transparent" && r !== "inherit", a = n;
145
- a.style.removeProperty("color"), i && (a.innerHTML = `<mark style="background-color: ${e(r, "bg")};">${a.innerHTML}</mark>`, a.style.removeProperty("background-color"));
146
- }
147
- }
148
- function E(e) {
149
- return Array.from(e.querySelectorAll("tr")).filter((t) => t.closest("table") === e).map((e) => Array.from(e.children).filter((e) => e.tagName === "TD" || e.tagName === "TH"));
150
- }
151
- function D(e) {
152
- if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
153
- if (t.parentElement?.closest("table") !== null) continue;
154
- let e = E(t);
155
- e.length === 0 || e.some((e) => e.length !== 1) || (e.length === 1 || t.querySelector("img") !== null) && t.replaceWith(...e.flatMap(([e]) => Array.from(e.childNodes)));
156
- }
157
- }
158
- function O(e) {
159
- if (e.querySelector("google-sheets-html-origin") === null) for (let t of Array.from(e.querySelectorAll("table"))) {
160
- if (t.parentElement?.closest("table") !== null) continue;
161
- let e = E(t);
162
- if (e.length === 0) continue;
163
- let n = e[0].length;
164
- if (!e.every((e) => e.length === n)) continue;
165
- let r = e.length === 1 && (n === 2 || n === 3), i = e.length > 1 && n === 2 && t.querySelector("img") !== null;
166
- (r || i) && t.setAttribute(o, "");
167
- }
168
- }
169
- function k(e) {
170
- return e.children.length === 0 && (e.textContent ?? "").replace(/\s/g, "") === "";
171
- }
172
- function A(e) {
173
- if (k(e)) {
174
- e.remove();
175
- return;
176
- }
177
- let t = document.createRange().createContextualFragment(e.innerHTML + "<br>");
178
- e.replaceWith(t);
179
- }
180
- function j(e) {
181
- for (let t of Array.from(e.querySelectorAll("td, th"))) {
182
- let e = t.querySelectorAll("p");
183
- e.length !== 0 && (Array.from(e).forEach(A), t.innerHTML = t.innerHTML.replace(/(<br\s*\/?>|\s)+$/i, ""));
184
- }
185
- }
186
- //#endregion
187
- //#region src/cli/commands/convert-gdocs/index.ts
188
- function M(e) {
189
- let t = s(e), r = new DOMParser().parseFromString(t, "text/html").body;
190
- i(r), n(r);
191
- let o = {
192
- version: "1.12.0",
193
- blocks: a(r)
194
- };
195
- return JSON.stringify(o);
196
- }
197
- //#endregion
198
- export { M as convertGdocs };
@@ -1,13 +0,0 @@
1
- import { i as e, n as t, r as n, t as r } from "./block-builder-Dc6PL7RK.mjs";
2
- //#region src/cli/commands/convert-html/index.ts
3
- function i(i) {
4
- let a = new DOMParser().parseFromString(i, "text/html").body;
5
- n(a), t(a), e(a);
6
- let o = {
7
- version: "1.12.0",
8
- blocks: r(a)
9
- };
10
- return JSON.stringify(o);
11
- }
12
- //#endregion
13
- export { i as convertHtml };