@paroicms/quill-editor-plugin 1.33.1 → 1.35.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.
@@ -1,6 +1,6 @@
1
1
  import { isObj, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
2
2
  import { isJsonFieldValue } from "@paroicms/public-anywhere-lib";
3
- import { escapeHtml, resolveModuleDirectory, } from "@paroicms/public-server-lib";
3
+ import { escapeHtml, makeStylesheetLinkAsyncTag, resolveModuleDirectory, } from "@paroicms/public-server-lib";
4
4
  import { readFileSync } from "node:fs";
5
5
  import { dirname, join } from "node:path";
6
6
  import { convertQuillDeltaToHtml, convertQuillDeltaToPlainText } from "./quill-delta.js";
@@ -11,8 +11,8 @@ const plugin = {
11
11
  version,
12
12
  slug: "quill-editor",
13
13
  siteInit(service) {
14
- service.setPublicAssetsDirectory(join(packageDir, "public-front", "dist"));
15
- service.setBoAssetsDirectory(join(packageDir, "bo-front", "dist"));
14
+ service.setPublicAssetsDirectory(join(packageDir, "frontend", "dist"));
15
+ service.setAdminUiAssetsDirectory(join(packageDir, "admin-ui-plugin", "dist"));
16
16
  service.registerSiteSchemaLibrary(join(packageDir, "site-schema-lib"));
17
17
  service.registerFieldPreprocessor((service, value, options) => {
18
18
  if (!isJsonFieldValue(value))
@@ -22,28 +22,52 @@ const plugin = {
22
22
  const delta = value.j;
23
23
  if (options.outputType === "plainText")
24
24
  return convertQuillDeltaToPlainText(service, delta);
25
+ service.setRenderState("paQuillEditor:html", true);
25
26
  return convertQuillDeltaToHtml(service, delta, options);
26
27
  });
27
- service.addHeadTag(`<link rel="stylesheet" href="${escapeHtml(`${service.pluginAssetsUrl}/public-front-plugin.css`)}">`, `<script type="module" src="${escapeHtml(`${service.pluginAssetsUrl}/public-front-plugin.mjs`)}"></script>`);
28
- if (service.configuration.backOffice?.code) {
29
- service.addHeadTag(`<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/styles/default.min.css">`, `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/highlight.min.js"></script>`, `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/typescript.min.js"></script>`, `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/javascript.min.js"></script>`, `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/xml.min.js"></script>`, `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/json.min.js"></script>`, `<script>
30
- hljs.highlightAll();
28
+ service.registerHeadTags(({ state }) => {
29
+ if (!state.get("paQuillEditor:html"))
30
+ return;
31
+ const tags = [
32
+ makeStylesheetLinkAsyncTag(`${service.pluginAssetsUrl}/quill-editor-plugin.css`),
33
+ ];
34
+ if (state.get("paQuillEditor:zoomable")) {
35
+ tags.push(`<script type="module" src="${escapeHtml(`${service.pluginAssetsUrl}/quill-editor-plugin.mjs`)}" async></script>`);
36
+ }
37
+ return tags;
38
+ });
39
+ if (service.configuration.adminUi?.code) {
40
+ service.registerHeadTags(({ state }) => {
41
+ if (!state.get("paQuillEditor:html"))
42
+ return;
43
+ return [
44
+ makeStylesheetLinkAsyncTag("https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/styles/default.min.css"),
45
+ `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/highlight.min.js" defer></script>`,
46
+ `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/typescript.min.js" defer></script>`,
47
+ `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/javascript.min.js" defer></script>`,
48
+ `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/xml.min.js" defer></script>`,
49
+ `<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.10.0/build/languages/json.min.js" defer></script>`,
50
+ `<script>
31
51
  document.addEventListener("DOMContentLoaded", () => {
52
+ hljs.highlightAll();
32
53
  const list = document.querySelectorAll("pre[data-language]");
33
54
  for (const el of list) {
34
55
  el.classList.add(\`language-\${el.dataset.language}\`);
35
56
  hljs.highlightElement(el);
36
57
  }
37
58
  });
38
- </script>`);
59
+ </script>`,
60
+ ];
61
+ });
39
62
  }
40
63
  service.registerLiquidFilter("imageZoomUrl", (service) => {
41
64
  service.pluginService.logger.warn(`"imageZoomUrl" filter is deprecated, use instead: <img ... {{ media | zoomable }}>`);
42
65
  return "";
43
66
  });
44
- service.registerLiquidFilter("zoomable", async (_service, val) => {
67
+ service.registerLiquidFilter("zoomable", async (service, val) => {
45
68
  if (!val)
46
69
  return "";
70
+ service.setRenderState("paQuillEditor:zoomable", true);
47
71
  const mediaId = typeof val === "string"
48
72
  ? val
49
73
  : val && typeof val === "object" && "mediaId" in val && typeof val.mediaId === "string"
@@ -66,6 +66,7 @@ async function mediaBlotProcessing(service, obj, options) {
66
66
  const figureAttributes = [`class="Fig${value.align ? ` ${escapeHtml(value.align)}` : ""}"`];
67
67
  if (value.zoomable) {
68
68
  figureAttributes.push(`data-zoomable="${escapeHtml(media.mediaId)}"`);
69
+ service.setRenderState("paQuillEditor:zoomable", true);
69
70
  }
70
71
  const imgTagAttributes = [
71
72
  `class="Fig-media"`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paroicms/quill-editor-plugin",
3
- "version": "1.33.1",
3
+ "version": "1.35.0",
4
4
  "description": "Quill Editor plugin for ParoiCMS",
5
5
  "keywords": [
6
6
  "paroicms",
@@ -16,18 +16,18 @@
16
16
  "author": "Paroi Team",
17
17
  "license": "MIT",
18
18
  "scripts": {
19
- "dev:bo": "(cd bo-front && vite)",
20
- "build": "npm run build:backend && npm run build:bo && npm run build:public",
19
+ "dev:admin-ui": "(cd admin-ui-plugin && vite)",
20
+ "build": "npm run build:backend && npm run build:admin-ui && npm run build:public",
21
21
  "build:backend": "(cd backend && tsc)",
22
22
  "build:backend:watch": "(cd backend && tsc --watch --preserveWatchOutput)",
23
- "build:bo": "(cd bo-front && tsc && vite build && npm run minify:bo)",
24
- "minify:bo": "terser bo-front/dist/bo-plugin.mjs --output bo-front/dist/bo-plugin.mjs",
25
- "build:public": "(cd public-front && tsc && vite build && npm run minify:public)",
26
- "minify:public": "terser public-front/dist/public-front-plugin.mjs --output public-front/dist/public-front-plugin.mjs",
27
- "build:public:watch": "(cd public-front && tsc && vite build --watch)",
28
- "build:bo:watch": "(cd bo-front && vite build --watch)",
29
- "bo:tsc": "(cd bo-front && tsc)",
30
- "clear": "rimraf backend/dist/* bo-front/dist/*"
23
+ "build:admin-ui": "(cd admin-ui-plugin && tsc && vite build && npm run minify:admin-ui)",
24
+ "minify:admin-ui": "terser admin-ui-plugin/dist/admin-ui-plugin.mjs --output admin-ui-plugin/dist/admin-ui-plugin.mjs",
25
+ "build:public": "(cd frontend && tsc && vite build && npm run minify:public)",
26
+ "minify:public": "terser frontend/dist/quill-editor-plugin.mjs --output frontend/dist/quill-editor-plugin.mjs",
27
+ "build:public:watch": "(cd frontend && tsc && vite build --watch)",
28
+ "build:admin-ui:watch": "(cd admin-ui-plugin && vite build --watch)",
29
+ "bo:tsc": "(cd admin-ui-plugin && tsc)",
30
+ "clear": "rimraf backend/dist/* frontend/dist/* admin-ui-plugin/dist/*"
31
31
  },
32
32
  "dependencies": {
33
33
  "@paroi/quill-delta-to-html": "~0.12.3",
@@ -38,9 +38,9 @@
38
38
  "@paroicms/public-server-lib": "0"
39
39
  },
40
40
  "devDependencies": {
41
- "@paroicms/public-anywhere-lib": "0.23.1",
42
- "@paroicms/public-bo-lib": "0.24.1",
43
- "@paroicms/public-server-lib": "0.34.1",
41
+ "@paroicms/public-anywhere-lib": "0.24.0",
42
+ "@paroicms/public-admin-ui-lib": "0.25.0",
43
+ "@paroicms/public-server-lib": "0.36.0",
44
44
  "@solid-primitives/i18n": "~2.2.1",
45
45
  "@types/node": "~24.0.1",
46
46
  "highlight.js": "~11.11.1",
@@ -60,8 +60,8 @@
60
60
  "types": "types/html-editor-public-types.d.ts",
61
61
  "files": [
62
62
  "backend/dist",
63
- "public-front/dist",
64
- "bo-front/dist",
63
+ "frontend/dist",
64
+ "admin-ui-plugin/dist",
65
65
  "site-schema-lib",
66
66
  "types"
67
67
  ]
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "8",
2
+ "ParoiCMSSiteSchemaFormatVersion": "9",
3
3
  "languages": ["en", "fr"],
4
4
  "fieldTypes": [
5
5
  {
@@ -9,7 +9,7 @@
9
9
  "dataType": "json",
10
10
  "renderAs": "html",
11
11
  "useAsExcerpt": 1,
12
- "backOffice": {
12
+ "adminUi": {
13
13
  "editorRows": 4
14
14
  },
15
15
  "plugin": "@paroicms/quill-editor-plugin"
@@ -32,7 +32,7 @@
32
32
  "dataType": "json",
33
33
  "renderAs": "html",
34
34
  "useAsExcerpt": 1,
35
- "backOffice": {
35
+ "adminUi": {
36
36
  "editorRows": 8
37
37
  },
38
38
  "plugin": "@paroicms/quill-editor-plugin"
@@ -43,7 +43,7 @@
43
43
  "storedAs": "text",
44
44
  "dataType": "json",
45
45
  "renderAs": "html",
46
- "backOffice": {
46
+ "adminUi": {
47
47
  "editorRows": 4
48
48
  },
49
49
  "plugin": "@paroicms/quill-editor-plugin"
File without changes