@silexlabs/silex 3.0.1-0 → 3.0.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.
- package/.env.default +3 -2
- package/.silex.js +39 -1
- package/README.md +37 -35
- package/dist/client/client/api.d.ts +8 -1
- package/dist/client/client/assetUrl.d.ts +54 -0
- package/dist/client/client/config.d.ts +60 -1
- package/dist/client/client/events.d.ts +19 -10
- package/dist/client/client/grapesjs/PublicationManager.d.ts +6 -8
- package/dist/client/client/grapesjs/PublicationUi.d.ts +8 -10
- package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
- package/dist/client/client/grapesjs/css-props.d.ts +6 -0
- package/dist/client/client/grapesjs/footer.d.ts +2 -0
- package/dist/client/client/grapesjs/img.d.ts +6 -0
- package/dist/client/client/grapesjs/index.d.ts +6 -2
- package/dist/client/client/grapesjs/internal-links.d.ts +1 -1
- package/dist/client/client/grapesjs/keymaps.d.ts +123 -0
- package/dist/client/client/grapesjs/new-page-dialog.d.ts +1 -1
- package/dist/client/client/grapesjs/page-panel.d.ts +7 -1
- package/dist/client/client/grapesjs/project-bar.d.ts +20 -0
- package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
- package/dist/client/client/grapesjs/rich-text.d.ts +4 -1
- package/dist/client/client/grapesjs/semantic.d.ts +1 -1
- package/dist/client/client/grapesjs/settings-sections.d.ts +16 -0
- package/dist/client/client/grapesjs/settings.d.ts +3 -1
- package/dist/client/client/grapesjs/storage.d.ts +1 -0
- package/dist/client/client/grapesjs/symbolDialogs.d.ts +1 -1
- package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
- package/dist/client/client/index.d.ts +5 -0
- package/dist/client/client/publication-transformers.d.ts +42 -0
- package/dist/client/client/publish-custom-code-block.d.ts +4 -0
- package/dist/client/client/publish-fonts.d.ts +4 -0
- package/dist/client/client/utils.d.ts +22 -1
- package/dist/client/constants.d.ts +3 -0
- package/dist/client/css/admin.css +1107 -411
- package/dist/client/css/admin.css.map +1 -0
- package/dist/client/grapesjs-filter-styles/dist/index.d.ts +4 -0
- package/dist/client/grapesjs-fonts/dist/index.d.ts +4 -0
- package/dist/client/grapesjs-fonts/src/commands.d.ts +3 -0
- package/dist/client/grapesjs-fonts/src/fonts.d.ts +4 -0
- package/dist/client/grapesjs-storage-rate-limit/dist/index.d.ts +4 -0
- package/dist/client/grapesjs-ui-suggest-classes/dist/index.d.ts +4 -0
- package/dist/client/index.html +3 -2
- package/dist/client/js/main.js +305 -170
- package/dist/client/js/main.js.LICENSE.txt +21 -1
- package/dist/client/page.d.ts +1 -1
- package/dist/client/silex-lib/src/ts/client/api.d.ts +90 -0
- package/dist/client/silex-lib/src/ts/client/assetUrl.d.ts +54 -0
- package/dist/client/silex-lib/src/ts/client/config.d.ts +102 -0
- package/dist/client/silex-lib/src/ts/client/events.d.ts +23 -0
- package/dist/client/silex-lib/src/ts/client/expose.d.ts +8 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/LoginDialog.d.ts +15 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationManager.d.ts +73 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationUi.d.ts +59 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/blocks.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/breadcrumbs.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/css-props.d.ts +6 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/footer.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/img.d.ts +6 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/index.d.ts +9 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/internal-links.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/keymaps.d.ts +123 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/new-page-dialog.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/openImport.d.ts +9 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/page-panel.d.ts +9 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/project-bar.d.ts +21 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/resize-panel.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/rich-text.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/semantic.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/settings-sections.d.ts +16 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/settings.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/storage.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/symbolDialogs.d.ts +3 -0
- package/dist/client/silex-lib/src/ts/client/grapesjs/view-buttons.d.ts +1 -0
- package/dist/client/silex-lib/src/ts/client/index.d.ts +10 -0
- package/dist/client/silex-lib/src/ts/client/publication-transformers.d.ts +42 -0
- package/dist/client/silex-lib/src/ts/client/publish-custom-code-block.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/publish-fonts.d.ts +4 -0
- package/dist/client/silex-lib/src/ts/client/utils.d.ts +22 -0
- package/dist/client/silex-lib/src/ts/constants.d.ts +32 -0
- package/dist/client/silex-lib/src/ts/page.d.ts +2 -0
- package/dist/client/silex-lib/src/ts/types.d.ts +339 -0
- package/dist/client/types.d.ts +59 -35
- package/dist/plugins/client/client/events.d.ts +19 -10
- package/dist/plugins/client/client/events.js +11 -0
- package/dist/plugins/client/client/events.js.map +1 -1
- package/dist/plugins/client/plugins/client/template.js +119 -71
- package/dist/plugins/client/plugins/client/template.js.map +1 -1
- 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 +59 -35
- package/dist/plugins/client/types.js +23 -0
- package/dist/plugins/client/types.js.map +1 -1
- package/dist/plugins/server/constants.d.ts +3 -0
- package/dist/plugins/server/constants.js +28 -1
- package/dist/plugins/server/constants.js.map +1 -1
- package/dist/plugins/server/plugins/server/Cache.js +9 -5
- package/dist/plugins/server/plugins/server/Cache.js.map +1 -1
- package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.js +127 -0
- package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/FtpConnector.d.ts +5 -2
- package/dist/plugins/server/plugins/server/FtpConnector.js +38 -23
- package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -1
- package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +63 -9
- package/dist/plugins/server/plugins/server/GitlabConnector.js +367 -91
- package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +16 -0
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +209 -0
- package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -0
- package/dist/plugins/server/plugins/server/SslPlugin.js +6 -6
- package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -1
- package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +8 -1
- package/dist/plugins/server/plugins/server/StaticPlugin.js +5 -31
- package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -1
- package/dist/plugins/server/server/config.js +8 -9
- package/dist/plugins/server/server/config.js.map +1 -1
- package/dist/plugins/server/server/connectors/FsHosting.d.ts +3 -2
- package/dist/plugins/server/server/connectors/FsHosting.js +18 -7
- package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -1
- package/dist/plugins/server/server/connectors/FsStorage.d.ts +3 -1
- package/dist/plugins/server/server/connectors/FsStorage.js +35 -28
- package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
- package/dist/plugins/server/server/connectors/connectors.d.ts +7 -7
- package/dist/plugins/server/server/connectors/connectors.js +6 -7
- package/dist/plugins/server/server/connectors/connectors.js.map +1 -1
- package/dist/plugins/server/server/events.js +16 -0
- package/dist/plugins/server/server/events.js.map +1 -1
- package/dist/plugins/server/server/jobs.d.ts +6 -0
- package/dist/plugins/server/server/jobs.js +12 -8
- package/dist/plugins/server/server/jobs.js.map +1 -1
- package/dist/plugins/server/server/utils/validation.js +1 -2
- package/dist/plugins/server/server/utils/validation.js.map +1 -1
- package/dist/plugins/server/types.d.ts +59 -35
- package/dist/plugins/server/types.js +24 -1
- package/dist/plugins/server/types.js.map +1 -1
- package/dist/server/constants.js +27 -1
- package/dist/server/plugins/server/Cache.js +9 -5
- package/dist/server/server/api/api.js +1 -1
- package/dist/server/server/api/connectorApi.js +154 -25
- package/dist/server/server/api/publicationApi.js +17 -25
- package/dist/server/server/api/websiteApi.js +30 -8
- package/dist/server/server/cli.js +9 -6
- package/dist/server/server/config.js +8 -9
- package/dist/server/server/connectors/FsHosting.js +17 -7
- package/dist/server/server/connectors/FsStorage.js +34 -28
- package/dist/server/server/connectors/connectors.js +6 -7
- package/dist/server/server/express.js +4 -5
- package/dist/server/server/index.js +5 -1
- package/dist/server/server/jobs.js +11 -8
- package/dist/server/server/utils/validation.js +1 -2
- package/dist/server/types.js +13 -1
- package/package.json +56 -42
- package/public/assets/download.png +0 -0
- package/public/assets/favicon.ico +0 -0
- package/public/assets/favicon.png +0 -0
- package/public/assets/ftp.png +0 -0
- package/public/assets/gitlab.png +0 -0
- package/public/assets/gitlab2.png +0 -0
- package/public/assets/laptop.png +0 -0
- package/public/assets/logo-silex-small.png +0 -0
- package/public/silex.js +5 -23
- package/src/css/_variables.scss +23 -20
- package/src/css/dialog.scss +27 -1
- package/src/css/fonts.scss +31 -0
- package/src/css/footer.scss +12 -0
- package/src/css/grapesjs-light.scss +180 -0
- package/src/css/grapesjs-plugins.scss +227 -0
- package/src/css/grapesjs.scss +84 -10
- package/src/css/index.scss +12 -1
- package/src/css/light.scss +7 -0
- package/src/css/project-bar.scss +32 -16
- package/src/css/silex.scss +79 -5
- package/src/css/website-info.scss +14 -0
- package/src/html/index.pug +3 -3
- package/src/ts/client/api.ts +38 -14
- package/src/ts/client/assetUrl.test.ts +164 -0
- package/src/ts/client/assetUrl.ts +254 -0
- package/src/ts/client/config.ts +133 -5
- package/src/ts/client/events.ts +21 -9
- package/src/ts/client/grapesjs/LoginDialog.ts +4 -2
- package/src/ts/client/grapesjs/PublicationManager.ts +180 -54
- package/src/ts/client/grapesjs/PublicationUi.ts +122 -86
- package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
- package/src/ts/client/grapesjs/css-props.ts +910 -0
- package/src/ts/client/grapesjs/eleventy.ts +11 -8
- package/{dist/plugins/client/page.js → src/ts/client/grapesjs/footer.ts} +24 -13
- package/src/ts/client/grapesjs/img.ts +147 -0
- package/src/ts/client/grapesjs/index.ts +234 -52
- package/src/ts/client/grapesjs/internal-links.test.ts +2 -1
- package/src/ts/client/grapesjs/internal-links.ts +14 -7
- package/src/ts/client/grapesjs/keymaps.ts +207 -0
- package/src/ts/client/grapesjs/new-page-dialog.ts +2 -3
- package/src/ts/client/grapesjs/page-panel.ts +92 -7
- package/src/ts/client/grapesjs/project-bar.ts +116 -72
- package/src/ts/client/grapesjs/resize-panel.ts +20 -0
- package/src/ts/client/grapesjs/rich-text.ts +21 -13
- package/src/ts/client/grapesjs/semantic.ts +3 -3
- package/src/ts/client/grapesjs/settings-sections.ts +117 -0
- package/src/ts/client/grapesjs/settings.ts +174 -96
- package/src/ts/client/grapesjs/storage.ts +98 -33
- package/src/ts/client/grapesjs/symbolDialogs.ts +3 -4
- package/src/ts/{plugins/server/AuthPlugin.ts → client/grapesjs/view-buttons.ts} +23 -19
- package/src/ts/client/index.ts +35 -16
- package/src/ts/client/publication-transformers.test.ts +207 -0
- package/src/ts/client/publication-transformers.ts +280 -0
- package/{dist/plugins/client/client/utils.js → src/ts/client/publish-custom-code-block.ts} +14 -8
- package/src/ts/client/publish-fonts.ts +36 -0
- package/src/ts/client/utils.ts +53 -1
- package/src/ts/constants.ts +31 -0
- package/src/ts/page.ts +2 -2
- package/src/ts/plugins/client/template.ts +125 -75
- package/src/ts/plugins/client/website-info.ts +84 -0
- package/src/ts/plugins/server/Cache.ts +6 -2
- package/src/ts/plugins/server/DownloadConnector.ts +146 -0
- package/src/ts/plugins/server/FtpConnector.ts +47 -21
- package/src/ts/plugins/server/GitlabConnector.ts +423 -108
- package/src/ts/plugins/server/GitlabHostingConnector.ts +215 -0
- package/src/ts/plugins/server/SslPlugin.ts +5 -5
- package/src/ts/plugins/server/StaticPlugin.ts +3 -30
- package/src/ts/server/api/connectorApi.ts +165 -28
- package/src/ts/server/api/publicationApi.ts +17 -24
- package/src/ts/server/api/websiteApi.ts +57 -14
- package/src/ts/server/cli.ts +7 -5
- package/src/ts/server/config.ts +9 -10
- package/src/ts/server/connectors/FsHosting.ts +14 -8
- package/src/ts/server/connectors/FsStorage.ts +40 -7
- package/src/ts/server/connectors/connectors.ts +8 -6
- package/src/ts/server/events.ts +17 -0
- package/src/ts/server/express.ts +2 -2
- package/src/ts/server/index.ts +6 -0
- package/src/ts/server/jobs.ts +14 -2
- package/src/ts/server/utils/BackwardCompat.ts +530 -529
- package/src/ts/types.ts +78 -34
- package/dist/plugins/client/client/utils.d.ts +0 -1
- package/dist/plugins/client/client/utils.js.map +0 -1
- package/dist/plugins/client/page.d.ts +0 -2
- package/dist/plugins/client/page.js.map +0 -1
- package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +0 -2
- package/dist/plugins/client/plugins/client/publicationRenderer.js +0 -128
- package/dist/plugins/client/plugins/client/publicationRenderer.js.map +0 -1
- package/dist/plugins/server/plugins/server/AuthPlugin.d.ts +0 -1
- package/dist/plugins/server/plugins/server/AuthPlugin.js +0 -38
- package/dist/plugins/server/plugins/server/AuthPlugin.js.map +0 -1
- package/dist/plugins/server/plugins/server/HooksPlugin.d.ts +0 -7
- package/dist/plugins/server/plugins/server/HooksPlugin.js +0 -74
- package/dist/plugins/server/plugins/server/HooksPlugin.js.map +0 -1
- package/src/example-client-config.js +0 -64
- package/src/ts/plugins/client/publicationRenderer.ts +0 -128
- package/src/ts/plugins/server/HooksPlugin.ts +0 -76
package/src/ts/types.ts
CHANGED
|
@@ -23,8 +23,6 @@
|
|
|
23
23
|
export interface PublicationSettings {
|
|
24
24
|
connector?: ConnectorData, // Set by the postMessage from the login callback page
|
|
25
25
|
options?: ConnectorOptions, // Options for the publication connector saved with the site
|
|
26
|
-
url?: string, // URL to display where the website is published to
|
|
27
|
-
autoHomePage?: boolean, // Name the first page `index` instead of its name
|
|
28
26
|
}
|
|
29
27
|
|
|
30
28
|
export interface WebsiteFile {
|
|
@@ -60,8 +58,9 @@ export type ApiWebsiteCreateQuery = { connectorId?: ConnectorId }
|
|
|
60
58
|
export type ApiWebsiteCreateBody = WebsiteMetaFileContent
|
|
61
59
|
export type ApiWebsiteCreateResponse = { message: string }
|
|
62
60
|
export type ApiWebsiteDeleteQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
61
|
+
export type ApiWebsiteDuplicateQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
63
62
|
export type ApiWebsiteMetaReadQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
64
|
-
export type ApiWebsiteMetaReadResponse =
|
|
63
|
+
export type ApiWebsiteMetaReadResponse = WebsiteMeta
|
|
65
64
|
export type ApiWebsiteMetaWriteQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
|
|
66
65
|
export type ApiWebsiteMetaWriteBody = WebsiteMetaFileContent
|
|
67
66
|
export type ApiWebsiteMetaWriteResponse = { message: string }
|
|
@@ -98,6 +97,27 @@ export const defaultWebsiteData: WebsiteData = {
|
|
|
98
97
|
//publication: {},
|
|
99
98
|
} as WebsiteData
|
|
100
99
|
|
|
100
|
+
|
|
101
|
+
// **
|
|
102
|
+
// Grapesjs types
|
|
103
|
+
// From grapesjs, not imported because it breaks the build on the server side
|
|
104
|
+
export interface Component {
|
|
105
|
+
type: string,
|
|
106
|
+
content?: string,
|
|
107
|
+
attributes: { [key: string]: string },
|
|
108
|
+
components: Component[],
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface Page {
|
|
112
|
+
id: string,
|
|
113
|
+
name: string,
|
|
114
|
+
slug: string,
|
|
115
|
+
settings: WebsiteSettings, // TODO: why is this here? It is used in the publication manager
|
|
116
|
+
frames: {
|
|
117
|
+
component: Component,
|
|
118
|
+
}[]
|
|
119
|
+
}
|
|
120
|
+
|
|
101
121
|
export interface WebsiteData {
|
|
102
122
|
pages: Page[],
|
|
103
123
|
assets: Asset[],
|
|
@@ -110,7 +130,7 @@ export interface WebsiteData {
|
|
|
110
130
|
}
|
|
111
131
|
|
|
112
132
|
export interface PublicationData extends WebsiteData {
|
|
113
|
-
files?:
|
|
133
|
+
files?: ClientSideFile[], // Added by the client for publish
|
|
114
134
|
}
|
|
115
135
|
|
|
116
136
|
export interface WebsiteSettings {
|
|
@@ -130,34 +150,23 @@ export interface Font {
|
|
|
130
150
|
variants: string[],
|
|
131
151
|
}
|
|
132
152
|
|
|
133
|
-
export interface
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
export interface Frame {
|
|
145
|
-
component: { type: string, stylable: string[] },
|
|
146
|
-
components: Component[],
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export interface Component {
|
|
150
|
-
type: string,
|
|
151
|
-
content?: string,
|
|
152
|
-
attributes: { [key: string]: string },
|
|
153
|
-
conponents: Component[],
|
|
154
|
-
}
|
|
153
|
+
//export interface Frame {
|
|
154
|
+
// component: { type: string, stylable: string[] },
|
|
155
|
+
// components: Component[],
|
|
156
|
+
//}
|
|
157
|
+
//
|
|
158
|
+
//export interface Component {
|
|
159
|
+
// type: string,
|
|
160
|
+
// content?: string,
|
|
161
|
+
// attributes: { [key: string]: string },
|
|
162
|
+
// conponents: Component[],
|
|
163
|
+
//}
|
|
155
164
|
|
|
156
165
|
export enum Unit {
|
|
157
166
|
PX = 'px',
|
|
158
167
|
}
|
|
159
168
|
|
|
160
|
-
export interface Asset
|
|
169
|
+
export interface Asset {
|
|
161
170
|
type: string,
|
|
162
171
|
src: string,
|
|
163
172
|
unitDim: Unit,
|
|
@@ -184,17 +193,52 @@ export type Selector = string | {
|
|
|
184
193
|
*/
|
|
185
194
|
export type ConnectorId = string
|
|
186
195
|
|
|
187
|
-
export type ConnectorOptions =
|
|
196
|
+
export type ConnectorOptions = {
|
|
197
|
+
websiteUrl?: string, // For publication UI
|
|
198
|
+
[key: string]: any,
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export enum ClientSideFileType {
|
|
202
|
+
HTML = 'html',
|
|
203
|
+
ASSET = 'asset',
|
|
204
|
+
CSS = 'css',
|
|
205
|
+
OTHER = 'other',
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export enum Initiator {
|
|
209
|
+
HTML = 'html',
|
|
210
|
+
CSS = 'css',
|
|
211
|
+
}
|
|
188
212
|
|
|
189
213
|
/**
|
|
190
|
-
* Type for a client side file
|
|
191
|
-
|
|
214
|
+
* Type for a client side file when the content is not available, used to handle file names and paths and urls
|
|
215
|
+
*/
|
|
216
|
+
export interface ClientSideFileWithPermalink {
|
|
217
|
+
path: string, // Path in the connector
|
|
218
|
+
permalink?: string, // Defaults to path, this the path where the file is served, it is used to link to the file
|
|
219
|
+
type: ClientSideFileType,
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Type for a client side file when the content is available as a string
|
|
192
224
|
*/
|
|
193
|
-
export interface
|
|
194
|
-
path: string,
|
|
225
|
+
export interface ClientSideFileWithContent extends ClientSideFileWithPermalink {
|
|
195
226
|
content: string, // Not buffer because it's sent from the client in JSON
|
|
196
227
|
}
|
|
197
228
|
|
|
229
|
+
/**
|
|
230
|
+
* Type for a client side file when the content is in the connector
|
|
231
|
+
*/
|
|
232
|
+
export interface ClientSideFileWithSrc extends ClientSideFileWithPermalink {
|
|
233
|
+
src: string, // Where to download the file, a path for the storage connector
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Type for a client side file
|
|
238
|
+
* @see connector/File
|
|
239
|
+
*/
|
|
240
|
+
export type ClientSideFile = ClientSideFileWithContent | ClientSideFileWithSrc
|
|
241
|
+
|
|
198
242
|
/**
|
|
199
243
|
* Type for file listing
|
|
200
244
|
*/
|
|
@@ -264,8 +308,8 @@ export interface WebsiteMetaFileContent {
|
|
|
264
308
|
*/
|
|
265
309
|
export interface WebsiteMeta extends WebsiteMetaFileContent {
|
|
266
310
|
websiteId: WebsiteId
|
|
267
|
-
createdAt
|
|
268
|
-
updatedAt
|
|
311
|
+
createdAt?: Date
|
|
312
|
+
updatedAt?: Date
|
|
269
313
|
}
|
|
270
314
|
|
|
271
315
|
/**
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function onAll(editor: any, cbk: any): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ts/client/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,mCAAmC;AACnC,MAAM,UAAU,KAAK,CAAC,MAAM,EAAE,GAAG;IAC/B,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;SAClB,OAAO,CAAC,IAAI,CAAC,EAAE;QACd,IAAI,CAAC,gBAAgB,EAAE;aACpB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/ts/page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,yBAAyB;AACzB,4CAA4C;AAC5C,MAAM,UAAU,WAAW,CAAC,QAAQ;IAClC,OAAO,QAAQ;SACZ,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;QAC5B,uCAAuC;SACtC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;QACrB,kBAAkB;SACjB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxB,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,QAAQ,GAAG,OAAO;IAC5C,OAAO,KAAK,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAA;AAC1C,CAAC"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { getPageSlug } from '../../page.js';
|
|
2
|
-
import { onAll } from '../../client/utils.js';
|
|
3
|
-
import { ClientEvent } from '../../client/events.js';
|
|
4
|
-
export default (config, opts = {}) => {
|
|
5
|
-
const options = {
|
|
6
|
-
autoHomePage: false,
|
|
7
|
-
...opts,
|
|
8
|
-
html: {
|
|
9
|
-
frontMatter: false,
|
|
10
|
-
ext: '.html',
|
|
11
|
-
url: '/',
|
|
12
|
-
path: './',
|
|
13
|
-
...opts.html,
|
|
14
|
-
},
|
|
15
|
-
css: {
|
|
16
|
-
frontMatter: false,
|
|
17
|
-
ext: '.css',
|
|
18
|
-
url: '/css',
|
|
19
|
-
path: './css',
|
|
20
|
-
...opts.css,
|
|
21
|
-
},
|
|
22
|
-
assets: {
|
|
23
|
-
url: '/',
|
|
24
|
-
path: './',
|
|
25
|
-
...opts.assets,
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
config.on(ClientEvent.STARTUP_END, ({ editor }) => {
|
|
29
|
-
editor.on(ClientEvent.PUBLISH_START, () => {
|
|
30
|
-
// Update assets URL to display outside the editor
|
|
31
|
-
const assetsFolderUrl = options.assets.url;
|
|
32
|
-
if (assetsFolderUrl) {
|
|
33
|
-
// Concat the paths, handles the trailing and leading slashes
|
|
34
|
-
const publishedUrl = path => `${assetsFolderUrl.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`;
|
|
35
|
-
// New URLs for assets, according to site config
|
|
36
|
-
onAll(editor, c => {
|
|
37
|
-
// Attributes
|
|
38
|
-
if (c.get('type') === 'image') {
|
|
39
|
-
const src = c.get('src');
|
|
40
|
-
c.set('tmp-src', src);
|
|
41
|
-
c.set('src', publishedUrl(src));
|
|
42
|
-
}
|
|
43
|
-
//// Inline styles
|
|
44
|
-
//// This is handled by the editor.Css.getAll loop
|
|
45
|
-
//const bgUrl = c.getStyle()['background-image']?.match(/url\('(.*)'\)/)?.pop()
|
|
46
|
-
//if(bgUrl) {
|
|
47
|
-
// c.set('tmp-bg-url', bgUrl)
|
|
48
|
-
// c.setStyle({
|
|
49
|
-
// ...c.getStyle(),
|
|
50
|
-
// 'background-image': `url('${publishedUrl(bgUrl)}')`,
|
|
51
|
-
// })
|
|
52
|
-
//}
|
|
53
|
-
});
|
|
54
|
-
editor.Css.getAll()
|
|
55
|
-
.forEach(c => {
|
|
56
|
-
const bgUrl = c.getStyle()['background-image']?.match(/url\('(.*)'\)/)?.pop();
|
|
57
|
-
if (bgUrl) {
|
|
58
|
-
c.setStyle({
|
|
59
|
-
...c.getStyle(),
|
|
60
|
-
'background-image': `url('${publishedUrl(bgUrl)}')`,
|
|
61
|
-
});
|
|
62
|
-
c.set('tmp-bg-url-css', bgUrl);
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
editor.Pages.getAll().forEach(page => {
|
|
67
|
-
if (page.get('type') === 'main' && options?.autoHomePage) {
|
|
68
|
-
page.set('slug', 'index');
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
page.set('slug', getPageSlug(page.get('name') || page.get('type')));
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
editor.on(ClientEvent.PUBLISH_END, () => {
|
|
76
|
-
const assetsFolderUrl = options.assets.url;
|
|
77
|
-
// Reset asset URLs
|
|
78
|
-
if (assetsFolderUrl) {
|
|
79
|
-
onAll(editor, c => {
|
|
80
|
-
if (c.get('type') === 'image' && c.has('tmp-src')) {
|
|
81
|
-
c.set('src', c.get('tmp-src'));
|
|
82
|
-
c.set('tmp-src');
|
|
83
|
-
}
|
|
84
|
-
//// This is handled by the editor.Css.getAll loop
|
|
85
|
-
//if(c.getStyle()['background-image'] && c.has('tmp-bg-url')) {
|
|
86
|
-
// c.setStyle({
|
|
87
|
-
// ...c.getStyle(),
|
|
88
|
-
// 'background-image': `url('${c.get('tmp-bg-url')}')`,
|
|
89
|
-
// })
|
|
90
|
-
// c.set('tmp-bg-url')
|
|
91
|
-
//}
|
|
92
|
-
});
|
|
93
|
-
editor.Css.getAll()
|
|
94
|
-
.forEach(c => {
|
|
95
|
-
if (c.has('tmp-bg-url-css')) {
|
|
96
|
-
c.setStyle({
|
|
97
|
-
...c.getStyle(),
|
|
98
|
-
'background-image': `url('${c.get('tmp-bg-url-css')}')`,
|
|
99
|
-
});
|
|
100
|
-
c.set('tmp-bg-url-css');
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
editor.on(ClientEvent.PUBLISH_DATA, data => {
|
|
106
|
-
data.pages.forEach((page, idx) => {
|
|
107
|
-
const file = data.files[idx];
|
|
108
|
-
// CSS
|
|
109
|
-
file.cssPath = file.cssPath.replace(/\.css$/, options.css.ext);
|
|
110
|
-
file.cssPath = options.css.path + file.cssPath;
|
|
111
|
-
if (options.css.frontMatter) {
|
|
112
|
-
file.css = `---\npermalink: ${options.css.url}/${page.slug}.css\n---\n${file.css}`;
|
|
113
|
-
}
|
|
114
|
-
// HTML
|
|
115
|
-
file.htmlPath = file.htmlPath.replace(/\.html$/, options.html.ext);
|
|
116
|
-
file.htmlPath = options.html.path + file.htmlPath;
|
|
117
|
-
if (options.html.frontMatter) {
|
|
118
|
-
file.html = `---\npermalink: ${options.html.url}/${page.slug}.html\n---\n${file.html}`;
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
data.assets.forEach((asset, idx) => {
|
|
122
|
-
asset.path = options.assets.path + asset.src;
|
|
123
|
-
// The rest is handled by the editor.Css.getAll loop
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
//# sourceMappingURL=publicationRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publicationRenderer.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/client/publicationRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function (config: any, opts?: {}): Promise<void>;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Silex website builder, free/libre no-code tool for makers.
|
|
4
|
-
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
5
|
-
*
|
|
6
|
-
* This program is free software: you can redistribute it and/or modify
|
|
7
|
-
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
-
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
* GNU Affero General Public License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
-
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
async function default_1(config, opts = {}) {
|
|
20
|
-
// config.on('silex:startup:start', ({app}) => {
|
|
21
|
-
// const router = express.Router()
|
|
22
|
-
// router.post(['/publish', '/website', '/assets'], async function(req, res, next) {
|
|
23
|
-
// try {
|
|
24
|
-
// const token = req.body.token || opts.directusToken
|
|
25
|
-
// const directus = new Directus(opts.directusUrl)
|
|
26
|
-
// directus.storage.auth_token = token
|
|
27
|
-
// const me = await directus.users.me.read()
|
|
28
|
-
// next()
|
|
29
|
-
// } catch(err) {
|
|
30
|
-
// console.error('Publish failed in auth module. Did you provide a directus token?', err.message)
|
|
31
|
-
// res.status(403).json({ message: err.message })
|
|
32
|
-
// }
|
|
33
|
-
// })
|
|
34
|
-
// app.use(router)
|
|
35
|
-
// })
|
|
36
|
-
}
|
|
37
|
-
exports.default = default_1;
|
|
38
|
-
//# sourceMappingURL=AuthPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthPlugin.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/AuthPlugin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAKY,KAAK,oBAAU,MAAM,EAAE,IAAI,GAAG,EAAE;IAC/C,iDAAiD;IACjD,qCAAqC;IACrC,uFAAuF;IACvF,aAAa;IACb,4DAA4D;IAC5D,yDAAyD;IACzD,6CAA6C;IAC7C,mDAAmD;IACnD,gBAAgB;IAChB,sBAAsB;IACtB,wGAAwG;IACxG,wDAAwD;IACxD,SAAS;IACT,QAAQ;IACR,qBAAqB;IACrB,MAAM;AACN,CAAC;AAjBD,4BAiBC"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Silex website builder, free/libre no-code tool for makers.
|
|
4
|
-
* Copyright (c) 2023 lexoyo and Silex Labs foundation
|
|
5
|
-
*
|
|
6
|
-
* This program is free software: you can redistribute it and/or modify
|
|
7
|
-
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
-
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
* GNU Affero General Public License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
-
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
23
|
-
const events_1 = require("../../server/events");
|
|
24
|
-
// **********
|
|
25
|
-
throw new Error('TODO: implement hooks plugin');
|
|
26
|
-
// **********
|
|
27
|
-
async function default_1(config, opts = {}) {
|
|
28
|
-
// Options with defaults
|
|
29
|
-
const options = {
|
|
30
|
-
gitUrl: process.env.SILEX_HOOK_GIT,
|
|
31
|
-
buildUrl: process.env.SILEX_HOOK_BUILD,
|
|
32
|
-
websitePath: process.env.DATA_FOLDER,
|
|
33
|
-
assetsPath: process.env.ASSETS_FOLDER,
|
|
34
|
-
...opts
|
|
35
|
-
};
|
|
36
|
-
config.on(events_1.ServerEvent.WEBSITE_STORE_END, async ({ res, req, projectId, data }) => {
|
|
37
|
-
if (options.gitUrl) {
|
|
38
|
-
await hook(options.gitUrl, {
|
|
39
|
-
path: options.websitePath,
|
|
40
|
-
message: 'Change from Silex',
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
config.on(events_1.ServerEvent.WEBSITE_ASSET_STORE_END, async (e) => {
|
|
45
|
-
if (options.gitUrl) {
|
|
46
|
-
await hook(options.gitUrl, {
|
|
47
|
-
path: options.assetsPath,
|
|
48
|
-
message: 'Change from Silex',
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
config.on(events_1.ServerEvent.PUBLISH_END, async ({ projectId, files, req, res }) => {
|
|
53
|
-
if (options.buildUrl) {
|
|
54
|
-
await hook(options.buildUrl);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
exports.default = default_1;
|
|
59
|
-
async function hook(url, params = {}) {
|
|
60
|
-
if (url) {
|
|
61
|
-
const urlObj = new URL(url);
|
|
62
|
-
console.log('Calling hook', { url });
|
|
63
|
-
try {
|
|
64
|
-
Object.keys(params)
|
|
65
|
-
.forEach(key => urlObj.searchParams.append(key, params[key]));
|
|
66
|
-
return (0, node_fetch_1.default)(urlObj.toString());
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
console.log('Hook call failed', { url, error });
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=HooksPlugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HooksPlugin.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/HooksPlugin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;AAEH,4DAA8B;AAE9B,gDAAgF;AAOhF,aAAa;AACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;AAC/C,aAAa;AAEE,KAAK,oBAAU,MAAoB,EAAE,OAAqB,EAAE;IACzE,wBAAwB;IACxB,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;QACtC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QACpC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACrC,GAAG,IAAI;KACR,CAAA;IACD,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/E,IAAG,OAAO,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACzB,IAAI,EAAE,OAAO,CAAC,WAAW;gBACzB,OAAO,EAAE,mBAAmB;aAC7B,CAAC,CAAA;SACH;IACH,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,uBAAuB,EAAE,KAAK,EAAE,CAAgC,EAAE,EAAE;QACxF,IAAG,OAAO,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACzB,IAAI,EAAE,OAAO,CAAC,UAAU;gBACxB,OAAO,EAAE,mBAAmB;aAC7B,CAAC,CAAA;SACH;IACH,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1E,IAAG,OAAO,CAAC,QAAQ,EAAE;YACnB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AA9BD,4BA8BC;AAED,KAAK,UAAU,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE;IAClC,IAAG,GAAG,EAAE;QACN,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAC,GAAG,EAAC,CAAC,CAAA;QAClC,IAAI;YACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;iBAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAC/D,OAAO,IAAA,oBAAK,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;SAChC;QAAC,OAAM,KAAK,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC,CAAC,CAAA;YAC7C,OAAO,IAAI,CAAA;SACZ;KACF;AACH,CAAC"}
|
|
@@ -1,64 +0,0 @@
|
|
|
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
|
-
import directusStorage from 'https://unpkg.com/@silexlabs/grapesjs-directus-storage'
|
|
19
|
-
console.log('directusStorage', directusStorage, directusStorage?.default)
|
|
20
|
-
|
|
21
|
-
// Use the environment variable SILEX_CLIENT_CONFIG or the CLI option --client-config to override the default config with this file
|
|
22
|
-
export default async function (config, options) {
|
|
23
|
-
console.log('In example config')
|
|
24
|
-
//await config.addPlugin('gjs-blocks-basic', 'https://unpkg.com/grapesjs-blocks-basic', {
|
|
25
|
-
// blocks: ['text', 'image', 'video', 'map'],
|
|
26
|
-
//})
|
|
27
|
-
|
|
28
|
-
// Optional plugins
|
|
29
|
-
await config.addPlugin([
|
|
30
|
-
'@silexlabs/grapesjs-directus-storage',
|
|
31
|
-
'./plugins/@silexlabs/grapesjs-directus-storage/dist/index.js',
|
|
32
|
-
], {
|
|
33
|
-
'@silexlabs/grapesjs-directus-storage': {
|
|
34
|
-
directusUrl: 'http://localhost:8055',
|
|
35
|
-
},
|
|
36
|
-
'./plugins/@silexlabs/grapesjs-directus-storage/dist/index.js': {
|
|
37
|
-
directusUrl: 'http://localhost:8055',
|
|
38
|
-
},
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
// Return an object to override default config
|
|
42
|
-
return {
|
|
43
|
-
...config,
|
|
44
|
-
...options,
|
|
45
|
-
editor: {
|
|
46
|
-
...config.editor,
|
|
47
|
-
storageManager: {
|
|
48
|
-
autoload: false,
|
|
49
|
-
type: 'directus',
|
|
50
|
-
},
|
|
51
|
-
plugins: [
|
|
52
|
-
...config.editor.plugins,
|
|
53
|
-
directusStorage,
|
|
54
|
-
],
|
|
55
|
-
pluginsOpts: {
|
|
56
|
-
...config.editor.pluginsOpts,
|
|
57
|
-
[directusStorage]: {
|
|
58
|
-
directusUrl: 'http://localhost:8055',
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { getPageSlug } from '../../page.js'
|
|
2
|
-
import { Page } from '../../types.js'
|
|
3
|
-
import { onAll } from '../../client/utils.js'
|
|
4
|
-
import { ClientEvent } from '../../client/events.js'
|
|
5
|
-
|
|
6
|
-
export default (config, opts: any = {}) => {
|
|
7
|
-
const options = {
|
|
8
|
-
autoHomePage: false,
|
|
9
|
-
...opts,
|
|
10
|
-
html: {
|
|
11
|
-
frontMatter: false,
|
|
12
|
-
ext: '.html',
|
|
13
|
-
url: '/',
|
|
14
|
-
path: './',
|
|
15
|
-
...opts.html,
|
|
16
|
-
},
|
|
17
|
-
css: {
|
|
18
|
-
frontMatter: false,
|
|
19
|
-
ext: '.css',
|
|
20
|
-
url: '/css',
|
|
21
|
-
path: './css',
|
|
22
|
-
...opts.css,
|
|
23
|
-
},
|
|
24
|
-
assets: {
|
|
25
|
-
url: '/',
|
|
26
|
-
path: './',
|
|
27
|
-
...opts.assets,
|
|
28
|
-
},
|
|
29
|
-
}
|
|
30
|
-
config.on(ClientEvent.STARTUP_END, ({ editor }) => {
|
|
31
|
-
editor.on(ClientEvent.PUBLISH_START, () => {
|
|
32
|
-
// Update assets URL to display outside the editor
|
|
33
|
-
const assetsFolderUrl = options.assets.url
|
|
34
|
-
if (assetsFolderUrl) {
|
|
35
|
-
// Concat the paths, handles the trailing and leading slashes
|
|
36
|
-
const publishedUrl = path => `${assetsFolderUrl.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`
|
|
37
|
-
// New URLs for assets, according to site config
|
|
38
|
-
onAll(editor, c => {
|
|
39
|
-
// Attributes
|
|
40
|
-
if (c.get('type') === 'image') {
|
|
41
|
-
const src = c.get('src')
|
|
42
|
-
c.set('tmp-src', src)
|
|
43
|
-
c.set('src', publishedUrl(src))
|
|
44
|
-
}
|
|
45
|
-
//// Inline styles
|
|
46
|
-
//// This is handled by the editor.Css.getAll loop
|
|
47
|
-
//const bgUrl = c.getStyle()['background-image']?.match(/url\('(.*)'\)/)?.pop()
|
|
48
|
-
//if(bgUrl) {
|
|
49
|
-
// c.set('tmp-bg-url', bgUrl)
|
|
50
|
-
// c.setStyle({
|
|
51
|
-
// ...c.getStyle(),
|
|
52
|
-
// 'background-image': `url('${publishedUrl(bgUrl)}')`,
|
|
53
|
-
// })
|
|
54
|
-
//}
|
|
55
|
-
})
|
|
56
|
-
editor.Css.getAll()
|
|
57
|
-
.forEach(c => {
|
|
58
|
-
const bgUrl = c.getStyle()['background-image']?.match(/url\('(.*)'\)/)?.pop()
|
|
59
|
-
if (bgUrl) {
|
|
60
|
-
c.setStyle({
|
|
61
|
-
...c.getStyle(),
|
|
62
|
-
'background-image': `url('${publishedUrl(bgUrl)}')`,
|
|
63
|
-
})
|
|
64
|
-
c.set('tmp-bg-url-css' as any, bgUrl)
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
editor.Pages.getAll().forEach(page => {
|
|
69
|
-
if (page.get('type') === 'main' && options?.autoHomePage) {
|
|
70
|
-
page.set('slug', 'index')
|
|
71
|
-
} else {
|
|
72
|
-
page.set('slug', getPageSlug(page.get('name') || page.get('type')))
|
|
73
|
-
}
|
|
74
|
-
})
|
|
75
|
-
})
|
|
76
|
-
editor.on(ClientEvent.PUBLISH_END, () => {
|
|
77
|
-
const assetsFolderUrl = options.assets.url
|
|
78
|
-
// Reset asset URLs
|
|
79
|
-
if (assetsFolderUrl) {
|
|
80
|
-
onAll(editor, c => {
|
|
81
|
-
if (c.get('type') === 'image' && c.has('tmp-src')) {
|
|
82
|
-
c.set('src', c.get('tmp-src'))
|
|
83
|
-
c.set('tmp-src')
|
|
84
|
-
}
|
|
85
|
-
//// This is handled by the editor.Css.getAll loop
|
|
86
|
-
//if(c.getStyle()['background-image'] && c.has('tmp-bg-url')) {
|
|
87
|
-
// c.setStyle({
|
|
88
|
-
// ...c.getStyle(),
|
|
89
|
-
// 'background-image': `url('${c.get('tmp-bg-url')}')`,
|
|
90
|
-
// })
|
|
91
|
-
// c.set('tmp-bg-url')
|
|
92
|
-
//}
|
|
93
|
-
})
|
|
94
|
-
editor.Css.getAll()
|
|
95
|
-
.forEach(c => {
|
|
96
|
-
if (c.has('tmp-bg-url-css' as any)) {
|
|
97
|
-
c.setStyle({
|
|
98
|
-
...c.getStyle(),
|
|
99
|
-
'background-image': `url('${c.get('tmp-bg-url-css' as any)}')`,
|
|
100
|
-
})
|
|
101
|
-
c.set('tmp-bg-url-css' as any)
|
|
102
|
-
}
|
|
103
|
-
})
|
|
104
|
-
}
|
|
105
|
-
})
|
|
106
|
-
editor.on(ClientEvent.PUBLISH_DATA, data => {
|
|
107
|
-
data.pages.forEach((page: Page, idx) => {
|
|
108
|
-
const file = data.files[idx]
|
|
109
|
-
// CSS
|
|
110
|
-
file.cssPath = file.cssPath.replace(/\.css$/, options.css.ext)
|
|
111
|
-
file.cssPath = options.css.path + file.cssPath
|
|
112
|
-
if (options.css.frontMatter) {
|
|
113
|
-
file.css = `---\npermalink: ${options.css.url}/${page.slug}.css\n---\n${file.css}`
|
|
114
|
-
}
|
|
115
|
-
// HTML
|
|
116
|
-
file.htmlPath = file.htmlPath.replace(/\.html$/, options.html.ext)
|
|
117
|
-
file.htmlPath = options.html.path + file.htmlPath
|
|
118
|
-
if (options.html.frontMatter) {
|
|
119
|
-
file.html = `---\npermalink: ${options.html.url}/${page.slug}.html\n---\n${file.html}`
|
|
120
|
-
}
|
|
121
|
-
})
|
|
122
|
-
data.assets.forEach((asset, idx) => {
|
|
123
|
-
asset.path = options.assets.path + asset.src
|
|
124
|
-
// The rest is handled by the editor.Css.getAll loop
|
|
125
|
-
})
|
|
126
|
-
})
|
|
127
|
-
})
|
|
128
|
-
}
|