@silexlabs/silex 3.0.0-alpha.100
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/.env.default +19 -0
- package/.silex.js +37 -0
- package/LICENSE +661 -0
- package/README.md +96 -0
- package/dist/client/client/api.d.ts +85 -0
- package/dist/client/client/assetUrl.d.ts +51 -0
- package/dist/client/client/config.d.ts +58 -0
- package/dist/client/client/events.d.ts +14 -0
- package/dist/client/client/expose.d.ts +8 -0
- package/dist/client/client/grapesjs/LoginDialog.d.ts +15 -0
- package/dist/client/client/grapesjs/PublicationManager.d.ts +72 -0
- package/dist/client/client/grapesjs/PublicationUi.d.ts +62 -0
- package/dist/client/client/grapesjs/blocks.d.ts +1 -0
- package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
- package/dist/client/client/grapesjs/footer.d.ts +2 -0
- package/dist/client/client/grapesjs/index.d.ts +5 -0
- package/dist/client/client/grapesjs/internal-links.d.ts +1 -0
- package/dist/client/client/grapesjs/new-page-dialog.d.ts +2 -0
- package/dist/client/client/grapesjs/openImport.d.ts +9 -0
- package/dist/client/client/grapesjs/page-panel.d.ts +3 -0
- package/dist/client/client/grapesjs/project-bar.d.ts +1 -0
- package/dist/client/client/grapesjs/rich-text.d.ts +1 -0
- package/dist/client/client/grapesjs/semantic.d.ts +1 -0
- package/dist/client/client/grapesjs/settings.d.ts +2 -0
- package/dist/client/client/grapesjs/storage.d.ts +1 -0
- package/dist/client/client/grapesjs/symbolDialogs.d.ts +3 -0
- package/dist/client/client/index.d.ts +5 -0
- package/dist/client/client/publication-transformers.d.ts +41 -0
- package/dist/client/client/utils.d.ts +2 -0
- package/dist/client/constants.d.ts +29 -0
- package/dist/client/css/admin.css +4491 -0
- package/dist/client/index.html +9 -0
- package/dist/client/js/main.js +321 -0
- package/dist/client/js/main.js.LICENSE.txt +24 -0
- package/dist/client/page.d.ts +2 -0
- package/dist/client/types.d.ts +334 -0
- package/dist/plugins/client/client/api.d.ts +85 -0
- package/dist/plugins/client/client/api.js +114 -0
- package/dist/plugins/client/client/api.js.map +1 -0
- package/dist/plugins/client/client/assetUrl.d.ts +51 -0
- package/dist/plugins/client/client/assetUrl.js +224 -0
- package/dist/plugins/client/client/assetUrl.js.map +1 -0
- package/dist/plugins/client/client/config.d.ts +58 -0
- package/dist/plugins/client/client/config.js +90 -0
- package/dist/plugins/client/client/config.js.map +1 -0
- package/dist/plugins/client/client/events.d.ts +14 -0
- package/dist/plugins/client/client/events.js +34 -0
- package/dist/plugins/client/client/events.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/LoginDialog.d.ts +15 -0
- package/dist/plugins/client/client/grapesjs/LoginDialog.js +195 -0
- package/dist/plugins/client/client/grapesjs/LoginDialog.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/PublicationManager.d.ts +72 -0
- package/dist/plugins/client/client/grapesjs/PublicationManager.js +356 -0
- package/dist/plugins/client/client/grapesjs/PublicationManager.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/PublicationUi.d.ts +62 -0
- package/dist/plugins/client/client/grapesjs/PublicationUi.js +336 -0
- package/dist/plugins/client/client/grapesjs/PublicationUi.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/blocks.d.ts +1 -0
- package/dist/plugins/client/client/grapesjs/blocks.js +37 -0
- package/dist/plugins/client/client/grapesjs/blocks.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/breadcrumbs.d.ts +1 -0
- package/dist/plugins/client/client/grapesjs/breadcrumbs.js +75 -0
- package/dist/plugins/client/client/grapesjs/breadcrumbs.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/footer.d.ts +2 -0
- package/dist/plugins/client/client/grapesjs/footer.js +28 -0
- package/dist/plugins/client/client/grapesjs/footer.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/index.d.ts +5 -0
- package/dist/plugins/client/client/grapesjs/index.js +313 -0
- package/dist/plugins/client/client/grapesjs/index.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/internal-links.d.ts +1 -0
- package/dist/plugins/client/client/grapesjs/internal-links.js +219 -0
- package/dist/plugins/client/client/grapesjs/internal-links.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/new-page-dialog.d.ts +2 -0
- package/dist/plugins/client/client/grapesjs/new-page-dialog.js +83 -0
- package/dist/plugins/client/client/grapesjs/new-page-dialog.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/openImport.d.ts +9 -0
- package/dist/plugins/client/client/grapesjs/openImport.js +74 -0
- package/dist/plugins/client/client/grapesjs/openImport.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/page-panel.d.ts +3 -0
- package/dist/plugins/client/client/grapesjs/page-panel.js +113 -0
- package/dist/plugins/client/client/grapesjs/page-panel.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/project-bar.d.ts +1 -0
- package/dist/plugins/client/client/grapesjs/project-bar.js +104 -0
- package/dist/plugins/client/client/grapesjs/project-bar.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/rich-text.d.ts +1 -0
- package/dist/plugins/client/client/grapesjs/rich-text.js +31 -0
- package/dist/plugins/client/client/grapesjs/rich-text.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/semantic.d.ts +1 -0
- package/dist/plugins/client/client/grapesjs/semantic.js +110 -0
- package/dist/plugins/client/client/grapesjs/semantic.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/settings.d.ts +2 -0
- package/dist/plugins/client/client/grapesjs/settings.js +198 -0
- package/dist/plugins/client/client/grapesjs/settings.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/storage.d.ts +1 -0
- package/dist/plugins/client/client/grapesjs/storage.js +126 -0
- package/dist/plugins/client/client/grapesjs/storage.js.map +1 -0
- package/dist/plugins/client/client/grapesjs/symbolDialogs.d.ts +3 -0
- package/dist/plugins/client/client/grapesjs/symbolDialogs.js +36 -0
- package/dist/plugins/client/client/grapesjs/symbolDialogs.js.map +1 -0
- package/dist/plugins/client/client/publication-transformers.d.ts +41 -0
- package/dist/plugins/client/client/publication-transformers.js +238 -0
- package/dist/plugins/client/client/publication-transformers.js.map +1 -0
- package/dist/plugins/client/client/utils.d.ts +2 -0
- package/dist/plugins/client/client/utils.js +25 -0
- package/dist/plugins/client/client/utils.js.map +1 -0
- package/dist/plugins/client/constants.d.ts +29 -0
- package/dist/plugins/client/constants.js +46 -0
- package/dist/plugins/client/constants.js.map +1 -0
- package/dist/plugins/client/page.d.ts +2 -0
- package/dist/plugins/client/page.js +31 -0
- package/dist/plugins/client/page.js.map +1 -0
- package/dist/plugins/client/plugins/client/11ty.d.ts +17 -0
- package/dist/plugins/client/plugins/client/11ty.js +86 -0
- package/dist/plugins/client/plugins/client/11ty.js.map +1 -0
- package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +2 -0
- package/dist/plugins/client/plugins/client/publicationRenderer.js +170 -0
- package/dist/plugins/client/plugins/client/publicationRenderer.js.map +1 -0
- package/dist/plugins/client/plugins/client/template.d.ts +2 -0
- package/dist/plugins/client/plugins/client/template.js +183 -0
- package/dist/plugins/client/plugins/client/template.js.map +1 -0
- package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
- package/dist/plugins/client/plugins/client/website-info.js +72 -0
- package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
- package/dist/plugins/client/types.d.ts +334 -0
- package/dist/plugins/client/types.js +74 -0
- package/dist/plugins/client/types.js.map +1 -0
- package/dist/plugins/server/constants.d.ts +29 -0
- package/dist/plugins/server/constants.js +49 -0
- package/dist/plugins/server/constants.js.map +1 -0
- package/dist/plugins/server/plugins/server/AuthPlugin.d.ts +1 -0
- package/dist/plugins/server/plugins/server/AuthPlugin.js +40 -0
- package/dist/plugins/server/plugins/server/AuthPlugin.js.map +1 -0
- package/dist/plugins/server/plugins/server/Cache.d.ts +2 -0
- package/dist/plugins/server/plugins/server/Cache.js +32 -0
- package/dist/plugins/server/plugins/server/Cache.js.map +1 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.js +129 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/FtpConnector.d.ts +86 -0
- package/dist/plugins/server/plugins/server/FtpConnector.js +526 -0
- package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +87 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.js +564 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/PublicationOptimizer.d.ts +0 -0
- package/dist/plugins/server/plugins/server/PublicationOptimizer.js +14 -0
- package/dist/plugins/server/plugins/server/PublicationOptimizer.js.map +1 -0
- package/dist/plugins/server/plugins/server/SslPlugin.d.ts +1 -0
- package/dist/plugins/server/plugins/server/SslPlugin.js +86 -0
- package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -0
- package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +1 -0
- package/dist/plugins/server/plugins/server/StaticPlugin.js +78 -0
- package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -0
- package/dist/plugins/server/server/config.d.ts +59 -0
- package/dist/plugins/server/server/config.js +181 -0
- package/dist/plugins/server/server/config.js.map +1 -0
- package/dist/plugins/server/server/connectors/FsHosting.d.ts +13 -0
- package/dist/plugins/server/server/connectors/FsHosting.js +54 -0
- package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -0
- package/dist/plugins/server/server/connectors/FsStorage.d.ts +43 -0
- package/dist/plugins/server/server/connectors/FsStorage.js +257 -0
- package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -0
- package/dist/plugins/server/server/connectors/connectors.d.ts +87 -0
- package/dist/plugins/server/server/connectors/connectors.js +127 -0
- package/dist/plugins/server/server/connectors/connectors.js.map +1 -0
- package/dist/plugins/server/server/events.d.ts +26 -0
- package/dist/plugins/server/server/events.js +31 -0
- package/dist/plugins/server/server/events.js.map +1 -0
- package/dist/plugins/server/server/jobs.d.ts +12 -0
- package/dist/plugins/server/server/jobs.js +77 -0
- package/dist/plugins/server/server/jobs.js.map +1 -0
- package/dist/plugins/server/server/utils/validation.d.ts +7 -0
- package/dist/plugins/server/server/utils/validation.js +38 -0
- package/dist/plugins/server/server/utils/validation.js.map +1 -0
- package/dist/plugins/server/types.d.ts +334 -0
- package/dist/plugins/server/types.js +78 -0
- package/dist/plugins/server/types.js.map +1 -0
- package/dist/server/constants.js +29 -0
- package/dist/server/plugins/server/Cache.js +15 -0
- package/dist/server/server/api/api.js +20 -0
- package/dist/server/server/api/connectorApi.js +216 -0
- package/dist/server/server/api/publicationApi.js +108 -0
- package/dist/server/server/api/websiteApi.js +296 -0
- package/dist/server/server/cli.js +68 -0
- package/dist/server/server/config.js +120 -0
- package/dist/server/server/connectors/FsHosting.js +35 -0
- package/dist/server/server/connectors/FsStorage.js +225 -0
- package/dist/server/server/connectors/connectors.js +89 -0
- package/dist/server/server/events.js +14 -0
- package/dist/server/server/expose.js +27 -0
- package/dist/server/server/express.js +47 -0
- package/dist/server/server/index.js +90 -0
- package/dist/server/server/jobs.js +48 -0
- package/dist/server/server/utils/validation.js +15 -0
- package/dist/server/types.js +34 -0
- package/package.json +209 -0
- package/public/assets/container.png +0 -0
- package/public/assets/favicon.png +0 -0
- package/public/assets/logo-silex-small.png +0 -0
- package/public/robots.txt +2 -0
- package/public/silex.js +24 -0
- package/src/css/_mixins.scss +8 -0
- package/src/css/_variables.scss +33 -0
- package/src/css/dialog.scss +41 -0
- package/src/css/footer.scss +12 -0
- package/src/css/grapesjs-light.scss +180 -0
- package/src/css/grapesjs.scss +152 -0
- package/src/css/index.scss +32 -0
- package/src/css/light.scss +7 -0
- package/src/css/loader.scss +12 -0
- package/src/css/page-panel.scss +65 -0
- package/src/css/project-bar.scss +102 -0
- package/src/css/silex.scss +189 -0
- package/src/css/website-info.scss +14 -0
- package/src/html/debug.pug +8 -0
- package/src/html/index.pug +39 -0
- package/src/html/templates/includes.pug +1 -0
- package/src/html/templates/workspace.pug +2 -0
- package/src/ts/client/api.ts +144 -0
- package/src/ts/client/assetUrl.test.ts +125 -0
- package/src/ts/client/assetUrl.ts +235 -0
- package/src/ts/client/config.ts +105 -0
- package/src/ts/client/events.ts +34 -0
- package/src/ts/client/expose.ts +30 -0
- package/src/ts/client/grapesjs/LoginDialog.ts +204 -0
- package/src/ts/client/grapesjs/PublicationManager.ts +370 -0
- package/src/ts/client/grapesjs/PublicationUi.ts +342 -0
- package/src/ts/client/grapesjs/blocks.ts +37 -0
- package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
- package/src/ts/client/grapesjs/eleventy.ts +47 -0
- package/src/ts/client/grapesjs/footer.ts +27 -0
- package/src/ts/client/grapesjs/index.ts +335 -0
- package/src/ts/client/grapesjs/internal-links.test.ts +105 -0
- package/src/ts/client/grapesjs/internal-links.ts +225 -0
- package/src/ts/client/grapesjs/new-page-dialog.ts +90 -0
- package/src/ts/client/grapesjs/openImport.ts +81 -0
- package/src/ts/client/grapesjs/page-panel.ts +118 -0
- package/src/ts/client/grapesjs/project-bar.ts +107 -0
- package/src/ts/client/grapesjs/rich-text.ts +33 -0
- package/src/ts/client/grapesjs/semantic.ts +114 -0
- package/src/ts/client/grapesjs/settings.ts +208 -0
- package/src/ts/client/grapesjs/storage.ts +121 -0
- package/src/ts/client/grapesjs/symbolDialogs.ts +38 -0
- package/src/ts/client/index.ts +98 -0
- package/src/ts/client/publication-transformers.test.ts +199 -0
- package/src/ts/client/publication-transformers.ts +263 -0
- package/src/ts/client/utils.ts +28 -0
- package/src/ts/constants.ts +52 -0
- package/src/ts/externs.ts +18 -0
- package/src/ts/page.ts +31 -0
- package/src/ts/plugins/client/11ty.ts +104 -0
- package/src/ts/plugins/client/publicationRenderer.ts +174 -0
- package/src/ts/plugins/client/template.ts +192 -0
- package/src/ts/plugins/client/website-info.ts +84 -0
- package/src/ts/plugins/server/AuthPlugin.ts +38 -0
- package/src/ts/plugins/server/Cache.ts +28 -0
- package/src/ts/plugins/server/DownloadConnector.ts +148 -0
- package/src/ts/plugins/server/FtpConnector.test.ts +82 -0
- package/src/ts/plugins/server/FtpConnector.ts +609 -0
- package/src/ts/plugins/server/GitlabConnector.ts +644 -0
- package/src/ts/plugins/server/PublicationOptimizer.ts +14 -0
- package/src/ts/plugins/server/SslPlugin.ts +84 -0
- package/src/ts/plugins/server/StaticPlugin.ts +79 -0
- package/src/ts/server/api/api.ts +19 -0
- package/src/ts/server/api/connectorApi.ts +345 -0
- package/src/ts/server/api/publicationApi.ts +159 -0
- package/src/ts/server/api/websiteApi.ts +432 -0
- package/src/ts/server/cli.ts +65 -0
- package/src/ts/server/config.ts +189 -0
- package/src/ts/server/connectors/FsHosting.ts +60 -0
- package/src/ts/server/connectors/FsStorage.test.ts +51 -0
- package/src/ts/server/connectors/FsStorage.ts +261 -0
- package/src/ts/server/connectors/connectors.ts +203 -0
- package/src/ts/server/events.ts +37 -0
- package/src/ts/server/expose.ts +19 -0
- package/src/ts/server/express.ts +70 -0
- package/src/ts/server/index.ts +100 -0
- package/src/ts/server/jobs.test.ts +75 -0
- package/src/ts/server/jobs.ts +87 -0
- package/src/ts/server/utils/BackwardCompat.ts +552 -0
- package/src/ts/server/utils/validation.ts +34 -0
- package/src/ts/types.ts +339 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Silex website builder, free/libre no-code tool for makers.
|
|
3
|
+
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
8
|
+
*
|
|
9
|
+
* This program is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
* GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated
|
|
19
|
+
* This plugin is deprecated. Use the publication renderer plugin instead.
|
|
20
|
+
*/
|
|
21
|
+
console.warn('This plugin is deprecated. Use the publication renderer plugin instead.');
|
|
22
|
+
throw 'This plugin is deprecated. Use the publication renderer plugin instead.';
|
|
23
|
+
/* Usage:
|
|
24
|
+
import publicationRenderer from 'https://unpkg.com/@silexlabs/silex@latest/dist/plugins/client/plugins/client/publicationRenderer'
|
|
25
|
+
await config.addPlugin(publicationRenderer, {
|
|
26
|
+
css: {
|
|
27
|
+
frontMatter: true,
|
|
28
|
+
ext: '.css.liquid',
|
|
29
|
+
path: '../../../pages'
|
|
30
|
+
},
|
|
31
|
+
html: {
|
|
32
|
+
frontMatter: false,
|
|
33
|
+
path: '../../../_includes'
|
|
34
|
+
},
|
|
35
|
+
assets: {
|
|
36
|
+
path: '../../../',
|
|
37
|
+
url: '/',
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
*/
|
|
41
|
+
import { getPageSlug } from '../../page.js';
|
|
42
|
+
import { onAll } from '../../client/utils.js';
|
|
43
|
+
import { ClientEvent } from '../../client/events.js';
|
|
44
|
+
export default (config, opts = {}) => {
|
|
45
|
+
const options = {
|
|
46
|
+
autoHomePage: false,
|
|
47
|
+
...opts,
|
|
48
|
+
html: {
|
|
49
|
+
frontMatter: false,
|
|
50
|
+
ext: '.html',
|
|
51
|
+
url: '/',
|
|
52
|
+
path: './',
|
|
53
|
+
...opts.html,
|
|
54
|
+
},
|
|
55
|
+
css: {
|
|
56
|
+
frontMatter: false,
|
|
57
|
+
ext: '.css',
|
|
58
|
+
url: '/css',
|
|
59
|
+
path: './css',
|
|
60
|
+
...opts.css,
|
|
61
|
+
},
|
|
62
|
+
assets: {
|
|
63
|
+
url: '/',
|
|
64
|
+
path: './',
|
|
65
|
+
...opts.assets,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
config.on(ClientEvent.STARTUP_END, ({ editor }) => {
|
|
69
|
+
editor.on(ClientEvent.PUBLISH_START, () => {
|
|
70
|
+
// Update assets URL to display outside the editor
|
|
71
|
+
const assetsFolderUrl = options.assets.url;
|
|
72
|
+
if (assetsFolderUrl) {
|
|
73
|
+
// Concat the paths, handles the trailing and leading slashes
|
|
74
|
+
const publishedUrl = path => `${assetsFolderUrl.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`;
|
|
75
|
+
// New URLs for assets, according to site config
|
|
76
|
+
onAll(editor, c => {
|
|
77
|
+
// Attributes
|
|
78
|
+
if (c.get('type') === 'image') {
|
|
79
|
+
const src = c.get('src');
|
|
80
|
+
c.set('tmp-src', src);
|
|
81
|
+
c.set('src', publishedUrl(src));
|
|
82
|
+
}
|
|
83
|
+
//// Inline styles
|
|
84
|
+
//// This is handled by the editor.Css.getAll loop
|
|
85
|
+
//const bgUrl = c.getStyle()['background-image']?.match(/url\('(.*)'\)/)?.pop()
|
|
86
|
+
//if(bgUrl) {
|
|
87
|
+
// c.set('tmp-bg-url', bgUrl)
|
|
88
|
+
// c.setStyle({
|
|
89
|
+
// ...c.getStyle(),
|
|
90
|
+
// 'background-image': `url('${publishedUrl(bgUrl)}')`,
|
|
91
|
+
// })
|
|
92
|
+
//}
|
|
93
|
+
});
|
|
94
|
+
editor.Css.getAll()
|
|
95
|
+
.forEach(c => {
|
|
96
|
+
const bgUrl = c.getStyle()['background-image']?.match(/url\('(.*)'\)/)?.pop();
|
|
97
|
+
if (bgUrl) {
|
|
98
|
+
c.setStyle({
|
|
99
|
+
...c.getStyle(),
|
|
100
|
+
'background-image': `url('${publishedUrl(bgUrl)}')`,
|
|
101
|
+
});
|
|
102
|
+
c.set('tmp-bg-url-css', bgUrl);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
editor.Pages.getAll().forEach(page => {
|
|
107
|
+
if (page.get('type') === 'main' && options?.autoHomePage) {
|
|
108
|
+
page.set('slug', 'index');
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
page.set('slug', getPageSlug(page.get('name') || page.get('type')));
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
editor.on(ClientEvent.PUBLISH_END, () => {
|
|
116
|
+
const assetsFolderUrl = options.assets.url;
|
|
117
|
+
// Reset asset URLs
|
|
118
|
+
if (assetsFolderUrl) {
|
|
119
|
+
onAll(editor, c => {
|
|
120
|
+
if (c.get('type') === 'image' && c.has('tmp-src')) {
|
|
121
|
+
c.set('src', c.get('tmp-src'));
|
|
122
|
+
c.set('tmp-src');
|
|
123
|
+
}
|
|
124
|
+
//// This is handled by the editor.Css.getAll loop
|
|
125
|
+
//if(c.getStyle()['background-image'] && c.has('tmp-bg-url')) {
|
|
126
|
+
// c.setStyle({
|
|
127
|
+
// ...c.getStyle(),
|
|
128
|
+
// 'background-image': `url('${c.get('tmp-bg-url')}')`,
|
|
129
|
+
// })
|
|
130
|
+
// c.set('tmp-bg-url')
|
|
131
|
+
//}
|
|
132
|
+
});
|
|
133
|
+
editor.Css.getAll()
|
|
134
|
+
.forEach(c => {
|
|
135
|
+
if (c.has('tmp-bg-url-css')) {
|
|
136
|
+
c.setStyle({
|
|
137
|
+
...c.getStyle(),
|
|
138
|
+
'background-image': `url('${c.get('tmp-bg-url-css')}')`,
|
|
139
|
+
});
|
|
140
|
+
c.set('tmp-bg-url-css');
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
//editor.on(ClientEvent.PUBLISH_DATA, data => {
|
|
146
|
+
// data.pages.forEach((page: Page, idx) => {
|
|
147
|
+
// const file = data.files[idx] as ClientSideFile
|
|
148
|
+
// console.log('Silex: publication renderer: page', page, file)
|
|
149
|
+
// // CSS
|
|
150
|
+
// if(file.type === 'css') {
|
|
151
|
+
// file.cssPath = file.cssPath.replace(/\.css$/, options.css.ext)
|
|
152
|
+
// file.cssPath = options.css.path + file.cssPath
|
|
153
|
+
// if (options.css.frontMatter) {
|
|
154
|
+
// file.css = `---\npermalink: ${options.css.url}/${page.slug}.css\n---\n${file.css}`
|
|
155
|
+
// }
|
|
156
|
+
// // HTML
|
|
157
|
+
// file.htmlPath = file.htmlPath.replace(/\.html$/, options.html.ext)
|
|
158
|
+
// file.htmlPath = options.html.path + file.htmlPath
|
|
159
|
+
// if (options.html.frontMatter) {
|
|
160
|
+
// file.html = `---\npermalink: ${options.html.url}/${page.slug}.html\n---\n${file.html}`
|
|
161
|
+
// }
|
|
162
|
+
// })
|
|
163
|
+
// data.assets.forEach((asset, idx) => {
|
|
164
|
+
// asset.path = options.assets.path + asset.src
|
|
165
|
+
// // The rest is handled by the editor.Css.getAll loop
|
|
166
|
+
// })
|
|
167
|
+
//})
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=publicationRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicationRenderer.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/client/publicationRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;AACvF,MAAM,yEAAyE,CAAA;AAE/E;;;;;;;;;;;;;;;;;EAiBE;AAEF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,eAAe,CAAC,MAAM,EAAE,OAAY,EAAE,EAAE,EAAE;IACxC,MAAM,OAAO,GAAG;QACd,YAAY,EAAE,KAAK;QACnB,GAAG,IAAI;QACP,IAAI,EAAE;YACJ,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,GAAG,IAAI,CAAC,IAAI;SACb;QACD,GAAG,EAAE;YACH,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,IAAI,EAAE,OAAO;YACb,GAAG,IAAI,CAAC,GAAG;SACZ;QACD,MAAM,EAAE;YACN,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,GAAG,IAAI,CAAC,MAAM;SACf;KACF,CAAA;IACD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAChD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,EAAE;YACxC,kDAAkD;YAClD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAA;YAC1C,IAAI,eAAe,EAAE;gBACnB,6DAA6D;gBAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;gBACjG,gDAAgD;gBAChD,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;oBAChB,aAAa;oBACb,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,EAAE;wBAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;wBACxB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;wBACrB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA;qBAChC;oBACD,kBAAkB;oBAClB,kDAAkD;oBAClD,+EAA+E;oBAC/E,aAAa;oBACb,8BAA8B;oBAC9B,gBAAgB;oBAChB,sBAAsB;oBACtB,0DAA0D;oBAC1D,MAAM;oBACN,GAAG;gBACL,CAAC,CAAC,CAAA;gBACF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;qBAChB,OAAO,CAAC,CAAC,CAAC,EAAE;oBACX,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAA;oBAC7E,IAAI,KAAK,EAAE;wBACT,CAAC,CAAC,QAAQ,CAAC;4BACT,GAAG,CAAC,CAAC,QAAQ,EAAE;4BACf,kBAAkB,EAAE,QAAQ,YAAY,CAAC,KAAK,CAAC,IAAI;yBACpD,CAAC,CAAA;wBACF,CAAC,CAAC,GAAG,CAAC,gBAAuB,EAAE,KAAK,CAAC,CAAA;qBACtC;gBACH,CAAC,CAAC,CAAA;aACL;YACD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACnC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,EAAE,YAAY,EAAE;oBACxD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;iBAC1B;qBAAM;oBACL,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;iBACpE;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE;YACtC,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAA;YAC1C,mBAAmB;YACnB,IAAI,eAAe,EAAE;gBACnB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;oBAChB,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;wBACjD,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;wBAC9B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;qBACjB;oBACH,kDAAkD;oBAClD,+DAA+D;oBAC/D,gBAAgB;oBAChB,sBAAsB;oBACtB,0DAA0D;oBAC1D,MAAM;oBACN,uBAAuB;oBACvB,GAAG;gBACH,CAAC,CAAC,CAAA;gBACF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE;qBAChB,OAAO,CAAC,CAAC,CAAC,EAAE;oBACX,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAuB,CAAC,EAAE;wBAClC,CAAC,CAAC,QAAQ,CAAC;4BACT,GAAG,CAAC,CAAC,QAAQ,EAAE;4BACf,kBAAkB,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAuB,CAAC,IAAI;yBAC/D,CAAC,CAAA;wBACF,CAAC,CAAC,GAAG,CAAC,gBAAuB,CAAC,CAAA;qBAC/B;gBACH,CAAC,CAAC,CAAA;aACL;QACH,CAAC,CAAC,CAAA;QACF,+CAA+C;QAC/C,6CAA6C;QAC7C,oDAAoD;QACpD,kEAAkE;QAClE,YAAY;QACZ,+BAA+B;QAC/B,oEAAoE;QACpE,oDAAoD;QACpD,oCAAoC;QACpC,0FAA0F;QAC1F,OAAO;QACP,aAAa;QACb,wEAAwE;QACxE,uDAAuD;QACvD,qCAAqC;QACrC,8FAA8F;QAC9F,OAAO;QACP,MAAM;QACN,yCAAyC;QACzC,kDAAkD;QAClD,0DAA0D;QAC1D,MAAM;QACN,IAAI;IACN,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Silex website builder, free/libre no-code tool for makers.
|
|
3
|
+
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
8
|
+
*
|
|
9
|
+
* This program is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
* GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
// Silex serves /clients
|
|
18
|
+
// @ts-ignore
|
|
19
|
+
import { onAll } from '../client/utils.js';
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
import { ClientEvent } from '../client/events.js';
|
|
22
|
+
// You need to serve lit-html at /js/lit-html/
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
import { html, render } from '../js/lit-html/lit-html.js';
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
import { styleMap } from '../js/lit-html/directives/style-map.js';
|
|
27
|
+
const silex = window['silex'];
|
|
28
|
+
const pluginName = 'template';
|
|
29
|
+
const templateType = 'templateType';
|
|
30
|
+
const templateKey = 'template';
|
|
31
|
+
export default async (config, opts = {}) => {
|
|
32
|
+
config.on(ClientEvent.GRAPESJS_END, () => {
|
|
33
|
+
const editor = silex.getEditor();
|
|
34
|
+
// Add the new trait to all component types
|
|
35
|
+
editor.DomComponents.getTypes().map(type => {
|
|
36
|
+
const originalType = editor.DomComponents.getType(type.id);
|
|
37
|
+
editor.DomComponents.addType(type.id, {
|
|
38
|
+
model: {
|
|
39
|
+
defaults: {
|
|
40
|
+
traits: [
|
|
41
|
+
// Keep the type original traits
|
|
42
|
+
...originalType.model.prototype.defaults.traits,
|
|
43
|
+
// Add the new trait
|
|
44
|
+
{
|
|
45
|
+
label: false,
|
|
46
|
+
type: templateType,
|
|
47
|
+
name: pluginName,
|
|
48
|
+
},
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
function doRender(el) {
|
|
55
|
+
const template = editor.getSelected()?.get(templateKey) || {};
|
|
56
|
+
const taStyle = opts.styles?.textarea ?? styleMap({
|
|
57
|
+
backgroundColor: 'var(--darkerPrimaryColor)',
|
|
58
|
+
});
|
|
59
|
+
const sepStyle = opts.styles?.sep ?? styleMap({ height: '10px' });
|
|
60
|
+
const labels = {
|
|
61
|
+
before: html `<strong>Before</strong> the element`,
|
|
62
|
+
replace: html `<strong>Replace</strong> the element's children`,
|
|
63
|
+
after: html `<strong>After</strong> the element`,
|
|
64
|
+
attributes: html `HTML attributes`,
|
|
65
|
+
classname: html `CSS classes`,
|
|
66
|
+
style: html `CSS styles`,
|
|
67
|
+
};
|
|
68
|
+
render(html `
|
|
69
|
+
<div>
|
|
70
|
+
<h3>Template</h3>
|
|
71
|
+
<p>This will be inserted in the published version</p>
|
|
72
|
+
</div>
|
|
73
|
+
${['classname', 'attributes', 'style'].map(id => html `
|
|
74
|
+
<label>
|
|
75
|
+
${labels[id]}
|
|
76
|
+
<input
|
|
77
|
+
id="template-${id}"
|
|
78
|
+
.value=${template[id] || ''}
|
|
79
|
+
style=${taStyle}
|
|
80
|
+
/>
|
|
81
|
+
</label>
|
|
82
|
+
`)}
|
|
83
|
+
${['before', 'replace', 'after'].map(id => html `
|
|
84
|
+
<label
|
|
85
|
+
for="template-${id}"
|
|
86
|
+
>${labels[id]}</label>
|
|
87
|
+
<textarea
|
|
88
|
+
id="template-${id}"
|
|
89
|
+
style=${taStyle}
|
|
90
|
+
.value=${template[id] || ''}
|
|
91
|
+
></textarea>
|
|
92
|
+
`)}
|
|
93
|
+
`, el);
|
|
94
|
+
}
|
|
95
|
+
editor.TraitManager.addType(templateType, {
|
|
96
|
+
createInput({ trait }) {
|
|
97
|
+
// Create a new element container and add some content
|
|
98
|
+
const el = document.createElement('div');
|
|
99
|
+
el.classList.add('gjs-one-bg');
|
|
100
|
+
// update the UI when a page is added/renamed/removed
|
|
101
|
+
editor.on('page', () => doRender(el));
|
|
102
|
+
doRender(el);
|
|
103
|
+
// this will be the element passed to onEvent and onUpdate
|
|
104
|
+
return el;
|
|
105
|
+
},
|
|
106
|
+
// Update the component based on UI changes
|
|
107
|
+
// `elInput` is the result HTMLElement you get from `createInput`
|
|
108
|
+
onEvent({ elInput, component, event }) {
|
|
109
|
+
const template = {
|
|
110
|
+
before: elInput.querySelector('#template-before').value,
|
|
111
|
+
replace: elInput.querySelector('#template-replace').value,
|
|
112
|
+
after: elInput.querySelector('#template-after').value,
|
|
113
|
+
attributes: elInput.querySelector('#template-attributes').value,
|
|
114
|
+
classname: elInput.querySelector('#template-classname').value,
|
|
115
|
+
style: elInput.querySelector('#template-style').value,
|
|
116
|
+
};
|
|
117
|
+
// Store the new template
|
|
118
|
+
if (Object.values(template).filter(val => !!val && !!cleanup(val)).length > 0) {
|
|
119
|
+
component.set(templateKey, template);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
component.set(templateKey);
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
// Update UI on the component change
|
|
126
|
+
onUpdate({ elInput, component }) {
|
|
127
|
+
doRender(elInput);
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
// Make html attribute
|
|
131
|
+
// Quote strings, no values for boolean
|
|
132
|
+
function makeAttribute(key, value) {
|
|
133
|
+
switch (typeof value) {
|
|
134
|
+
case 'boolean': return value ? key : '';
|
|
135
|
+
default: return `${key}="${value}"`;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// Remove empty lines in templates
|
|
139
|
+
function cleanup(template) {
|
|
140
|
+
return template
|
|
141
|
+
// split in lines
|
|
142
|
+
.split('\n')
|
|
143
|
+
// remove lines with only spaces
|
|
144
|
+
.map(line => line.trim())
|
|
145
|
+
.filter(line => !!line)
|
|
146
|
+
// put back together
|
|
147
|
+
.join('\n');
|
|
148
|
+
}
|
|
149
|
+
editor.on(ClientEvent.PUBLISH_START, () => {
|
|
150
|
+
// Insert templates
|
|
151
|
+
onAll(editor, c => {
|
|
152
|
+
const template = c.get(templateKey);
|
|
153
|
+
const toHTML = c.toHTML;
|
|
154
|
+
const classes = c.getClasses();
|
|
155
|
+
const before = cleanup(template?.before || '');
|
|
156
|
+
const replace = cleanup(template?.replace || '');
|
|
157
|
+
const after = cleanup(template?.after || '');
|
|
158
|
+
const classname = cleanup(template?.classname || '');
|
|
159
|
+
const style = cleanup(template?.style || '');
|
|
160
|
+
const attributes = cleanup(template?.attributes || '');
|
|
161
|
+
// Store the initial method
|
|
162
|
+
if (!c.has('tmpHtml'))
|
|
163
|
+
c.set('tmpHtml', toHTML);
|
|
164
|
+
// Override the method
|
|
165
|
+
c.toHTML = () => {
|
|
166
|
+
return `${before}${c.get('tagName') ? `<${c.get('tagName')}
|
|
167
|
+
${Object.entries(c.get('attributes')).map(([key, value]) => makeAttribute(key, value)).join(' ')}
|
|
168
|
+
${classes.length || classname ? `class="${classes.join(' ')} ${classname}"` : ''}
|
|
169
|
+
${attributes}
|
|
170
|
+
${style ? `style="${style}"` : ''}
|
|
171
|
+
>` : ''}${replace || c.getInnerHTML()}${c.get('tagName') ? `</${c.get('tagName')}>` : ''}${after}`;
|
|
172
|
+
};
|
|
173
|
+
});
|
|
174
|
+
});
|
|
175
|
+
editor.on(ClientEvent.PUBLISH_END, () => {
|
|
176
|
+
onAll(editor, c => {
|
|
177
|
+
// Restore the original method
|
|
178
|
+
c.toHTML = c.get('tmpHtml');
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/client/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function (config: any): Promise<void>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Silex website builder, free/libre no-code tool for makers.
|
|
3
|
+
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
8
|
+
*
|
|
9
|
+
* This program is distributed in the hope that it will be useful,
|
|
10
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
* GNU Affero General Public License for more details.
|
|
13
|
+
*
|
|
14
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
15
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
|
+
*/
|
|
17
|
+
import { ClientEvent } from '../../client/events.js';
|
|
18
|
+
// Silex plugin
|
|
19
|
+
export default async function (config) {
|
|
20
|
+
let websiteMeta = null;
|
|
21
|
+
config.on(ClientEvent.GRAPESJS_START, async () => {
|
|
22
|
+
// GrapesJs plugin
|
|
23
|
+
const grapesPlugin = (editor, opts) => {
|
|
24
|
+
const options = {
|
|
25
|
+
appendTo: 'commands',
|
|
26
|
+
...opts,
|
|
27
|
+
};
|
|
28
|
+
editor.on('storage:end:load', async () => {
|
|
29
|
+
// Get website meta data
|
|
30
|
+
const { websiteId, connectorId } = options;
|
|
31
|
+
// Get the website meta data
|
|
32
|
+
websiteMeta = await config.api.websiteMetaRead({ websiteId, connectorId });
|
|
33
|
+
displayWebsiteMeta();
|
|
34
|
+
});
|
|
35
|
+
return {};
|
|
36
|
+
};
|
|
37
|
+
// Add the plugin to the GrapeJS
|
|
38
|
+
config.grapesJsConfig.plugins.push(grapesPlugin);
|
|
39
|
+
config.grapesJsConfig.pluginsOpts[grapesPlugin.toString()] = {
|
|
40
|
+
websiteId: config.websiteId,
|
|
41
|
+
connectorId: config.storageId,
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
config.on(ClientEvent.GRAPESJS_END, async ({ editor }) => {
|
|
45
|
+
// Detect when the page changes
|
|
46
|
+
editor.on('page:select', async () => {
|
|
47
|
+
displayWebsiteMeta();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
// Display the website meta data
|
|
51
|
+
function displayWebsiteMeta() {
|
|
52
|
+
// Get or create the container
|
|
53
|
+
const container = document.querySelector('#gjs-website-meta') ?? (function () {
|
|
54
|
+
const c = document.createElement('div');
|
|
55
|
+
c.id = 'gjs-website-meta';
|
|
56
|
+
c.classList.add('gjs-website-meta');
|
|
57
|
+
// Add the container to the UI
|
|
58
|
+
// Add the name of the website in the top bar
|
|
59
|
+
const topBar = document.querySelector('.gjs-pn-devices-c');
|
|
60
|
+
topBar?.appendChild(c);
|
|
61
|
+
return c;
|
|
62
|
+
})();
|
|
63
|
+
// Get the current page
|
|
64
|
+
const currentPage = config.getEditor().Pages?.getSelected();
|
|
65
|
+
// Display the website meta data
|
|
66
|
+
container.innerHTML = `
|
|
67
|
+
${websiteMeta?.imageUrl ? `<div class="gjs-website-meta-image" style="background: url(${websiteMeta?.imageUrl});"></div>` : ''}
|
|
68
|
+
<div class="gjs-website-meta-name">${websiteMeta?.name ?? 'Unknown'} | ${currentPage.get('name') ?? currentPage.get('type')}</div>
|
|
69
|
+
`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=website-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"website-info.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/client/website-info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AASpD,eAAe;AACf,MAAM,CAAC,OAAO,CAAC,KAAK,WAAU,MAAM;IAClC,IAAI,WAAW,GAAuB,IAAI,CAAA;IAC1C,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;QAC/C,kBAAkB;QAClB,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,IAAiC,EAAE,EAAE;YACjE,MAAM,OAAO,GAAG;gBACd,QAAQ,EAAE,UAAU;gBACpB,GAAG,IAAI;aACc,CAAA;YACvB,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;gBACvC,wBAAwB;gBACxB,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;gBAC1C,4BAA4B;gBAC5B,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;gBAC1E,kBAAkB,EAAE,CAAA;YACtB,CAAC,CAAC,CAAA;YACF,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QAED,gCAAgC;QAChC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAChD,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,GAAG;YAC3D,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,WAAW,EAAE,MAAM,CAAC,SAAS;SAC9B,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,EAAC,MAAM,EAAC,EAAE,EAAE;QACrD,+BAA+B;QAC/B,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;YAClC,kBAAkB,EAAE,CAAA;QACtB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAGF,gCAAgC;IAChC,SAAS,kBAAkB;QACzB,8BAA8B;QAC9B,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAChE,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACvC,CAAC,CAAC,EAAE,GAAG,kBAAkB,CAAA;YACzB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;YACnC,8BAA8B;YAC9B,6CAA6C;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;YAC1D,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;YACtB,OAAO,CAAC,CAAA;QACV,CAAC,CAAC,EAAE,CAAA;QACJ,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAA;QAC3D,gCAAgC;QAChC,SAAS,CAAC,SAAS,GAAG;UAChB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,8DAA8D,WAAW,EAAE,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE;6CACzF,WAAW,EAAE,IAAI,IAAI,SAAS,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;OAC5H,CAAA;IACL,CAAC;AACH,CAAC"}
|