CKEditor

Setup

This demo uses the CDN of CKEditor as a showcase. There are other integration possibilities. For more information to setup see CKEditor.

Only working with internet access of the browser, because of the use of a CDN.

The setup needs entries in tobago-config.xml for CSP. More infomation about these entries you find also on their webside.

Not working with CSP mode='on'! Can be turned off in tobago-config.xml, or configured correctly.

This page contains two <tc:script/> tags, one for the CKEditor itself and the other for the initialization in this demo. The <tc:textarea/> contain <tc:dataAttribute name="html-editor" value="ckeditor"/>, to mark this textarea to be used as rich text editor. The initialization is done by the init-ckeditor.js script.

init-ckeditor.js

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
document.addEventListener("DOMContentLoaded", (event) => {
ClassicEditor.create( document.querySelector( "textarea[data-html-editor=ckeditor]" ) )
.then( editor => {
console.log( editor );
} )
.catch( error => {
console.error( error );
} );
});
<?xml version="1.0" encoding="UTF-8"?> <!-- * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. --> <ui:composition template="/main.xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:tc="http://myfaces.apache.org/tobago/component" xmlns:ui="http://java.sun.com/jsf/facelets"> <tc:script file="https://cdn.ckeditor.com/ckeditor5/25.0.0/classic/ckeditor.js"/> <tc:script file="#{request.contextPath}/content/20-component/110-wysiwyg/01-ckeditor/init-ckeditor.js"/> <ui:param name="title" value="#{demoBundle.ckeditor}"/> <tc:section label="Setup"> <p> This demo uses the CDN of CKEditor as a showcase. There are other integration possibilities. For more information to setup see <tc:link image="fa-external-link" link="https://ckeditor.com//" label="CKEditor"/>. </p> <p> <tc:badge value="Only working with internet access of the browser, because of the use of a CDN." markup="info"/> </p> <p> The setup needs entries in <code>tobago-config.xml</code> for CSP. More infomation about these entries you find also on their webside. </p> <p> <tc:badge value="Not working with CSP mode='on'! Can be turned off in tobago-config.xml, or configured correctly." markup="warning"/> </p> <p> This page contains two <code class="language-markup">&lt;tc:script/></code> tags, one for the CKEditor itself and the other for the initialization in this demo. The <code class="language-markup">&lt;tc:textarea/></code> contain <code class="language-markup">&lt;tc:dataAttribute name="html-editor" value="ckeditor"/></code>, to mark this textarea to be used as rich text editor. The initialization is done by the <code>init-ckeditor.js</code> script. </p> <tc:box id="sourceCodeBox" label="init-ckeditor.js" collapsed="true" collapsedMode="hidden"> <f:facet name="bar"> <tc:buttons> <tc:button label="show" omit="true"> <tc:operation name="show" for="sourceCodeBox"/> </tc:button> <tc:button label="hide" omit="true"> <tc:operation name="hide" for="sourceCodeBox"/> </tc:button> </tc:buttons> </f:facet> <pre><code class="language-javascript"><tc:out value="#{ckeditorController.source}"/></code></pre> </tc:box> <tc:textarea value="#{ckeditorController.text}"> <tc:dataAttribute name="html-editor" value="ckeditor"/> </tc:textarea> <tc:button label="Submit"/> </tc:section> </ui:composition>