123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Rich Editor</title>
- </head>
- <body>
- <style>
- #container {
- width: 1000px;
- margin: 20px auto;
- }
- .ck-editor__editable[role="textbox"] {
- /* Editing area */
- min-height: 600px;
- }
- .ck-content .image {
- /* Block images */
- max-width: 80%;
- margin: 20px auto;
- }
- /* 居中编辑器标题 */
- h2 {
- text-align: center;
- }
- </style>
- <h2>Rich Editor</h2>
- <div id="container">
- <div id="editor"></div>
- </div>
- <!--
- The "superbuild" of CKEditor 5 served via CDN contains a large set of plugins and multiple editor types.
- See https://ckeditor.com/docs/ckeditor5/latest/installation/getting-started/quick-start.html#running-a-full-featured-editor-from-cdn
- -->
- <script src="https://cdn.ckeditor.com/ckeditor5/41.1.0/super-build/ckeditor.js"></script>
- <script>
- ClassicEditor
- .create(document.getElementById('editor'))
- .then(editor => {
- const savedData = localStorage.getItem('editorData');
- if (savedData) {
- editor.setData(savedData);
- }
- editor.model.document.on('change:data', () => {
- const editorData = editor.getData();
- localStorage.setItem('editorData', editorData);
- });
- })
- .catch(error => {
- console.error(error);
- });
- </script>
- <!-- Uncomment to load the Spanish translation -->
- <!-- <script src="https://cdn.ckeditor.com/ckeditor5/41.1.0/super-build/translations/es.js"></script> -->
- <script>
- // This sample still does not showcase all CKEditor 5 features (!)
- // Visit https://ckeditor.com/docs/ckeditor5/latest/features/index.html to browse all the features.
- CKEDITOR.ClassicEditor.create(document.getElementById("editor"), {
- // https://ckeditor.com/docs/ckeditor5/latest/features/toolbar/toolbar.html#extended-toolbar-configuration-format
- toolbar: {
- items: [
- 'exportPDF','exportWord', '|',
- 'findAndReplace', 'selectAll', '|',
- 'heading', '|',
- 'bold', 'italic', 'strikethrough', 'underline', 'code', 'subscript', 'superscript', 'removeFormat', '|',
- 'bulletedList', 'numberedList', 'todoList', '|',
- 'outdent', 'indent', '|',
- 'undo', 'redo',
- '-',
- 'fontSize', 'fontFamily', 'fontColor', 'fontBackgroundColor', 'highlight', '|',
- 'alignment', '|',
- 'link', 'uploadImage', 'blockQuote', 'insertTable', 'mediaEmbed', 'codeBlock', 'htmlEmbed', '|',
- 'specialCharacters', 'horizontalLine', 'pageBreak', '|',
- 'textPartLanguage', '|',
- 'sourceEditing'
- ],
- shouldNotGroupWhenFull: true
- },
- // Changing the language of the interface requires loading the language file using the <script> tag.
- // language: 'es',
- language: {
- textPartLanguage: [
- { title: 'Arabic', languageCode: 'ar' },
- { title: '中文', languageCode: 'zh' },
- { title: 'English', languageCode: 'en' },
- { title: 'French', languageCode: 'fr' },
- { title: 'Hebrew', languageCode: 'he' },
- { title: 'español', languageCode: 'es' }
- ]
- },
- list: {
- properties: {
- styles: true,
- startIndex: true,
- reversed: true
- }
- },
- // https://ckeditor.com/docs/ckeditor5/latest/features/headings.html#configuration
- heading: {
- options: [
- { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
- { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
- { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },
- { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },
- { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },
- { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },
- { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }
- ]
- },
- // https://ckeditor.com/docs/ckeditor5/latest/features/editor-placeholder.html#using-the-editor-configuration
- placeholder: 'Welcome to CKEditor 5!',
- // https://ckeditor.com/docs/ckeditor5/latest/features/font.html#configuring-the-font-family-feature
- fontFamily: {
- options: [
- 'default',
- 'Ubuntu, Arial, sans-serif',
- 'Ubuntu Mono, Courier New, Courier, monospace',
- 'Arial, Helvetica, sans-serif',
- 'Courier New, Courier, monospace',
- 'Georgia, serif',
- 'Lucida Sans Unicode, Lucida Grande, sans-serif',
- 'Tahoma, Geneva, sans-serif',
- 'Times New Roman, Times, serif',
- 'Trebuchet MS, Helvetica, sans-serif',
- 'Verdana, Geneva, sans-serif'
- ],
- supportAllValues: true
- },
- // https://ckeditor.com/docs/ckeditor5/latest/features/font.html#configuring-the-font-size-feature
- fontSize: {
- options: [ 10, 12, 14, 'default', 18, 20, 22 ],
- supportAllValues: true
- },
- // Be careful with the setting below. It instructs CKEditor to accept ALL HTML markup.
- // https://ckeditor.com/docs/ckeditor5/latest/features/general-html-support.html#enabling-all-html-features
- htmlSupport: {
- allow: [
- {
- name: /.*/,
- attributes: true,
- classes: true,
- styles: true
- }
- ]
- },
- // Be careful with enabling previews
- // https://ckeditor.com/docs/ckeditor5/latest/features/html-embed.html#content-previews
- htmlEmbed: {
- showPreviews: true
- },
- // https://ckeditor.com/docs/ckeditor5/latest/features/link.html#custom-link-attributes-decorators
- link: {
- decorators: {
- addTargetToExternalLinks: true,
- defaultProtocol: 'https://',
- toggleDownloadable: {
- mode: 'manual',
- label: 'Downloadable',
- attributes: {
- download: 'file'
- }
- }
- }
- },
- // https://ckeditor.com/docs/ckeditor5/latest/features/mentions.html#configuration
- mention: {
- feeds: [
- {
- marker: '@',
- feed: [
- '@apple', '@bears', '@brownie', '@cake', '@cake', '@candy', '@canes', '@chocolate', '@cookie', '@cotton', '@cream',
- '@cupcake', '@danish', '@donut', '@dragée', '@fruitcake', '@gingerbread', '@gummi', '@ice', '@jelly-o',
- '@liquorice', '@macaroon', '@marzipan', '@oat', '@pie', '@plum', '@pudding', '@sesame', '@snaps', '@soufflé',
- '@sugar', '@sweet', '@topping', '@wafer'
- ],
- minimumCharacters: 1
- }
- ]
- },
- // The "superbuild" contains more premium features that require additional configuration, disable them below.
- // Do not turn them on unless you read the documentation and know how to configure them and setup the editor.
- removePlugins: [
- // These two are commercial, but you can try them out without registering to a trial.
- // 'ExportPdf',
- // 'ExportWord',
- 'AIAssistant',
- 'CKBox',
- 'CKFinder',
- 'EasyImage',
- // This sample uses the Base64UploadAdapter to handle image uploads as it requires no configuration.
- // https://ckeditor.com/docs/ckeditor5/latest/features/images/image-upload/base64-upload-adapter.html
- // Storing images as Base64 is usually a very bad idea.
- // Replace it on production website with other solutions:
- // https://ckeditor.com/docs/ckeditor5/latest/features/images/image-upload/image-upload.html
- // 'Base64UploadAdapter',
- 'RealTimeCollaborativeComments',
- 'RealTimeCollaborativeTrackChanges',
- 'RealTimeCollaborativeRevisionHistory',
- 'PresenceList',
- 'Comments',
- 'TrackChanges',
- 'TrackChangesData',
- 'RevisionHistory',
- 'Pagination',
- 'WProofreader',
- // Careful, with the Mathtype plugin CKEditor will not load when loading this sample
- // from a local file system (file://) - load this site via HTTP server if you enable MathType.
- 'MathType',
- // The following features are part of the Productivity Pack and require additional license.
- 'SlashCommand',
- 'Template',
- 'DocumentOutline',
- 'FormatPainter',
- 'TableOfContents',
- 'PasteFromOfficeEnhanced',
- 'CaseChange'
- ]
- });
- </script>
- </body>
- </html>
|