@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.
Files changed (250) hide show
  1. package/.env.default +3 -2
  2. package/.silex.js +39 -1
  3. package/README.md +37 -35
  4. package/dist/client/client/api.d.ts +8 -1
  5. package/dist/client/client/assetUrl.d.ts +54 -0
  6. package/dist/client/client/config.d.ts +60 -1
  7. package/dist/client/client/events.d.ts +19 -10
  8. package/dist/client/client/grapesjs/PublicationManager.d.ts +6 -8
  9. package/dist/client/client/grapesjs/PublicationUi.d.ts +8 -10
  10. package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
  11. package/dist/client/client/grapesjs/css-props.d.ts +6 -0
  12. package/dist/client/client/grapesjs/footer.d.ts +2 -0
  13. package/dist/client/client/grapesjs/img.d.ts +6 -0
  14. package/dist/client/client/grapesjs/index.d.ts +6 -2
  15. package/dist/client/client/grapesjs/internal-links.d.ts +1 -1
  16. package/dist/client/client/grapesjs/keymaps.d.ts +123 -0
  17. package/dist/client/client/grapesjs/new-page-dialog.d.ts +1 -1
  18. package/dist/client/client/grapesjs/page-panel.d.ts +7 -1
  19. package/dist/client/client/grapesjs/project-bar.d.ts +20 -0
  20. package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
  21. package/dist/client/client/grapesjs/rich-text.d.ts +4 -1
  22. package/dist/client/client/grapesjs/semantic.d.ts +1 -1
  23. package/dist/client/client/grapesjs/settings-sections.d.ts +16 -0
  24. package/dist/client/client/grapesjs/settings.d.ts +3 -1
  25. package/dist/client/client/grapesjs/storage.d.ts +1 -0
  26. package/dist/client/client/grapesjs/symbolDialogs.d.ts +1 -1
  27. package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
  28. package/dist/client/client/index.d.ts +5 -0
  29. package/dist/client/client/publication-transformers.d.ts +42 -0
  30. package/dist/client/client/publish-custom-code-block.d.ts +4 -0
  31. package/dist/client/client/publish-fonts.d.ts +4 -0
  32. package/dist/client/client/utils.d.ts +22 -1
  33. package/dist/client/constants.d.ts +3 -0
  34. package/dist/client/css/admin.css +1107 -411
  35. package/dist/client/css/admin.css.map +1 -0
  36. package/dist/client/grapesjs-filter-styles/dist/index.d.ts +4 -0
  37. package/dist/client/grapesjs-fonts/dist/index.d.ts +4 -0
  38. package/dist/client/grapesjs-fonts/src/commands.d.ts +3 -0
  39. package/dist/client/grapesjs-fonts/src/fonts.d.ts +4 -0
  40. package/dist/client/grapesjs-storage-rate-limit/dist/index.d.ts +4 -0
  41. package/dist/client/grapesjs-ui-suggest-classes/dist/index.d.ts +4 -0
  42. package/dist/client/index.html +3 -2
  43. package/dist/client/js/main.js +305 -170
  44. package/dist/client/js/main.js.LICENSE.txt +21 -1
  45. package/dist/client/page.d.ts +1 -1
  46. package/dist/client/silex-lib/src/ts/client/api.d.ts +90 -0
  47. package/dist/client/silex-lib/src/ts/client/assetUrl.d.ts +54 -0
  48. package/dist/client/silex-lib/src/ts/client/config.d.ts +102 -0
  49. package/dist/client/silex-lib/src/ts/client/events.d.ts +23 -0
  50. package/dist/client/silex-lib/src/ts/client/expose.d.ts +8 -0
  51. package/dist/client/silex-lib/src/ts/client/grapesjs/LoginDialog.d.ts +15 -0
  52. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationManager.d.ts +73 -0
  53. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationUi.d.ts +59 -0
  54. package/dist/client/silex-lib/src/ts/client/grapesjs/blocks.d.ts +1 -0
  55. package/dist/client/silex-lib/src/ts/client/grapesjs/breadcrumbs.d.ts +1 -0
  56. package/dist/client/silex-lib/src/ts/client/grapesjs/css-props.d.ts +6 -0
  57. package/dist/client/silex-lib/src/ts/client/grapesjs/footer.d.ts +2 -0
  58. package/dist/client/silex-lib/src/ts/client/grapesjs/img.d.ts +6 -0
  59. package/dist/client/silex-lib/src/ts/client/grapesjs/index.d.ts +9 -0
  60. package/dist/client/silex-lib/src/ts/client/grapesjs/internal-links.d.ts +1 -0
  61. package/dist/client/silex-lib/src/ts/client/grapesjs/keymaps.d.ts +123 -0
  62. package/dist/client/silex-lib/src/ts/client/grapesjs/new-page-dialog.d.ts +2 -0
  63. package/dist/client/silex-lib/src/ts/client/grapesjs/openImport.d.ts +9 -0
  64. package/dist/client/silex-lib/src/ts/client/grapesjs/page-panel.d.ts +9 -0
  65. package/dist/client/silex-lib/src/ts/client/grapesjs/project-bar.d.ts +21 -0
  66. package/dist/client/silex-lib/src/ts/client/grapesjs/resize-panel.d.ts +1 -0
  67. package/dist/client/silex-lib/src/ts/client/grapesjs/rich-text.d.ts +4 -0
  68. package/dist/client/silex-lib/src/ts/client/grapesjs/semantic.d.ts +1 -0
  69. package/dist/client/silex-lib/src/ts/client/grapesjs/settings-sections.d.ts +16 -0
  70. package/dist/client/silex-lib/src/ts/client/grapesjs/settings.d.ts +4 -0
  71. package/dist/client/silex-lib/src/ts/client/grapesjs/storage.d.ts +2 -0
  72. package/dist/client/silex-lib/src/ts/client/grapesjs/symbolDialogs.d.ts +3 -0
  73. package/dist/client/silex-lib/src/ts/client/grapesjs/view-buttons.d.ts +1 -0
  74. package/dist/client/silex-lib/src/ts/client/index.d.ts +10 -0
  75. package/dist/client/silex-lib/src/ts/client/publication-transformers.d.ts +42 -0
  76. package/dist/client/silex-lib/src/ts/client/publish-custom-code-block.d.ts +4 -0
  77. package/dist/client/silex-lib/src/ts/client/publish-fonts.d.ts +4 -0
  78. package/dist/client/silex-lib/src/ts/client/utils.d.ts +22 -0
  79. package/dist/client/silex-lib/src/ts/constants.d.ts +32 -0
  80. package/dist/client/silex-lib/src/ts/page.d.ts +2 -0
  81. package/dist/client/silex-lib/src/ts/types.d.ts +339 -0
  82. package/dist/client/types.d.ts +59 -35
  83. package/dist/plugins/client/client/events.d.ts +19 -10
  84. package/dist/plugins/client/client/events.js +11 -0
  85. package/dist/plugins/client/client/events.js.map +1 -1
  86. package/dist/plugins/client/plugins/client/template.js +119 -71
  87. package/dist/plugins/client/plugins/client/template.js.map +1 -1
  88. package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
  89. package/dist/plugins/client/plugins/client/website-info.js +72 -0
  90. package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
  91. package/dist/plugins/client/types.d.ts +59 -35
  92. package/dist/plugins/client/types.js +23 -0
  93. package/dist/plugins/client/types.js.map +1 -1
  94. package/dist/plugins/server/constants.d.ts +3 -0
  95. package/dist/plugins/server/constants.js +28 -1
  96. package/dist/plugins/server/constants.js.map +1 -1
  97. package/dist/plugins/server/plugins/server/Cache.js +9 -5
  98. package/dist/plugins/server/plugins/server/Cache.js.map +1 -1
  99. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
  100. package/dist/plugins/server/plugins/server/DownloadConnector.js +127 -0
  101. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
  102. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +5 -2
  103. package/dist/plugins/server/plugins/server/FtpConnector.js +38 -23
  104. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -1
  105. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +63 -9
  106. package/dist/plugins/server/plugins/server/GitlabConnector.js +367 -91
  107. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
  108. package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +16 -0
  109. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +209 -0
  110. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -0
  111. package/dist/plugins/server/plugins/server/SslPlugin.js +6 -6
  112. package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -1
  113. package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +8 -1
  114. package/dist/plugins/server/plugins/server/StaticPlugin.js +5 -31
  115. package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -1
  116. package/dist/plugins/server/server/config.js +8 -9
  117. package/dist/plugins/server/server/config.js.map +1 -1
  118. package/dist/plugins/server/server/connectors/FsHosting.d.ts +3 -2
  119. package/dist/plugins/server/server/connectors/FsHosting.js +18 -7
  120. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -1
  121. package/dist/plugins/server/server/connectors/FsStorage.d.ts +3 -1
  122. package/dist/plugins/server/server/connectors/FsStorage.js +35 -28
  123. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
  124. package/dist/plugins/server/server/connectors/connectors.d.ts +7 -7
  125. package/dist/plugins/server/server/connectors/connectors.js +6 -7
  126. package/dist/plugins/server/server/connectors/connectors.js.map +1 -1
  127. package/dist/plugins/server/server/events.js +16 -0
  128. package/dist/plugins/server/server/events.js.map +1 -1
  129. package/dist/plugins/server/server/jobs.d.ts +6 -0
  130. package/dist/plugins/server/server/jobs.js +12 -8
  131. package/dist/plugins/server/server/jobs.js.map +1 -1
  132. package/dist/plugins/server/server/utils/validation.js +1 -2
  133. package/dist/plugins/server/server/utils/validation.js.map +1 -1
  134. package/dist/plugins/server/types.d.ts +59 -35
  135. package/dist/plugins/server/types.js +24 -1
  136. package/dist/plugins/server/types.js.map +1 -1
  137. package/dist/server/constants.js +27 -1
  138. package/dist/server/plugins/server/Cache.js +9 -5
  139. package/dist/server/server/api/api.js +1 -1
  140. package/dist/server/server/api/connectorApi.js +154 -25
  141. package/dist/server/server/api/publicationApi.js +17 -25
  142. package/dist/server/server/api/websiteApi.js +30 -8
  143. package/dist/server/server/cli.js +9 -6
  144. package/dist/server/server/config.js +8 -9
  145. package/dist/server/server/connectors/FsHosting.js +17 -7
  146. package/dist/server/server/connectors/FsStorage.js +34 -28
  147. package/dist/server/server/connectors/connectors.js +6 -7
  148. package/dist/server/server/express.js +4 -5
  149. package/dist/server/server/index.js +5 -1
  150. package/dist/server/server/jobs.js +11 -8
  151. package/dist/server/server/utils/validation.js +1 -2
  152. package/dist/server/types.js +13 -1
  153. package/package.json +56 -42
  154. package/public/assets/download.png +0 -0
  155. package/public/assets/favicon.ico +0 -0
  156. package/public/assets/favicon.png +0 -0
  157. package/public/assets/ftp.png +0 -0
  158. package/public/assets/gitlab.png +0 -0
  159. package/public/assets/gitlab2.png +0 -0
  160. package/public/assets/laptop.png +0 -0
  161. package/public/assets/logo-silex-small.png +0 -0
  162. package/public/silex.js +5 -23
  163. package/src/css/_variables.scss +23 -20
  164. package/src/css/dialog.scss +27 -1
  165. package/src/css/fonts.scss +31 -0
  166. package/src/css/footer.scss +12 -0
  167. package/src/css/grapesjs-light.scss +180 -0
  168. package/src/css/grapesjs-plugins.scss +227 -0
  169. package/src/css/grapesjs.scss +84 -10
  170. package/src/css/index.scss +12 -1
  171. package/src/css/light.scss +7 -0
  172. package/src/css/project-bar.scss +32 -16
  173. package/src/css/silex.scss +79 -5
  174. package/src/css/website-info.scss +14 -0
  175. package/src/html/index.pug +3 -3
  176. package/src/ts/client/api.ts +38 -14
  177. package/src/ts/client/assetUrl.test.ts +164 -0
  178. package/src/ts/client/assetUrl.ts +254 -0
  179. package/src/ts/client/config.ts +133 -5
  180. package/src/ts/client/events.ts +21 -9
  181. package/src/ts/client/grapesjs/LoginDialog.ts +4 -2
  182. package/src/ts/client/grapesjs/PublicationManager.ts +180 -54
  183. package/src/ts/client/grapesjs/PublicationUi.ts +122 -86
  184. package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
  185. package/src/ts/client/grapesjs/css-props.ts +910 -0
  186. package/src/ts/client/grapesjs/eleventy.ts +11 -8
  187. package/{dist/plugins/client/page.js → src/ts/client/grapesjs/footer.ts} +24 -13
  188. package/src/ts/client/grapesjs/img.ts +147 -0
  189. package/src/ts/client/grapesjs/index.ts +234 -52
  190. package/src/ts/client/grapesjs/internal-links.test.ts +2 -1
  191. package/src/ts/client/grapesjs/internal-links.ts +14 -7
  192. package/src/ts/client/grapesjs/keymaps.ts +207 -0
  193. package/src/ts/client/grapesjs/new-page-dialog.ts +2 -3
  194. package/src/ts/client/grapesjs/page-panel.ts +92 -7
  195. package/src/ts/client/grapesjs/project-bar.ts +116 -72
  196. package/src/ts/client/grapesjs/resize-panel.ts +20 -0
  197. package/src/ts/client/grapesjs/rich-text.ts +21 -13
  198. package/src/ts/client/grapesjs/semantic.ts +3 -3
  199. package/src/ts/client/grapesjs/settings-sections.ts +117 -0
  200. package/src/ts/client/grapesjs/settings.ts +174 -96
  201. package/src/ts/client/grapesjs/storage.ts +98 -33
  202. package/src/ts/client/grapesjs/symbolDialogs.ts +3 -4
  203. package/src/ts/{plugins/server/AuthPlugin.ts → client/grapesjs/view-buttons.ts} +23 -19
  204. package/src/ts/client/index.ts +35 -16
  205. package/src/ts/client/publication-transformers.test.ts +207 -0
  206. package/src/ts/client/publication-transformers.ts +280 -0
  207. package/{dist/plugins/client/client/utils.js → src/ts/client/publish-custom-code-block.ts} +14 -8
  208. package/src/ts/client/publish-fonts.ts +36 -0
  209. package/src/ts/client/utils.ts +53 -1
  210. package/src/ts/constants.ts +31 -0
  211. package/src/ts/page.ts +2 -2
  212. package/src/ts/plugins/client/template.ts +125 -75
  213. package/src/ts/plugins/client/website-info.ts +84 -0
  214. package/src/ts/plugins/server/Cache.ts +6 -2
  215. package/src/ts/plugins/server/DownloadConnector.ts +146 -0
  216. package/src/ts/plugins/server/FtpConnector.ts +47 -21
  217. package/src/ts/plugins/server/GitlabConnector.ts +423 -108
  218. package/src/ts/plugins/server/GitlabHostingConnector.ts +215 -0
  219. package/src/ts/plugins/server/SslPlugin.ts +5 -5
  220. package/src/ts/plugins/server/StaticPlugin.ts +3 -30
  221. package/src/ts/server/api/connectorApi.ts +165 -28
  222. package/src/ts/server/api/publicationApi.ts +17 -24
  223. package/src/ts/server/api/websiteApi.ts +57 -14
  224. package/src/ts/server/cli.ts +7 -5
  225. package/src/ts/server/config.ts +9 -10
  226. package/src/ts/server/connectors/FsHosting.ts +14 -8
  227. package/src/ts/server/connectors/FsStorage.ts +40 -7
  228. package/src/ts/server/connectors/connectors.ts +8 -6
  229. package/src/ts/server/events.ts +17 -0
  230. package/src/ts/server/express.ts +2 -2
  231. package/src/ts/server/index.ts +6 -0
  232. package/src/ts/server/jobs.ts +14 -2
  233. package/src/ts/server/utils/BackwardCompat.ts +530 -529
  234. package/src/ts/types.ts +78 -34
  235. package/dist/plugins/client/client/utils.d.ts +0 -1
  236. package/dist/plugins/client/client/utils.js.map +0 -1
  237. package/dist/plugins/client/page.d.ts +0 -2
  238. package/dist/plugins/client/page.js.map +0 -1
  239. package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +0 -2
  240. package/dist/plugins/client/plugins/client/publicationRenderer.js +0 -128
  241. package/dist/plugins/client/plugins/client/publicationRenderer.js.map +0 -1
  242. package/dist/plugins/server/plugins/server/AuthPlugin.d.ts +0 -1
  243. package/dist/plugins/server/plugins/server/AuthPlugin.js +0 -38
  244. package/dist/plugins/server/plugins/server/AuthPlugin.js.map +0 -1
  245. package/dist/plugins/server/plugins/server/HooksPlugin.d.ts +0 -7
  246. package/dist/plugins/server/plugins/server/HooksPlugin.js +0 -74
  247. package/dist/plugins/server/plugins/server/HooksPlugin.js.map +0 -1
  248. package/src/example-client-config.js +0 -64
  249. package/src/ts/plugins/client/publicationRenderer.ts +0 -128
  250. 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 = WebsiteMetaFileContent
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?: WebsiteFile[], // Added by the client for publish
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 Page {
134
- name?: string,
135
- id: string,
136
- type?: string,
137
- frames: Frame[],
138
- settings?: WebsiteSettings,
139
- cssExt?: string,
140
- htmlExt?: string,
141
- slug?: string,
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 = object
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
- * @see connector/File
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 ClientSideFile {
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: Date
268
- updatedAt: Date
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,2 +0,0 @@
1
- export declare function getPageSlug(pageName: any): any;
2
- export declare function getPageLink(pageName?: string): string;
@@ -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,2 +0,0 @@
1
- declare const _default: (config: any, opts?: any) => void;
2
- export default _default;
@@ -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,7 +0,0 @@
1
- import { ServerConfig } from '../../server/config';
2
- type HooksOptions = {
3
- gitUrl?: string;
4
- buildUrl?: string;
5
- };
6
- export default function (config: ServerConfig, opts?: HooksOptions): Promise<void>;
7
- export {};
@@ -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
- }