mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 18:12:29 +08:00
chore(ckeditor): clean up old build-trilium files
This commit is contained in:
parent
abf7cd86d3
commit
588ea2674a
@ -1,14 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* eslint-env node */
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
rules: {
|
|
||||||
'ckeditor5-rules/ckeditor-imports': 'off'
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,78 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@ckeditor/ckeditor5-build-trilium",
|
|
||||||
"version": "43.2.0",
|
|
||||||
"description": "The document editor build of CKEditor 5 – the best browser-based rich text editor.",
|
|
||||||
"keywords": [
|
|
||||||
"ckeditor5-build",
|
|
||||||
"ckeditor",
|
|
||||||
"ckeditor5",
|
|
||||||
"ckeditor 5",
|
|
||||||
"wysiwyg",
|
|
||||||
"rich text",
|
|
||||||
"editor",
|
|
||||||
"html",
|
|
||||||
"contentEditable",
|
|
||||||
"editing",
|
|
||||||
"operational transformation",
|
|
||||||
"ot",
|
|
||||||
"collaboration",
|
|
||||||
"collaborative",
|
|
||||||
"real-time",
|
|
||||||
"framework"
|
|
||||||
],
|
|
||||||
"main": "./build/ckeditor.js",
|
|
||||||
"types": "./build/ckeditor.d.ts",
|
|
||||||
"files": [
|
|
||||||
"build",
|
|
||||||
"ckeditor5-metadata.json",
|
|
||||||
"CHANGELOG.md"
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"@ckeditor/ckeditor5-adapter-ckfinder": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-alignment": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-autoformat": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-basic-styles": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-block-quote": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-ckbox": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-ckfinder": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-cloud-services": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-easy-image": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-editor-decoupled": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-essentials": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-font": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-heading": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-image": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-indent": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-link": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-list": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-media-embed": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-paragraph": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-paste-from-office": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-table": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-typing": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-utils": "43.2.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@ckeditor/ckeditor5-core": "43.2.0",
|
|
||||||
"@ckeditor/ckeditor5-dev-translations": "^43.0.0",
|
|
||||||
"@ckeditor/ckeditor5-dev-utils": "^43.0.0",
|
|
||||||
"@ckeditor/ckeditor5-theme-lark": "43.2.0",
|
|
||||||
"terser-webpack-plugin": "^4.2.3",
|
|
||||||
"typescript": "5.0.4",
|
|
||||||
"webpack": "^5.94.0",
|
|
||||||
"webpack-cli": "^5.1.4"
|
|
||||||
},
|
|
||||||
"author": "CKSource (http://cksource.com/)",
|
|
||||||
"license": "GPL-2.0-or-later",
|
|
||||||
"homepage": "https://ckeditor.com/ckeditor-5",
|
|
||||||
"bugs": "https://github.com/ckeditor/ckeditor5/issues",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/ckeditor/ckeditor5.git",
|
|
||||||
"directory": "packages/ckeditor5-build-decoupled-document"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "webpack --mode production",
|
|
||||||
"postbuild": "tsc -p ./tsconfig.types.json"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>CKEditor 5 – document editor build – development sample</title>
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
max-width: 1000px;
|
|
||||||
margin: 20px auto;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<h1>CKEditor 5 – document editor build – development sample</h1>
|
|
||||||
|
|
||||||
<h2>The toolbar</h2>
|
|
||||||
<div class="toolbar-container"></div>
|
|
||||||
|
|
||||||
<h2>The editable</h2>
|
|
||||||
<div class="editable-container"></div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.editable-container,
|
|
||||||
.toolbar-container {
|
|
||||||
position: relative;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
background: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toolbar-container {
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.editable-container {
|
|
||||||
padding: 3em;
|
|
||||||
overflow-y: scroll;
|
|
||||||
max-height: 500px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.editable-container .ck-content {
|
|
||||||
min-height: 21cm;
|
|
||||||
padding: 2em;
|
|
||||||
border: 1px #D3D3D3 solid;
|
|
||||||
border-radius: var(--ck-border-radius);
|
|
||||||
background: white;
|
|
||||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script src="../build/ckeditor.js"></script>
|
|
||||||
<script>
|
|
||||||
const editorData = `<h2>Sample</h2>
|
|
||||||
<p>This is an instance of the <a href="https://ckeditor.com/docs/ckeditor5/latest/installation/getting-started/predefined-builds.html#document-editor">document editor build</a>.</p>
|
|
||||||
<figure class="image">
|
|
||||||
<img src="../tests/manual/sample.jpg" alt="Autumn fields" />
|
|
||||||
</figure>
|
|
||||||
<p>You can use this sample to validate whether your <a href="https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/alternative-setups/custom-builds.html">custom build</a> works fine.</p>`;
|
|
||||||
|
|
||||||
DecoupledEditor.create( editorData )
|
|
||||||
.then( editor => {
|
|
||||||
window.editor = editor;
|
|
||||||
|
|
||||||
document.querySelector( '.toolbar-container' ).appendChild( editor.ui.view.toolbar.element );
|
|
||||||
document.querySelector( '.editable-container' ).appendChild( editor.ui.view.editable.element );
|
|
||||||
} )
|
|
||||||
.catch( error => {
|
|
||||||
console.error( 'There was a problem initializing the editor.', error );
|
|
||||||
} );
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,18 +0,0 @@
|
|||||||
const fs = require("fs");
|
|
||||||
|
|
||||||
const sourcePackageJson = JSON.parse(fs.readFileSync("../ckeditor5-build-decoupled-document/package.json"));
|
|
||||||
const destPackageJson = JSON.parse(fs.readFileSync("./package.json"));
|
|
||||||
|
|
||||||
function updateDependencies(sourceDeps, destDeps) {
|
|
||||||
for (const [ name, version ] of Object.entries(sourceDeps)) {
|
|
||||||
destDeps[name] = version;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
updateDependencies(sourcePackageJson.dependencies, destPackageJson.dependencies);
|
|
||||||
updateDependencies(sourcePackageJson.devDependencies, destPackageJson.devDependencies);
|
|
||||||
|
|
||||||
const coreVersion = sourcePackageJson.devDependencies["@ckeditor/ckeditor5-core"];
|
|
||||||
destPackageJson.version = coreVersion;
|
|
||||||
|
|
||||||
fs.writeFileSync("./package.json", JSON.stringify(destPackageJson, null, 2));
|
|
@ -1,261 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* globals document */
|
|
||||||
|
|
||||||
import DecoupledEditor from '../src/ckeditor.js';
|
|
||||||
import BaseDecoupledEditor from '@ckeditor/ckeditor5-editor-decoupled/src/decouplededitor.js';
|
|
||||||
import { describeMemoryUsage, testMemoryUsage } from '@ckeditor/ckeditor5-core/tests/_utils/memory.js';
|
|
||||||
|
|
||||||
describe( 'DecoupledEditor build', () => {
|
|
||||||
let editor, editorData, editorElement;
|
|
||||||
|
|
||||||
beforeEach( () => {
|
|
||||||
editorData = '<p><strong>foo</strong> bar</p>';
|
|
||||||
|
|
||||||
editorElement = document.createElement( 'div' );
|
|
||||||
editorElement.innerHTML = editorData;
|
|
||||||
|
|
||||||
document.body.appendChild( editorElement );
|
|
||||||
} );
|
|
||||||
|
|
||||||
afterEach( () => {
|
|
||||||
editorElement.remove();
|
|
||||||
editor = null;
|
|
||||||
} );
|
|
||||||
|
|
||||||
describe( 'build', () => {
|
|
||||||
it( 'contains plugins', () => {
|
|
||||||
expect( DecoupledEditor.builtinPlugins ).to.not.be.empty;
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'contains config', () => {
|
|
||||||
expect( DecoupledEditor.defaultConfig.toolbar ).to.not.be.empty;
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
describe( 'editor with data', () => {
|
|
||||||
test( () => editorData );
|
|
||||||
|
|
||||||
it( 'does not define the UI DOM structure', () => {
|
|
||||||
return DecoupledEditor.create( editorData )
|
|
||||||
.then( newEditor => {
|
|
||||||
expect( newEditor.ui.view.element ).to.be.null;
|
|
||||||
expect( newEditor.ui.view.toolbar.element.parentElement ).to.be.null;
|
|
||||||
expect( newEditor.ui.view.editable.element.parentElement ).to.be.null;
|
|
||||||
|
|
||||||
return newEditor.destroy();
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
describe( 'editor with editable element', () => {
|
|
||||||
test( () => editorElement );
|
|
||||||
|
|
||||||
it( 'uses the provided editable element', () => {
|
|
||||||
return DecoupledEditor.create( editorElement )
|
|
||||||
.then( newEditor => {
|
|
||||||
expect( newEditor.ui.view.editable.element.parentElement ).to.equal( document.body );
|
|
||||||
|
|
||||||
return newEditor.destroy();
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
describeMemoryUsage( () => {
|
|
||||||
testMemoryUsage(
|
|
||||||
'should not grow on multiple create/destroy',
|
|
||||||
() => DecoupledEditor.create( document.querySelector( '#mem-editor' ) ) );
|
|
||||||
} );
|
|
||||||
|
|
||||||
function test( getEditorDataOrElement ) {
|
|
||||||
describe( 'create()', () => {
|
|
||||||
beforeEach( () => {
|
|
||||||
return DecoupledEditor.create( getEditorDataOrElement() )
|
|
||||||
.then( newEditor => {
|
|
||||||
editor = newEditor;
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
afterEach( () => {
|
|
||||||
return editor.destroy();
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'creates an instance which inherits from the DecoupledEditor', () => {
|
|
||||||
expect( editor ).to.be.instanceof( BaseDecoupledEditor );
|
|
||||||
expect( editor ).to.be.instanceof( BaseDecoupledEditor );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'loads passed data', () => {
|
|
||||||
expect( editor.getData() ).to.equal( '<p><strong>foo</strong> bar</p>' );
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
describe( 'destroy()', () => {
|
|
||||||
beforeEach( () => {
|
|
||||||
return DecoupledEditor.create( getEditorDataOrElement() )
|
|
||||||
.then( newEditor => {
|
|
||||||
editor = newEditor;
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
describe( 'plugins', () => {
|
|
||||||
beforeEach( () => {
|
|
||||||
return DecoupledEditor.create( getEditorDataOrElement() )
|
|
||||||
.then( newEditor => {
|
|
||||||
editor = newEditor;
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
afterEach( () => {
|
|
||||||
return editor.destroy();
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'paragraph works', () => {
|
|
||||||
const data = '<p>Some text inside a paragraph.</p>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'basic-styles work', () => {
|
|
||||||
const data = [
|
|
||||||
'<p>',
|
|
||||||
'<strong>Test:strong</strong>',
|
|
||||||
'<i>Test:i</i>',
|
|
||||||
'<u>Test:u</u>',
|
|
||||||
'<s>Test:s</s>',
|
|
||||||
'</p>'
|
|
||||||
].join( '' );
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'block-quote works', () => {
|
|
||||||
const data = '<blockquote><p>Quote</p></blockquote>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'heading works', () => {
|
|
||||||
const data = [
|
|
||||||
'<h2>Heading 1.</h2>',
|
|
||||||
'<h3>Heading 1.1</h3>',
|
|
||||||
'<h4>Heading 1.1.1</h4>',
|
|
||||||
'<h4>Heading 1.1.2</h4>',
|
|
||||||
'<h3>Heading 1.2</h3>',
|
|
||||||
'<h4>Heading 1.2.1</h4>',
|
|
||||||
'<h2>Heading 2</h2>'
|
|
||||||
].join( '' );
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'image works', () => {
|
|
||||||
const data = '<figure class="image"><img src="/assets/sample.png"></figure>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'list works', () => {
|
|
||||||
const data = [
|
|
||||||
'<ul>',
|
|
||||||
'<li>Item 1.</li>',
|
|
||||||
'<li>Item 2.</li>',
|
|
||||||
'</ul>',
|
|
||||||
'<ol>',
|
|
||||||
'<li>Item 1.</li>',
|
|
||||||
'<li>Item 2.</li>',
|
|
||||||
'</ol>'
|
|
||||||
].join( '' );
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'list style works', () => {
|
|
||||||
const data = [
|
|
||||||
'<ol style="list-style-type:upper-roman;">' +
|
|
||||||
'<li>Item 1.</li>' +
|
|
||||||
'<li>Item 2.</li>' +
|
|
||||||
'</ol>'
|
|
||||||
].join( '' );
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'link works', () => {
|
|
||||||
const data = '<p><a href="//ckeditor.com">CKEditor.com</a></p>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'font size works', () => {
|
|
||||||
const data = '<p><span class="text-big">foo</span></p>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
expect( editor.model.document.selection.getAttribute( 'fontSize' ) ).to.equal( 'big' );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'font family works', () => {
|
|
||||||
const data = '<p><span style="font-family:Georgia, serif;">foo</span></p>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
expect( editor.model.document.selection.getAttribute( 'fontFamily' ) ).to.equal( 'Georgia, serif' );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'font background color works', () => {
|
|
||||||
const data = '<p><span style="background-color:hsl(60,75%,60%);">foo</span></p>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
expect( editor.model.document.selection.getAttribute( 'fontBackgroundColor' ) ).to.equal( 'hsl(60,75%,60%)' );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'font color works', () => {
|
|
||||||
const data = '<p><span style="color:hsl(0,75%,60%);">foo</span></p>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
expect( editor.model.document.selection.getAttribute( 'fontColor' ) ).to.equal( 'hsl(0,75%,60%)' );
|
|
||||||
} );
|
|
||||||
|
|
||||||
it( 'alignment works', () => {
|
|
||||||
const data = '<p style="text-align:right;">foo</p>';
|
|
||||||
|
|
||||||
editor.setData( data );
|
|
||||||
expect( editor.getData() ).to.equal( data );
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
|
|
||||||
describe( 'config', () => {
|
|
||||||
afterEach( () => {
|
|
||||||
return editor.destroy();
|
|
||||||
} );
|
|
||||||
|
|
||||||
// https://github.com/ckeditor/ckeditor5/issues/572
|
|
||||||
it( 'allows configure toolbar items through config.toolbar', () => {
|
|
||||||
return DecoupledEditor
|
|
||||||
.create( getEditorDataOrElement(), {
|
|
||||||
toolbar: [ 'bold' ]
|
|
||||||
} )
|
|
||||||
.then( newEditor => {
|
|
||||||
editor = newEditor;
|
|
||||||
|
|
||||||
expect( editor.ui.view.toolbar.items.length ).to.equal( 1 );
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
} );
|
|
@ -1,74 +0,0 @@
|
|||||||
<h2>The toolbar</h2>
|
|
||||||
<div class="toolbar-container"></div>
|
|
||||||
|
|
||||||
<h2>The editable</h2>
|
|
||||||
<div class="editable-container">
|
|
||||||
<div id="editor">
|
|
||||||
<h2>About CKEditor 5</h2>
|
|
||||||
|
|
||||||
<p>This is <a href="https://ckeditor.com">CKEditor 5</a>.</p>
|
|
||||||
|
|
||||||
<figure class="image">
|
|
||||||
<img src="./sample.jpg" alt="Autumn fields" />
|
|
||||||
</figure>
|
|
||||||
|
|
||||||
<p>After more than 2 years of building the next generation editor from scratch and closing over 980 tickets,
|
|
||||||
we created a highly <strong>extensible and flexible architecture</strong> which consists of an <strong>amazing
|
|
||||||
editing framework</strong> and <strong>editing solutions</strong> that will be built on top of it.</p>
|
|
||||||
|
|
||||||
<p>We explained this design choice in
|
|
||||||
<a href="https://medium.com/content-uneditable/ckeditor-5-the-future-of-rich-text-editing-2b9300f9df2c">“CKEditor 5:
|
|
||||||
The future of rich text editing“</a>:</p>
|
|
||||||
|
|
||||||
<blockquote><p>(…) we are changing our approach with CKEditor 5. We will no longer have only two solutions
|
|
||||||
available, instead CKEditor will be seen as a framework for editing solutions. At the same time, we will be
|
|
||||||
developing several out-of-the-box solutions based on it, which will be available to use in many different contexts.
|
|
||||||
It will be a real “one size fits all” approach, from little requirements, to super advanced full featured
|
|
||||||
applications.</p></blockquote>
|
|
||||||
|
|
||||||
<h3>Notes</h3>
|
|
||||||
|
|
||||||
<p><a href="https://ckeditor.com">CKEditor 5</a> is <i>under heavy development</i> and this demo
|
|
||||||
is not production-ready software. For example:</p>
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li><strong>Only Chrome, Opera and Safari are supported</strong>.</li>
|
|
||||||
<li>Firefox requires enabling the
|
|
||||||
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/onselectionchange">
|
|
||||||
“dom.select_events.enabled”</a> option.</li>
|
|
||||||
<li><a href="https://github.com/ckeditor/ckeditor5/issues/342">Support for pasting</a>
|
|
||||||
is under development (content filtering is unstable).</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<p>It has <em>bugs</em> that we are aware of — and that we will be working on in the next few
|
|
||||||
iterations of the project. Stay tuned for some updates soon!</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.editable-container,
|
|
||||||
.toolbar-container {
|
|
||||||
position: relative;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
background: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toolbar-container {
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.editable-container {
|
|
||||||
padding: 3em;
|
|
||||||
overflow-y: scroll;
|
|
||||||
max-height: 500px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.editable-container > .ck-editor__editable {
|
|
||||||
min-height: 21cm;
|
|
||||||
padding: 2em;
|
|
||||||
border: 1px #D3D3D3 solid;
|
|
||||||
border-radius: var(--ck-border-radius);
|
|
||||||
background: white;
|
|
||||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,19 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* eslint-env commonjs */
|
|
||||||
/* globals window, document, console */
|
|
||||||
|
|
||||||
const DecoupledEditor = require( '../../build/ckeditor' );
|
|
||||||
|
|
||||||
DecoupledEditor.create( document.querySelector( '#editor' ) )
|
|
||||||
.then( editor => {
|
|
||||||
document.querySelector( '.toolbar-container' ).appendChild( editor.ui.view.toolbar.element );
|
|
||||||
|
|
||||||
window.editor = editor;
|
|
||||||
} )
|
|
||||||
.catch( error => {
|
|
||||||
console.error( 'There was a problem initializing the editor.', error );
|
|
||||||
} );
|
|
@ -1,9 +0,0 @@
|
|||||||
# CKEditor 5 document editor build – standard version (CommonJS `require()`)
|
|
||||||
|
|
||||||
Just play with it.
|
|
||||||
|
|
||||||
**Note:** Remember to rebuild the bundles by running `npm run build` in build's package directory. You can also run webpack in the watch mode:
|
|
||||||
|
|
||||||
```
|
|
||||||
./node_modules/.bin/webpack -w
|
|
||||||
```
|
|
@ -1,97 +0,0 @@
|
|||||||
<h2>The toolbar</h2>
|
|
||||||
<div class="toolbar-container"></div>
|
|
||||||
|
|
||||||
<h2>The editable</h2>
|
|
||||||
<div class="editable-container">
|
|
||||||
<div id="editor">
|
|
||||||
<h2>About CKEditor 5</h2>
|
|
||||||
|
|
||||||
<p>This is <a href="https://ckeditor.com">CKEditor 5</a>.</p>
|
|
||||||
|
|
||||||
<figure class="image">
|
|
||||||
<img src="./sample.jpg" alt="Autumn fields" />
|
|
||||||
</figure>
|
|
||||||
|
|
||||||
<p>After more than 2 years of building the next generation editor from scratch and closing over 980 tickets,
|
|
||||||
we created a highly <strong>extensible and flexible architecture</strong> which consists of an <strong>amazing
|
|
||||||
editing framework</strong> and <strong>editing solutions</strong> that will be built on top of it.</p>
|
|
||||||
|
|
||||||
<p>We explained this design choice in
|
|
||||||
<a href="https://medium.com/content-uneditable/ckeditor-5-the-future-of-rich-text-editing-2b9300f9df2c">“CKEditor 5:
|
|
||||||
The future of rich text editing“</a>:</p>
|
|
||||||
|
|
||||||
<blockquote><p>(…) we are changing our approach with CKEditor 5. We will no longer have only two solutions
|
|
||||||
available, instead CKEditor will be seen as a framework for editing solutions. At the same time, we will be
|
|
||||||
developing several out-of-the-box solutions based on it, which will be available to use in many different contexts.
|
|
||||||
It will be a real “one size fits all” approach, from little requirements, to super advanced full featured
|
|
||||||
applications.</p></blockquote>
|
|
||||||
|
|
||||||
<h3>Notes</h3>
|
|
||||||
|
|
||||||
<p><a href="https://ckeditor.com">CKEditor 5</a> is <i>under heavy development</i> and this demo
|
|
||||||
is not production-ready software. For example:</p>
|
|
||||||
|
|
||||||
<ol style="list-style-type:upper-roman;">
|
|
||||||
<li><strong>Only Chrome, Opera and Safari are supported</strong>.</li>
|
|
||||||
<li>Firefox requires enabling the
|
|
||||||
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Document/onselectionchange">
|
|
||||||
“dom.select_events.enabled”</a> option.</li>
|
|
||||||
<li><a href="https://github.com/ckeditor/ckeditor5/issues/342">Support for pasting</a>
|
|
||||||
is under development (content filtering is unstable).</li>
|
|
||||||
</ol>
|
|
||||||
|
|
||||||
<p>It has <em>bugs</em> that we are aware of — and that we will be working on in the next few
|
|
||||||
iterations of the project. Stay tuned for some updates soon!</p>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Version</th>
|
|
||||||
<th>Release date</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>10.0.1</td>
|
|
||||||
<td>May 22, 2018</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>10.0.0</td>
|
|
||||||
<td>April 25, 2018</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>10.0.0-beta.2</td>
|
|
||||||
<td>April 10, 2018</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.editable-container,
|
|
||||||
.toolbar-container {
|
|
||||||
position: relative;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
background: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toolbar-container {
|
|
||||||
padding: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.editable-container {
|
|
||||||
padding: 3em;
|
|
||||||
overflow-y: scroll;
|
|
||||||
max-height: 500px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.editable-container > .ck-editor__editable {
|
|
||||||
min-height: 21cm;
|
|
||||||
padding: 2em;
|
|
||||||
border: 1px #D3D3D3 solid;
|
|
||||||
border-radius: var(--ck-border-radius);
|
|
||||||
background: white;
|
|
||||||
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,18 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* globals window, document, console */
|
|
||||||
|
|
||||||
import DecoupledEditor from '../../build/ckeditor.js';
|
|
||||||
|
|
||||||
DecoupledEditor.create( document.querySelector( '#editor' ) )
|
|
||||||
.then( editor => {
|
|
||||||
document.querySelector( '.toolbar-container' ).appendChild( editor.ui.view.toolbar.element );
|
|
||||||
|
|
||||||
window.editor = editor;
|
|
||||||
} )
|
|
||||||
.catch( error => {
|
|
||||||
console.error( 'There was a problem initializing the editor.', error );
|
|
||||||
} );
|
|
@ -1,9 +0,0 @@
|
|||||||
# CKEditor 5 document editor build – standard version
|
|
||||||
|
|
||||||
Just play with it.
|
|
||||||
|
|
||||||
**Note:** Remember to rebuild the bundles by running `npm run build` in build's package directory. You can also run webpack in the watch mode:
|
|
||||||
|
|
||||||
```
|
|
||||||
./node_modules/.bin/webpack -w
|
|
||||||
```
|
|
Binary file not shown.
Before Width: | Height: | Size: 112 KiB |
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "ckeditor5/tsconfig.json",
|
|
||||||
"include": [
|
|
||||||
"src",
|
|
||||||
"../../typings"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "ckeditor5/tsconfig.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"declaration": true,
|
|
||||||
"emitDeclarationOnly": true,
|
|
||||||
"declarationDir": "build",
|
|
||||||
"stripInternal": true
|
|
||||||
},
|
|
||||||
"include": [
|
|
||||||
"src",
|
|
||||||
"../../typings"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,77 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
|
|
||||||
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
/* eslint-env node */
|
|
||||||
|
|
||||||
const path = require( 'path' );
|
|
||||||
const webpack = require( 'webpack' );
|
|
||||||
const { bundler, loaders } = require( '@ckeditor/ckeditor5-dev-utils' );
|
|
||||||
const { CKEditorTranslationsPlugin } = require( '@ckeditor/ckeditor5-dev-translations' );
|
|
||||||
const TerserPlugin = require( 'terser-webpack-plugin' );
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
devtool: 'source-map',
|
|
||||||
performance: { hints: false },
|
|
||||||
|
|
||||||
entry: path.resolve( __dirname, 'src', 'ckeditor.ts' ),
|
|
||||||
|
|
||||||
output: {
|
|
||||||
// The name under which the editor will be exported.
|
|
||||||
library: 'CKEditor',
|
|
||||||
|
|
||||||
path: path.resolve( __dirname, 'build' ),
|
|
||||||
filename: 'ckeditor.js',
|
|
||||||
libraryTarget: 'umd',
|
|
||||||
libraryExport: 'default'
|
|
||||||
},
|
|
||||||
|
|
||||||
optimization: {
|
|
||||||
minimizer: [
|
|
||||||
new TerserPlugin( {
|
|
||||||
sourceMap: true,
|
|
||||||
terserOptions: {
|
|
||||||
output: {
|
|
||||||
// Preserve CKEditor 5 license comments.
|
|
||||||
comments: /^!/
|
|
||||||
}
|
|
||||||
},
|
|
||||||
extractComments: false
|
|
||||||
} )
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
plugins: [
|
|
||||||
new CKEditorTranslationsPlugin( {
|
|
||||||
// UI language. Language codes follow the https://en.wikipedia.org/wiki/ISO_639-1 format.
|
|
||||||
// When changing the built-in language, remember to also change it in the editor's configuration (src/ckeditor.js).
|
|
||||||
language: 'en',
|
|
||||||
additionalLanguages: 'all'
|
|
||||||
} ),
|
|
||||||
new webpack.BannerPlugin( {
|
|
||||||
banner: bundler.getLicenseBanner(),
|
|
||||||
raw: true
|
|
||||||
} )
|
|
||||||
],
|
|
||||||
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
loaders.getIconsLoader( { matchExtensionOnly: true } ),
|
|
||||||
loaders.getStylesLoader( {
|
|
||||||
themePath: require.resolve( '@ckeditor/ckeditor5-theme-lark' ),
|
|
||||||
minify: true
|
|
||||||
} ),
|
|
||||||
loaders.getTypeScriptLoader()
|
|
||||||
]
|
|
||||||
},
|
|
||||||
|
|
||||||
resolve: {
|
|
||||||
extensions: [ '.ts', '.js', '.json' ],
|
|
||||||
extensionAlias: {
|
|
||||||
'.js': [ '.js', '.ts' ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@triliumnext/ckeditor5",
|
"name": "@triliumnext/ckeditor5",
|
||||||
"version": "0.0.1",
|
"description": "The document editor build of CKEditor 5 – the best browser-based rich text editor.",
|
||||||
|
"version": "43.2.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user