@webhandle/ckeditor-4 1.0.0 → 1.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/README.md +34 -0
- package/initialize-webhandle-component.mjs +43 -36
- package/package.json +6 -1
- package/public/js/convert-textareas.mjs +28 -0
- package/pages/index.tri +0 -64
- package/test.mjs +0 -11
package/README.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# @webhandle/ckeditor-4
|
|
2
|
+
|
|
3
|
+
Adds the resource for the ckeditor 4 module and includes the css for the editor.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Install
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install @webhandle/ckeditor-4
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```js
|
|
15
|
+
import setupCKEditor from "@webhandle/ckeditor-4/initialize-webhandle-component.mjs";
|
|
16
|
+
|
|
17
|
+
let ckManager = await setupCKEditor(webhandle)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
To get everything ready:
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
__externalResourceManager::@webhandle/ckeditor-4/addExternalResources__
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
or just to convert textarea elements marked with class `.ckeditor`
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
__::@webhandle/ckeditor-4/convertTextareas__
|
|
34
|
+
```
|
|
@@ -14,60 +14,60 @@ initializeWebhandleComponent.staticFilePath = 'public'
|
|
|
14
14
|
initializeWebhandleComponent.templatePath = 'views'
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
initializeWebhandleComponent.setup = async function(webhandle, config) {
|
|
17
|
+
initializeWebhandleComponent.setup = async function (webhandle, config) {
|
|
18
18
|
let manager = new ComponentManager()
|
|
19
19
|
manager.config = config
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
let base = webhandle.projectRoot
|
|
22
22
|
try {
|
|
23
23
|
let info = webhandle.sinks.project.getFullFileInfo('node_modules/ckeditor4')
|
|
24
24
|
}
|
|
25
|
-
catch(e) {
|
|
25
|
+
catch (e) {
|
|
26
26
|
base = initializeWebhandleComponent.componentDir
|
|
27
27
|
}
|
|
28
28
|
manager.staticPaths.push(
|
|
29
29
|
webhandle.addStaticDir(
|
|
30
30
|
path.join(base, 'node_modules/ckeditor4')
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
, {
|
|
32
|
+
urlPrefix: '/@webhandle/ckeditor-4/ck-files'
|
|
33
|
+
, fixedSetOfFiles: true
|
|
34
|
+
})
|
|
35
35
|
)
|
|
36
36
|
manager.staticPaths.push(
|
|
37
37
|
webhandle.addStaticDir(
|
|
38
38
|
path.join(base, 'node_modules/@webhandle/ckeditor-multi-widget-panel/public/ckeditor')
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
, {
|
|
40
|
+
urlPrefix: '/@webhandle/ckeditor-4/ck-files'
|
|
41
|
+
, fixedSetOfFiles: true
|
|
42
|
+
})
|
|
43
43
|
)
|
|
44
44
|
manager.staticPaths.push(
|
|
45
45
|
webhandle.addStaticDir(
|
|
46
46
|
path.join(base, 'node_modules/@dankolz/picture-ckeditor-plugin/public/ckeditor')
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
, {
|
|
48
|
+
urlPrefix: '/@webhandle/ckeditor-4/ck-files'
|
|
49
|
+
, fixedSetOfFiles: true
|
|
50
|
+
})
|
|
51
51
|
)
|
|
52
52
|
manager.staticPaths.push(
|
|
53
53
|
webhandle.addStaticDir(
|
|
54
54
|
path.join(base, 'node_modules/@dankolz/template-ckeditor-plugin/public/ckeditor')
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
, {
|
|
56
|
+
urlPrefix: '/@webhandle/ckeditor-4/ck-files'
|
|
57
|
+
, fixedSetOfFiles: true
|
|
58
|
+
})
|
|
59
59
|
)
|
|
60
60
|
|
|
61
61
|
manager.staticPaths.push(
|
|
62
62
|
webhandle.addStaticDir(
|
|
63
63
|
path.join(initializeWebhandleComponent.componentDir, 'public')
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
64
|
+
, {
|
|
65
|
+
urlPrefix: '/@webhandle/ckeditor-4/files'
|
|
66
|
+
, fixedSetOfFiles: true
|
|
67
|
+
})
|
|
68
68
|
)
|
|
69
69
|
|
|
70
|
-
manager.addExternalResources = function(externalResourceManager) {
|
|
70
|
+
manager.addExternalResources = function (externalResourceManager) {
|
|
71
71
|
externalResourceManager.provideResource({
|
|
72
72
|
mimeType: 'application/javascript'
|
|
73
73
|
, url: '/@webhandle/ckeditor-4/ck-files/ckeditor.js'
|
|
@@ -91,25 +91,32 @@ initializeWebhandleComponent.setup = async function(webhandle, config) {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
webhandle.addTemplate(initializeWebhandleComponent.componentName + '/addExternalResources', (data) => {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
return resources
|
|
99
|
-
}
|
|
100
|
-
catch(e) {
|
|
101
|
-
console.log(e)
|
|
102
|
-
}
|
|
103
|
-
return ""
|
|
94
|
+
let externalResourceManager = initializeWebhandleComponent.getExternalResourceManager(data)
|
|
95
|
+
manager.addExternalResources(externalResourceManager)
|
|
96
|
+
let resources = externalResourceManager.render()
|
|
97
|
+
return resources
|
|
104
98
|
})
|
|
105
99
|
|
|
100
|
+
|
|
101
|
+
webhandle.addTemplate(initializeWebhandleComponent.componentName + '/convertTextareas', (data) => {
|
|
102
|
+
let externalResourceManager = initializeWebhandleComponent.getExternalResourceManager(data)
|
|
103
|
+
manager.addExternalResources(externalResourceManager)
|
|
104
|
+
externalResourceManager.includeResource({
|
|
105
|
+
mimeType: 'application/javascript'
|
|
106
|
+
, url: '/@webhandle/ckeditor-4/files/js/convert-textareas.mjs'
|
|
107
|
+
, resourceType: 'module'
|
|
108
|
+
})
|
|
109
|
+
let resources = externalResourceManager.render()
|
|
110
|
+
return resources
|
|
111
|
+
})
|
|
112
|
+
|
|
106
113
|
// webhandle.routers.preDynamic.use((req, res, next) => {
|
|
107
114
|
// if(config.alwaysProvideResources || !initializeWebhandleComponent.supportsMultipleImportMaps(req)) {
|
|
108
115
|
// manager.addExternalResources(res.locals.externalResourceManager)
|
|
109
116
|
// }
|
|
110
117
|
// next()
|
|
111
118
|
// })
|
|
112
|
-
|
|
119
|
+
|
|
113
120
|
// manager.addExternalResources = (externalResourceManager, options) => {
|
|
114
121
|
// externalResourceManager.includeResource({
|
|
115
122
|
// mimeType: 'text/css'
|
|
@@ -159,7 +166,7 @@ initializeWebhandleComponent.setup = async function(webhandle, config) {
|
|
|
159
166
|
// }
|
|
160
167
|
// )
|
|
161
168
|
// )
|
|
162
|
-
|
|
169
|
+
|
|
163
170
|
// webhandle.addTemplateDir(
|
|
164
171
|
// path.join(initializeWebhandleComponent.componentDir, initializeWebhandleComponent.templatePath)
|
|
165
172
|
// , {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webhandle/ckeditor-4",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -25,4 +25,9 @@
|
|
|
25
25
|
"@webhandle/initialize-webhandle-component": "^1.0.4",
|
|
26
26
|
"ckeditor4": "4.22"
|
|
27
27
|
}
|
|
28
|
+
, "files": [
|
|
29
|
+
"initialize-webhandle-component.mjs"
|
|
30
|
+
, "public"
|
|
31
|
+
, "README.md"
|
|
32
|
+
]
|
|
28
33
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
|
|
2
|
+
let editorId = (new Date()).getTime
|
|
3
|
+
let areas = document.querySelectorAll('textarea.ckeditor')
|
|
4
|
+
let upgradedAttribute = 'data-ckeditor-upgraded'
|
|
5
|
+
for(const area of areas) {
|
|
6
|
+
let upgraded = area.getAttribute(upgradedAttribute)
|
|
7
|
+
if(!upgraded) {
|
|
8
|
+
area.setAttribute(upgradedAttribute, 'true')
|
|
9
|
+
let id = area.getAttribute('id')
|
|
10
|
+
if(!id) {
|
|
11
|
+
id = 'i' + editorId++
|
|
12
|
+
area.setAttribute('id', id)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
let editorOptions = {
|
|
16
|
+
on: {
|
|
17
|
+
change: function(event) {
|
|
18
|
+
area.value = event.editor.getData()
|
|
19
|
+
},
|
|
20
|
+
blur: function( event ) {
|
|
21
|
+
area.value = event.editor.getData()
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
, customConfig: '/@webhandle/ckeditor-4/files/conf/std-config.js'
|
|
25
|
+
}
|
|
26
|
+
CKEDITOR.replace(id, editorOptions)
|
|
27
|
+
}
|
|
28
|
+
}
|
package/pages/index.tri
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
|
|
4
|
-
<head>
|
|
5
|
-
__externalResourceManager.render()__
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
</head>
|
|
9
|
-
|
|
10
|
-
<body>
|
|
11
|
-
|
|
12
|
-
__externalResourceManager::@webhandle/ckeditor-4/addExternalResources__
|
|
13
|
-
<div id="editor" style="height: 500px; border: solid 1px black;">
|
|
14
|
-
|
|
15
|
-
</div>
|
|
16
|
-
<textarea class="ckeditor" id="teditor"></textarea>
|
|
17
|
-
|
|
18
|
-
<script type="module">
|
|
19
|
-
let id = 'editor'
|
|
20
|
-
|
|
21
|
-
let editorEl = document.querySelector('#' + id)
|
|
22
|
-
editorEl.setAttribute('contenteditable', 'true')
|
|
23
|
-
editorEl.classList.add('page-editor-editable')
|
|
24
|
-
|
|
25
|
-
let editorOptions = {
|
|
26
|
-
on: {
|
|
27
|
-
change: function(event) {
|
|
28
|
-
console.log('change')
|
|
29
|
-
},
|
|
30
|
-
blur: function( event ) {
|
|
31
|
-
console.log('blur')
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
, customConfig: '/@webhandle/ckeditor-4/files/conf/std-config.js'
|
|
35
|
-
}
|
|
36
|
-
CKEDITOR.inline(id, editorOptions)
|
|
37
|
-
|
|
38
|
-
id = 'teditor'
|
|
39
|
-
editorEl = document.querySelector('#' + id)
|
|
40
|
-
editorOptions = {
|
|
41
|
-
on: {
|
|
42
|
-
change: function(event) {
|
|
43
|
-
// console.log(event)
|
|
44
|
-
// console.log(event.editor.getData())
|
|
45
|
-
document.querySelector('#' + id).value = event.editor.getData()
|
|
46
|
-
},
|
|
47
|
-
blur: function( event ) {
|
|
48
|
-
console.log(event)
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
, customConfig: '/@webhandle/ckeditor-4/files/conf/std-config.js'
|
|
52
|
-
}
|
|
53
|
-
CKEDITOR.replace(id, editorOptions)
|
|
54
|
-
</script>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
__externalResourceManager.render()__
|
|
61
|
-
</body>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
</html>
|
package/test.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import setupCKEditor from "./initialize-webhandle-component.mjs";
|
|
2
|
-
export default async function test(webhandle) {
|
|
3
|
-
webhandle.development = true
|
|
4
|
-
|
|
5
|
-
let ckManager = await setupCKEditor(webhandle)
|
|
6
|
-
|
|
7
|
-
// webhandle.routers.primary.use((req, res, next) => {
|
|
8
|
-
// ckManager.addExternalResources(res.locals.externalResourceManager)
|
|
9
|
-
// next()
|
|
10
|
-
// })
|
|
11
|
-
}
|