diff --git a/docs/data/features-digest-source.json b/docs/data/features-digest-source.json new file mode 100644 index 00000000000..ab05717cf51 --- /dev/null +++ b/docs/data/features-digest-source.json @@ -0,0 +1,1319 @@ +[ + { + "name": "Core editing", + "description": "Core editing capability provides tools to create, edit, and style content. Here are essentials that every writer needs in their tool belt, like bold or italics. There is also something for coders - advanced HTML editing capabilities where you can directly edit HTML elements.", + "features": [ + { + "id": "advanced-html-editing", + "type": "feature", + "link": "features/general-html-support", + "name": "Advanced HTML Editing", + "description": "Advanced HTML Editing features provide general HTML support, offering detailed control over permissible HTML elements, attributes, and styles. It further allows HTML Source Code Editing, handling HTML elements, HTML comments, and editing of the full page content, including meta tags.", + "shortDescription": "Enable editing and customizing HTML elements, attributes, and styles with full control.", + "subFeatures": [ + { + "id": "full-page-html", + "type": "subFeature", + "link": "features/full-page-html", + "name": "Full page HTML", + "description": "Thanks to the full page HTML feature, you can use CKEditor 5 to edit entire HTML pages (from <html> to </html>), including the page metadata. While the {@link features/general-html-support General HTML Support} feature focuses on elements inside the content (the document's <body>), this feature enables markup invisible to the end user.", + "shortDescription": "Edit entire HTML documents, including metadata, beyond visible content." + }, + { + "id": "general-html-support", + "type": "subFeature", + "link": "features/general-html-support", + "name": "General HTML Support (GHS)", + "description": "With the General HTML Support (GHS) feature, developers can enable HTML features that are not supported by any other dedicated CKEditor 5 plugins. GHS lets you add elements, attributes, classes, and styles to the source. It also ensures this markup stays in the editor window and the output.", + "shortDescription": "Enable unsupported HTML elements, attributes, and styles in the editor." + }, + { + "id": "html-comment", + "type": "subFeature", + "link": "features/html-comments", + "name": "HTML comment", + "description": "By default, the editor filters out all HTML comments on initialization. The HTML comment feature lets developers keep HTML comments in the document without displaying them to the user.", + "shortDescription": "Keep HTML comments in your document without displaying them to users." + }, + { + "id": "html-embed", + "type": "subFeature", + "link": "features/html-embed", + "name": "HTML embed", + "description": "The HTML embed feature lets you embed any HTML snippet in your content. The feature is meant for more advanced users who want to directly interact with HTML fragments.", + "shortDescription": "Embed custom HTML snippets directly into your content." + }, + { + "id": "show-blocks", + "type": "subFeature", + "link": "features/show-blocks", + "name": "Show blocks", + "description": "The show blocks feature allows the content creators to visualize all block-level elements (except for widgets). It surrounds them with an outline and displays their element name in the top-left corner of the box.", + "shortDescription": "Visualize and outline all block-level elements in your content." + }, + { + "id": "source-editing", + "type": "subFeature", + "link": "features/source-editing", + "name": "Source code editing", + "description": "The source editing feature lets you view and edit the source of your document.", + "shortDescription": "View and edit the source code of your document." + } + ] + }, + { + "id": "block-formatting", + "type": "feature", + "link": "features/block-quote", + "name": "Block formatting", + "description": "Block Formatting allows for the organization and emphasis of content through the use of Headings, Style Headings, Block Quotes, and Horizontal Lines. Users can select from different levels of headings to outline sections and subsections, apply various styles to these headings for visual hierarchy, insert horizontal lines to delineate sections, and use block quotes to highlight excerpts or important passages.", + "shortDescription": "Organize and emphasize content with headings, block quotes, and horizontal lines.", + "subFeatures": [ + { + "id": "block-quotes", + "type": "subFeature", + "link": "features/block-quote", + "name": "Block quote", + "description": "The block quote feature lets you easily include block quotations or pull quotes in your content. It is also an attractive way to draw the readers' attention to selected parts of the text.", + "shortDescription": "Add visually distinct block quotes to emphasize key excerpts." + }, + { + "id": "headings-paragraph", + "type": "subFeature", + "link": "features/headings", + "name": "Headings/paragraph", + "description": "The heading feature helps you structure your document by adding headings to parts of the text. They make your content easier to scan by both readers and search engines.", + "shortDescription": "Structure content with headings for better readability and hierarchy." + }, + { + "id": "horizontal-line", + "type": "subFeature", + "link": "features/horizontal-line", + "name": "Horizontal line", + "description": "The horizontal line feature lets you visually divide your content into sections by inserting horizontal lines (also known as horizontal rules). It is an easy way to organize the content or indicate a change of topic.", + "shortDescription": "Insert horizontal lines to divide content or indicate topic changes." + }, + { + "id": "block-indentation", + "type": "subFeature", + "link": "features/indent", + "name": "Block indentation", + "description": "The block indentation feature lets you set indentation for text blocks such as paragraphs, headings, or lists. This way you can visually distinguish parts of your content.", + "shortDescription": "Adjust text block indentation for better content structure." + } + ] + }, + { + "id": "bookmark", + "type": "feature", + "link": "features/bookmarks", + "name": "Bookmarks", + "description": "The bookmarks feature allows for adding and managing the bookmarks anchors attached to the content of the editor. These provide fast access to important content sections, and speed up the navigation boosting efficiency.", + "shortDescription": "Add bookmarks for quick navigation to key content sections." + }, + { + "id": "clipboard", + "type": "feature", + "link": "framework/deep-dive/clipboard", + "name": "Clipboard", + "description": "Copy, cut, and paste content within the editor or from external sources.", + "shortDescription": "Easily copy, cut, and paste content within or outside the editor." + }, + { + "id": "code-blocks", + "type": "feature", + "link": "features/code-blocks", + "name": "Code blocks", + "description": "Supports the insertion and management of pre-formatted code snippets with distinct styling.", + "shortDescription": "Insert preformatted code snippets with distinct styling." + }, + { + "id": "drag-and-drop", + "type": "feature", + "link": "features/drag-drop", + "name": "Drag and drop", + "description": "Rearrange elements within a document, including moving text blocks, images, or other content types.", + "shortDescription": "Reorganize text and elements using drag-and-drop functionality." + }, + { + "id": "font-formatting", + "type": "feature", + "link": "features/font", + "name": "Font formatting", + "description": "The font feature lets you change font family, size, and color (including background color). All of these options are configurable.", + "shortDescription": "Customize font family, size, and color for tailored text presentation.", + "subFeatures": [ + { + "id": "font-background-color", + "type": "subFeature", + "link": "features/font#configuring-the-font-color-and-font-background-color-features", + "name": "Font background color", + "description": "Effortlessly make the words stand out even more with a colored background.", + "shortDescription": "Highlight text with a colored background for emphasis." + }, + { + "id": "font-color", + "type": "subFeature", + "link": "features/font#configuring-the-font-color-and-font-background-color-features", + "name": "Font color", + "description": "Effortlessly make the letters stand out with their own color.", + "shortDescription": "Apply custom colors to text for improved readability or style." + }, + { + "id": "font-family", + "type": "subFeature", + "link": "features/font#configuring-the-font-family-feature", + "name": "Font family", + "description": "Choose from a predefined set of fonts, depending on the type of content and its destination - print, screen, etc.", + "shortDescription": "Choose suitable font families for your content needs." + }, + { + "id": "font-size", + "type": "subFeature", + "link": "features/font#configuring-the-font-size-feature", + "name": "Font size", + "description": "Easily control the size of the letters.", + "shortDescription": "Adjust font size for better readability and emphasis." + } + ] + }, + { + "id": "image", + "type": "feature", + "link": "features/images-overview", + "name": "Image", + "description": "The image feature allows adding images of various kinds to the rich content inside the editor. A large set of subFeature background-grays lets the users fully control this process. Upload or paste images, insert via URL, use responsive images, resize images, add captions, set different image styles, and link images.", + "shortDescription": "Add, style, and manage images with captions, resizing, and linking options.", + "subFeatures": [ + { + "id": "image-all-text", + "type": "subFeature", + "link": "features/images-text-alternative", + "name": "Image alt text", + "description": "Add description text, AKA alternative text, for images. Alt text improves accessibility by telling screen readers and search engines what the image depicts.", + "shortDescription": "Add alt text to images for accessibility and SEO improvements." + }, + { + "id": "image-captions", + "type": "subFeature", + "link": "features/images-captions", + "name": "Image captions", + "description": "Add optional captions for images, which are shown below the picture.", + "shortDescription": "Add captions below images to provide context." + }, + { + "id": "image-insert-via-url", + "type": "subFeature", + "link": "features/images-inserting", + "name": "Image insert via URL", + "description": "You can insert images by uploading them directly from your disk, but you can also configure CKEditor 5 to let you insert images using URLs. This way, you can save time by adding images that are already online.", + "shortDescription": "Insert images directly using their URLs." + }, + { + "id": "image-linking", + "type": "subFeature", + "link": "features/images-linking", + "name": "Image linking", + "description": "The {@link module:link/linkimage~LinkImage} plugin lets you use images as links.", + "shortDescription": "Turn images into clickable links for interactive content." + }, + { + "id": "image-resize", + "type": "subFeature", + "link": "features/images-resizing", + "name": "Image resize", + "description": "The image resize feature lets you change the width of images in your content. It is implemented by the {@link module:image/imageresize~ImageResize} plugin.", + "shortDescription": "Easily resize images for better content fit." + }, + { + "id": "image-styles", + "type": "subFeature", + "link": "features/images-styles", + "name": "Image styles", + "description": "The image styles feature lets you adjust the appearance of images. It works by applying CSS classes to images or changing their type from inline to block or vice versa.", + "shortDescription": "Apply custom styles and alignments to images." + }, + { + "id": "image-upload", + "type": "subFeature", + "link": "features/image-upload", + "name": "Image upload", + "description": "Inserting {@link features/images-overview images} into content created with CKEditor 5 is quite a common task. In a properly configured rich-text editor, there are several ways for the end user to insert images.", + "shortDescription": "Upload images directly from your device to the editor." + }, + { + "id": "responsive-images", + "type": "subFeature", + "link": "features/images-responsive", + "name": "Responsive images", + "description": "The ability to have responsive images in the rich-text editor content is a great modern feature provided by the {@link features/ckbox CKBox asset manager}. With a single image upload, several optimized versions of that image are created, each for a different size of the display. The CKBox feature produces a <picture> element with a set of optimized images. The browser will automatically load the image with the dimensions most suitable for the presented page resolution, which makes the image load much faster and saves bandwidth.", + "shortDescription": "Automatically optimize images for different screen sizes." + } + ] + }, + { + "id": "links", + "type": "feature", + "link": "features/link", + "name": "Links", + "description": "Facilitates the addition of hyperlinks to text, automatically converting typed or pasted URLs into clickable links, and allowing manual insertion and editing of links.", + "shortDescription": "Add and manage hyperlinks in your text." + }, + { + "id": "lists", + "type": "feature", + "link": "features/lists", + "name": "Lists", + "description": "Lists allow the creation and management of various list types, including to-do lists, bulleted and numbered lists, with additional customization options such as list styles, setting the start number for lists, creating reversed lists, adjusting list indentation, and crafting nested lists.", + "shortDescription": "Create to-do, bulleted, and numbered lists with customizable styles.", + "subFeatures": [ + { + "id": "list-indentation", + "type": "subFeature", + "link": "features/lists-editing#indenting-lists", + "name": "List indentation", + "description": "Besides controlling {@link features/indent text block indentation}, the indent and outdent buttons allow for indenting list items (nesting them).", + "shortDescription": "Control list item indentation for nested lists." + }, + { + "id": "list-start-index", + "type": "subFeature", + "link": "features/lists#list-start-index", + "name": "List start index", + "description": "The list start index feature allows the user to choose the starting point of an ordered list. By default, this would be 1 (or A, or I – see the list styles section). Sometimes, you may want to start a list with some other digit or letter, though.", + "shortDescription": "Set custom start numbers for ordered lists." + }, + { + "id": "list-styles", + "type": "subFeature", + "link": "features/lists#list-styles", + "name": "List styles", + "description": "The list style feature introduces some more styles for the list item markers. When {@link module:list/listconfig~ListPropertiesConfig#member-styles enabled}, it adds 3 styles for unordered lists and 6 styles for ordered lists to choose from. The user will be able to set or change the list style via the dropdown. It opens when you click the arrow next to the appropriate list button in the toolbar.", + "shortDescription": "Customize list markers for unique styles." + }, + { + "id": "multi-level-lists", + "type": "subFeature", + "link": "features/multi-level-lists", + "name": "Multi-level lists", + "isPremium": true, + "description": "Multi-level lists with the legal style numbering feature allows for easy creation and modification of numbered lists with counters (1, 1.1, 1.1.1). These are crucial for clear referencing and hierarchical organization in complex documents. The feature offers full compatibility with Microsoft Word.", + "shortDescription": "Create hierarchical multi-level lists with numbering." + }, + { + "id": "nested-lists", + "type": "subFeature", + "link": "features/lists-editing#indenting-lists", + "name": "Nested lists", + "description": "Besides controlling {@link features/indent text block indentation}, the indent and outdent buttons allow for indenting list items (nesting them).", + "shortDescription": "Easily create nested lists for complex content." + }, + { + "id": "ordered-lists", + "type": "subFeature", + "link": "features/lists", + "name": "Ordered lists", + "description": "The list feature lets you create ordered (numbered) lists. The unique thing about them is that you can put any content inside each list item (including block elements like paragraphs and tables), retaining the continuity of numbering and indentation. You can also easily control the list markers type.", + "shortDescription": "Add structured ordered lists with flexible formatting options." + }, + { + "id": "reversed-list", + "type": "subFeature", + "link": "features/lists#reversed-list", + "name": "Reversed list", + "description": "The reversed list feature lets the user reverse the numbering order of a list, changing it from ascending to descending. This is useful in countdowns and things-to-do lists that need to reproduce steps in a reversed order (for example, in disassembly instructions).", + "shortDescription": "Reverse list numbering for countdowns or steps." + }, + { + "id": "to-do-lists", + "type": "subFeature", + "link": "features/todo-lists", + "name": "To-do lists", + "description": "The to-do list feature lets you create a list of interactive checkboxes with labels. It supports all features of {@link features/lists bulleted and numbered lists}, so you can nest a to-do list together with any combination of other lists.", + "shortDescription": "Create interactive to-do lists with checkboxes." + }, + { + "id": "unordered-lists", + "type": "subFeature", + "link": "features/lists", + "name": "Unordered lists", + "description": "The list feature lets you create unordered (bulleted) lists. The unique thing about them is that you can put any content inside each list item (including block elements like paragraphs and tables), retaining the continuity of numbering and indentation. You can also easily control the list markers' shape.", + "shortDescription": "Add unordered lists with customizable markers." + } + ] + }, + { + "id": "mermaid", + "type": "feature", + "link": "features/mermaid", + "name": "Mermaid", + "isExperimental": true, + "description": "You can create flowcharts and diagrams in CKEditor 5 thanks to the experimental integration with the Mermaid library. Mermaid uses a Markdown-inspired syntax to create and dynamically modify flowcharts, Gantt diagrams, pie or quadrant charts, graphs, mindmaps, and more.", + "shortDescription": "Create diagrams and charts using Markdown-inspired syntax." + }, + { + "id": "remove-formatting", + "type": "feature", + "link": "features/remove-format", + "name": "Remove formatting", + "description": "The remove format feature lets you quickly remove any text formatting applied using inline HTML elements and CSS styles, like basic text styles (bold, italic) or font family, size, and color. This feature does not remove block-level formatting (headings, images) or semantic data (links).", + "shortDescription": "Quickly strip inline styles and formatting from text." + }, + { + "id": "select-all", + "type": "feature", + "link": "features/select-all", + "name": "Select all", + "description": "Enables the selection of all content within the editor with a single command or shortcut.", + "shortDescription": "Select all content within the editor instantly." + }, + { + "id": "tables", + "type": "feature", + "link": "features/tables", + "name": "Tables", + "description": "CKEditor 5 provides robust support for tables, with the ability to merge and split cells, resize columns, style tables and individual cells, insert and delete columns and rows, as well as create nested tables for complex data presentation.", + "shortDescription": "Design and manage tables with advanced editing options.", + "subFeatures": [ + { + "id": "columns-resizing", + "type": "subFeature", + "link": "features/tables-resize", + "name": "Columns resizing", + "description": "The {@link module:table/tablecolumnresize~TableColumnResize} plugin lets you resize tables and individual table columns. It gives you complete control over column width.", + "shortDescription": "Resize table columns for precise layout control." + }, + { + "id": "insert-delete-columns-and-rows", + "type": "subFeature", + "link": "features/tables#table-contextual-toolbar", + "name": "Insert/delete columns & rows", + "description": "The basic table features allow users to insert tables into content, add or remove columns and rows and merge or split cells.", + "shortDescription": "Easily add or remove table rows and columns." + }, + { + "id": "merge-and-split-cells", + "type": "subFeature", + "link": "features/tables#table-contextual-toolbar", + "name": "Merge & split cells", + "description": "The basic table features allow users to insert tables into content, add or remove columns and rows, and merge or split cells.", + "shortDescription": "Merge or split table cells as needed." + }, + { + "id": "nesting", + "type": "subFeature", + "link": "features/tables#nesting-tables", + "name": "Nesting", + "description": "CKEditor 5 allows nesting tables inside other table's cells. This may be used for creating advanced charts or layouts based on tables. The nested table can be formatted just like a regular one.", + "shortDescription": "Nest tables within other tables for complex layouts." + }, + { + "id": "styling-tables-and-cells", + "type": "subFeature", + "link": "features/tables-styling", + "name": "Styling tables & cells", + "description": "CKEditor 5 comes with some additional tools that help you change the look of tables and table cells. You can control border color and style, background color, padding, or text alignment.", + "shortDescription": "Apply custom styles to tables and individual cells." + }, + { + "id": "table-headers", + "type": "subFeature", + "link": "features/tables#default-table-headers", + "name": "Table headers", + "description": "To make every inserted table have n number of rows and columns as table headers by default, set an optional table configuration property defaultHeadings.", + "shortDescription": "Set default table headers for better structure." + }, + { + "id": "table-selection", + "type": "subFeature", + "link": "features/tables#table-selection", + "name": "Table selection", + "description": "The {@link module:table/tableselection~TableSelection} plugin introduces support for the custom selection system for tables that lets you:• Select an arbitrary rectangular table fragment – a few cells from different rows, a column (or a few of them) or a row (or multiple rows).• Apply formatting or add a link to all selected cells at once. The table selection plugin is loaded automatically by the Table plugin.", + "shortDescription": "Select and format specific table areas easily." + }, + { + "id": "tables-caption", + "type": "subFeature", + "link": "features/tables-caption", + "name": "Tables caption", + "description": "The {@link module:table/tablecaption~TableCaption} plugin lets you add captions to your tables. Table captions also improve accessibility as they are recognized by screen readers.", + "shortDescription": "Add captions to tables to improve accessibility." + } + ] + }, + { + "id": "text-alignment", + "type": "feature", + "link": "features/text-alignment", + "name": "Text alignment", + "description": "Allows the adjustment of text alignment to the left, right, center, or justify and permits the alteration of indentation.", + "shortDescription": "Align text left, right, center, or justify with ease." + }, + { + "id": "text-formatting", + "type": "feature", + "link": "features/basic-styles", + "name": "Text formatting", + "description": "CKEditor 5 provides developers with text editing and formatting features such as Bold, Italic, Underline, Strikethrough, Subscript, Superscript, Inline Code, Highlight, and Font Styles. These features allow users to style and present their content as needed. This ensures users can style their text to improve readability, match branding guidelines, or highlight important content sections.", + "shortDescription": "Apply bold, italic, underline, and other formatting styles to text.", + "subFeatures": [ + { + "id": "bold", + "type": "subFeature", + "link": "features/basic-styles", + "name": "Bold", + "description": "Making the letters look like the good time were never gone.", + "shortDescription": "Make text bold for emphasis." + }, + { + "id": "code", + "type": "subFeature", + "link": "features/basic-styles", + "name": "Code", + "description": "Snippet look like a terminal from the 1990s movie.", + "shortDescription": "Insert inline code snippets for technical content." + }, + { + "id": "highlight", + "type": "subFeature", + "link": "features/highlight", + "name": "Highlight", + "description": "Highlight makes important content stand out, either with font color or background fill.", + "shortDescription": "Highlight text with color for emphasis." + }, + { + "id": "italic", + "type": "subFeature", + "link": "features/basic-styles", + "name": "Italic", + "description": "Making the letters look like seashore pines.", + "shortDescription": "Italicize text for subtle emphasis." + }, + { + "id": "strikethrough", + "type": "subFeature", + "link": "features/basic-styles", + "name": "Strikethrough", + "description": "Never mind, will not need it anymore.", + "shortDescription": "Strike through text to indicate removal." + }, + { + "id": "styles", + "type": "subFeature", + "link": "features/style", + "name": "Styles", + "description": "The styles feature lets you easily apply predefined styles available for block and inline content.", + "shortDescription": "Apply predefined styles to block and inline elements." + }, + { + "id": "subscript", + "type": "subFeature", + "link": "features/basic-styles", + "name": "Subscript", + "description": "Fine print at the bottom, like atom numbers.", + "shortDescription": "Add subscript text for chemical formulas or footnotes." + }, + { + "id": "superscript", + "type": "subFeature", + "link": "features/basic-styles", + "name": "Superscript", + "description": "Fine print on top, like references in a book.", + "shortDescription": "Add superscript text for exponents or references." + }, + { + "id": "underline", + "type": "subFeature", + "link": "features/basic-styles", + "name": "Underline", + "description": "Stuff looks important, yo. Or like a link, too.", + "shortDescription": "Underline text to highlight importance." + } + ] + }, + { + "id": "undo-redo", + "type": "feature", + "link": "features/undo-redo", + "name": "Undo/redo", + "description": "Backtrack or repeat actions for editing purposes.", + "shortDescription": "Easily undo or redo recent actions." + } + ] + }, + { + "name": "Collaboration", + "description": "Collaborate with others - real-time or asynchronously. Comment, co-author, and mention team members in your documents. With collaboration features review process should be a breeze.", + "features": [ + { + "id": "asynchronous-collaboration", + "type": "feature", + "link": "features/collaboration", + "name": "Asynchronous collaboration", + "isPremium": true, + "description": "Asynchronous Collaboration in CKEditor 5 is designed for teams using a turn-based approach to collaboratively write, review, and discuss content within the application. It integrates Track Changes, Comments, and Revision History features to facilitate collaboration.", + "shortDescription": "Work collaboratively with team members asynchronously using Track Changes, Comments, and Revision History.", + "subFeatures": [ + { + "id": "local-data-storage", + "type": "subFeature", + "link": "features/collaboration", + "name": "Local data storage", + "isPremium": true, + "description": "In asynchronous collaboration, data is maintained on the client's servers.", + "shortDescription": "Store collaborative data on local client servers for security and control." + } + ] + }, + { + "id": "comments", + "type": "feature", + "link": "features/comments", + "name": "Comments", + "isPremium": true, + "description": "Users can add side notes to marked fragments of the document, including text and block elements such as images. It also allows the users to discuss in threads and remove comments when they finish the discussion.", + "shortDescription": "Add, discuss, and resolve comments for seamless content collaboration.", + "subFeatures": [ + { + "id": "comments-archive", + "type": "subFeature", + "link": "features/comments", + "name": "Comments archive", + "isPremium": true, + "description": "Comments threads can be either deleted or resolved. The latter provides a way to archive comments that are no longer relevant, reducing clutter and making it easier to focus on the most important feedback. Users can access the comments archive from the toolbar and use it to view and restore archived comments if necessary. It helps to simplify the feedback management process.", + "shortDescription": "Archive resolved comments for streamlined feedback management and future reference." + }, + { + "id": "comments-outside-editor", + "type": "subFeature", + "link": "features/comments-outside-editor", + "name": "Comments outside editor", + "isPremium": true, + "description": "The comments feature API, together with {@link module:core/context~Context}, lets you create deeper integrations with your application. One such integration is enabling comments on non-editor form fields.", + "shortDescription": "Extend comment functionality to non-editor fields for enhanced application integration." + }, + { + "id": "sidebar-modes", + "type": "subFeature", + "link": "features/annotations-display-mode", + "name": "Sidebar modes", + "isPremium": true, + "description": "There are three built-in UIs to display comment threads and suggestion annotations: the wide sidebar, the narrow sidebar, and inline balloons. You can also display them together in more advanced scenarios where various annotation sources (comments, suggestions) are connected to different UIs or even create your UI for annotations.", + "shortDescription": "Choose between wide, narrow, or inline UIs to display annotations and comments." + } + ] + }, + { + "id": "mentions", + "type": "feature", + "link": "features/mentions", + "name": "Mentions", + "description": "The mention feature supports smart autocompletion triggered by user input. Typing a predetermined marker, like @ or #, prompts a panel to appear, offering autocomplete suggestions.", + "shortDescription": "Notify and tag users in content using smart autocompletion with @mentions." + }, + { + "id": "real-time-collaboration", + "type": "feature", + "link": "features/real-time-collaboration", + "name": "Real-time collaboration", + "isPremium": true, + "description": "Real-Time Collaboration in CKEditor 5 is designed for users who are writing, reviewing, and commenting on content simultaneously. It also automatically solves all conflicts if users make changes at the same time.", + "shortDescription": "Collaborate in real-time with automatic conflict resolution for seamless teamwork.", + "subFeatures": [ + { + "id": "co-authoring", + "type": "subFeature", + "link": "features/users-in-real-time-collaboration", + "name": "Co-authoring", + "isPremium": true, + "description": "Multiple user real-time editing and content creation feature.", + "shortDescription": "Edit and create content simultaneously with multiple users in real time." + }, + { + "id": "on-premises", + "type": "subFeature", + "link": "@cs", + "name": "onpremises/index On-premises", + "isPremium": true, + "description": "On-premises real-time collaboration version to deploy to client's own infrastructure, includes a private cloud.", + "shortDescription": "Deploy real-time collaboration on your infrastructure for full control and privacy." + }, + { + "id": "saas", + "type": "subFeature", + "link": "@cs", + "name": "guides/collaboration/quick-start SaaS", + "isPremium": true, + "description": "Real-time collaboration provided as a service by CKSource.", + "shortDescription": "Access real-time collaboration as a cloud service managed by CKSource." + } + ] + }, + { + "id": "revision-history", + "type": "feature", + "link": "features/revision-history", + "name": "Revision history", + "isPremium": true, + "description": "The revision history feature is a document versioning tool. It allows CKEditor 5 users to create and view the chronological revision history of their content. These versions are listed in the side panel. The preview mode allows for easy viewing of content development between revisions. You can rename, compare, and restore older revisions on the go.", + "shortDescription": "Track, compare, and restore document versions with detailed revision history." + }, + { + "id": "track-changes", + "type": "feature", + "link": "features/track-changes", + "name": "Track changes", + "isPremium": true, + "description": "The track changes feature brings automatic suggestion marking for the document as you change it. When editing the document, the user can switch to the track changes mode. All their changes will then create suggestions that they can accept or discard.", + "shortDescription": "Monitor and manage document edits with automatic suggestion tracking." + }, + { + "id": "users-list-and-permissions", + "type": "feature", + "link": "features/users", + "name": "Users list and permissions", + "isPremium": true, + "description": "The {@link module:collaboration-core/users~Users} plugin and related plugins let you manage user data and permissions. This is essential when many users are working on the same document.", + "shortDescription": "Manage user roles and permissions for secure, collaborative editing." + } + ] + }, + { + "name": "Content conversion & embedding", + "description": "Collaborate also regarding different formats. With content conversions, you can integrate content across commonly used business formats. You can also enrich your content with media embeds.", + "features": [ + { + "id": "content-generation", + "type": "feature", + "link": "features/export-pdf", + "name": "Content generation", + "isPremium": true, + "description": "CKEditor 5 may be your universal starting point for generating content in several recognizable formats.", + "shortDescription": "Generate content in multiple formats like PDF and Word.", + "subFeatures": [ + { + "id": "export-to-pdf", + "type": "subFeature", + "link": "features/export-pdf", + "name": "Export to PDF", + "isPremium": true, + "description": "Create a PDF from in-editor content seamlessly. Customize headers and footers, include page breaks, embed images, and choose from various fonts.", + "shortDescription": "Convert in-editor content to a PDF with customizable options." + }, + { + "id": "export-to-word", + "type": "subFeature", + "link": "features/export-word", + "name": "Export to Word", + "isPremium": true, + "description": "Instantly convert content from the editor to a Word document with a single click, maintaining its appearance and formatting. The final document includes suggestions, comments, page breaks, and embedded images.", + "shortDescription": "Export editor content to Word while preserving formatting and comments." + }, + { + "id": "import-from-word", + "type": "subFeature", + "link": "features/import-word", + "name": "Import from Word", + "isPremium": true, + "description": "Effortlessly transform Word documents into clean HTML within CKEditor 5 while retaining the original styling, as well as comments and change tracking annotations.", + "shortDescription": "Convert Word documents to HTML while keeping styling and annotations." + } + ] + }, + { + "id": "markdown-output", + "type": "feature", + "link": "features/markdown", + "name": "Markdown output", + "description": "Enable Markdown as the default output format instead of HTML with the Markdown plugin. Combined with Autoformatting, CKEditor becomes an efficient Markdown editor, allowing the creation of text documents using the simplified formatting syntax favored by developers.", + "shortDescription": "Outputs editor content in Markdown format for developer-friendly workflows." + }, + { + "id": "media-embed", + "type": "feature", + "link": "features/media-embed", + "name": "Media embed", + "description": "Use the insert media button in the toolbar to embed media. Pasting a media URL directly into the editor content automatically embeds the media.", + "shortDescription": "Embed media by pasting a URL or using the insert media button." + }, + { + "id": "paste-markdown", + "type": "feature", + "link": "features/paste-markdown", + "name": "Paste Markdown", + "description": "The paste Markdown feature lets users paste Markdown-formatted content straight into the editor. It will be then converted into rich text on the fly.", + "shortDescription": "Paste Markdown-formatted text to convert it into rich text." + }, + { + "id": "xml-output", + "type": "feature", + "link": "module:engine/dataprocessor/xmldataprocessor~XmlDataProcessor", + "name": "XML output", + "description": "Turn your content into parsable XML files for automation and cross-platform interoperability.", + "shortDescription": "Transform content into XML for automation and compatibility." + } + ] + }, + { + "name": "Page management", + "description": "Format, organize, and navigate your documents easily with page management features. Create a table of contents, insert page breaks, and manage pagination.", + "features": [ + { + "id": "document-outline", + "type": "feature", + "link": "features/document-outline", + "name": "Document outline", + "isPremium": true, + "description": "The Document Outline feature automatically detects and lists document headings in a sidebar, enabling faster navigation through large documents. Headings are organized in a structured list, so users can click and jump to different sections quickly. This feature also allows for customization of the outline's location within the user interface, catering to different user preferences for workspace layout.", + "shortDescription": "Lists headings in a sidebar for quick navigation through documents." + }, + { + "id": "page-utilities", + "type": "feature", + "link": "features/minimap", + "name": "Page utilities", + "description": "CKEditor 5 Page Utilities enables users to dictate the structuring and print formatting of their documents effectively.", + "shortDescription": "Manage document layout and formatting with Page Utilities.", + "subFeatures": [ + { + "id": "content-minimap", + "type": "subFeature", + "link": "features/minimap", + "name": "Content minimap", + "description": "Offers a concise, birds-eye view of the document's content, allowing for quick navigation and content management.", + "shortDescription": "Provides an overview of content for quick navigation." + }, + { + "id": "document-title", + "type": "subFeature", + "link": "features/title", + "name": "Document title", + "description": "Allows users to set and modify the document's title within the editing interface, ensuring accurate reflection of the contents.", + "shortDescription": "Set and edit the document title for accuracy and relevance." + }, + { + "id": "page-break", + "type": "subFeature", + "link": "features/page-break", + "name": "Page break", + "description": "Facilitates the insertion of manual breaks within the document, enabling the definition of page endings and beginnings for optimal layout and print clarity.", + "shortDescription": "Insert manual page breaks for precise layout control." + } + ] + }, + { + "id": "pagination", + "type": "feature", + "link": "features/pagination", + "name": "Pagination", + "isPremium": true, + "description": "The Pagination feature visually indicates where pages begin and end within a document. This feature is designed to assist users in preparing their documents for printing or export to various document formats, ensuring that the transition between pages is seamless and accurately reflected in the final output. Users may adjust content distribution across pages as they like, ensuring well-organized documents with presented content, whether in digital form or print. By providing a clear view of how text and elements will appear page-by-page, Pagination aids in the creation of professional and polished documents.", + "shortDescription": "Visually mark page boundaries for better document layout." + }, + { + "id": "table-of-contents", + "type": "feature", + "link": "features/table-of-contents", + "name": "Table of contents", + "isPremium": true, + "description": "The Table of Contents feature is a dynamic tool for organizing documents. It allows for the insertion of a linked table of contents that automatically updates in real time as the document's content changes. This means changes made to headings or structured sections within the document are reflected immediately in the table of contents, accurately representing the document structure.", + "shortDescription": "Insert a dynamic table of contents that updates in real time." + } + ] + }, + { + "name": "Productivity", + "description": "Speed up the content creation process with dedicated productivity utilities. Autoformat your content as you write (or paste from other editors) or even delegate some tasks to an AI Assistant.", + "features": [ + { + "id": "ai-assistant", + "type": "feature", + "link": "features/ai-assistant-overview", + "name": "AI Assistant", + "isPremium": true, + "description": "The AI Assistant feature enhances editing efficiency and creativity with artificial intelligence capabilities. It allows users to generate new content and process data through custom queries or utilize a set of predefined commands that are also customizable. The feature supports integration with multiple AI API providers: OpenAI, Azure OpenAI, and Amazon Bedrock. You can also integrate it with custom models.", + "shortDescription": "Leverage AI for content creation, processing, and customizable integrations." + }, + { + "id": "automation", + "type": "feature", + "link": "features/autoformat", + "name": "Automation", + "description": "Automate your workflow with CKEditor 5 automation tools, regardless of whether you write, link, or save!", + "shortDescription": "Streamline tasks like formatting, linking, and saving with automation tools.", + "subFeatures": [ + { + "id": "autoformatting", + "type": "subFeature", + "link": "features/autoformat", + "name": "Autoformatting", + "description": "Use Autoformatting to get Markdown-like shortcodes for quick formatting without needing to navigate through toolbar buttons or dropdown menus. This feature caters to the most common formatting needs.", + "shortDescription": "Quickly format content using Markdown-like shortcuts." + }, + { + "id": "autolink", + "type": "subFeature", + "link": "features/link#autolink-feature", + "name": "Autolink", + "description": "With Autolink, typing or pasting URLs and email addresses automatically transforms them into clickable links. This functionality is enabled by default, ensuring that links are always ready to use.", + "shortDescription": "Automatically convert URLs and emails into clickable links." + }, + { + "id": "automatic-text-transformation", + "type": "subFeature", + "link": "features/text-transformation", + "name": "Automatic text transformations", + "description": "The Automatic Text Transformation autocorrects or transforms predefined text fragments into their designated forms. It comes with a range of popular text transformations pre-configured, and accepts customization by adding or removing autocorrect entries. It is commonly used to automate the expansion of abbreviations or short phrases into their full forms.", + "shortDescription": "Automatically expand abbreviations or autocorrect text based on predefined rules." + }, + { + "id": "autosave", + "type": "subFeature", + "link": "features/autosave", + "name": "Autosave", + "description": "The Autosave feature guarantees that your work is never lost. It automatically saves changes - for instance, when content is modified. This could involve sending the latest version of the document to the server, providing peace of mind through continuous backup.", + "shortDescription": "Automatically save changes for uninterrupted workflow." + } + ] + }, + { + "id": "case-change", + "type": "feature", + "link": "features/case-change", + "name": "Case change", + "isPremium": true, + "description": "The Case Change feature simplifies adjusting text cases within a document. With just a single click, users can shift text between UPPERCASE, lowercase, and Title Case options. The case transformation can be applied to various text blocks (paragraph, heading, or list item) by placing the cursor within the block. Alternatively, users can select a specific fragment of text they wish to modify. This feature enhances the editing workflow by removing the need for manual case adjustments.", + "shortDescription": "Easily switch text cases between uppercase, lowercase, and title case." + }, + { + "id": "find-and-replace", + "type": "feature", + "link": "features/find-and-replace", + "name": "Find and replace", + "description": "The Find and Replace feature in CKEditor 5's Productivity tools allows you to search for words or phrases in your document and replace them with different text. This function helps speed up editing and maintain content consistency.", + "shortDescription": "Search and replace text efficiently across your document." + }, + { + "id": "format-painter", + "type": "feature", + "link": "features/format-painter", + "name": "Format painter", + "isPremium": true, + "description": "The Format Painter feature lets users clone formatting from one section and apply it to others within a document. This tool speeds up maintaining style consistency across the document. Once initiated, Format Painter can continue to apply the copied formatting to multiple sections consecutively. This \"continuous painting\" ensures a uniform style is achieved quickly without the need to repeatedly select the formatting options for each new section.", + "shortDescription": "Clone and apply formatting for consistent styling across sections." + }, + { + "id": "keyboard-shortcuts", + "type": "feature", + "link": "features/accessibility#keyboard-shortcuts", + "name": "Keyboard shortcuts", + "description": "CKEditor 5 supports various keyboard shortcuts that boost productivity and provide necessary accessibility to screen reader users.", + "shortDescription": "Boost productivity with keyboard shortcuts for editing and accessibility." + }, + { + "id": "mathtype", + "type": "feature", + "link": "features/math-equations", + "name": "MathType", + "isPremium": true, + "description": "Math Equations allows you to add properly formatted mathematical notation and chemical formulas to your documents. This feature supports the inclusion of math equations, which can be handwritten on a tablet and automatically converted into well-formed digital text. It also offers simple numbering of equations and the ability to customize with various fonts and colors, enhancing readability and presentation in your content.", + "shortDescription": "Insert formatted math equations and chemical formulas into your content." + }, + { + "id": "merge-fields", + "type": "feature", + "link": "features/merge-fields", + "name": "Merge fields", + "isPremium": true, + "description": "Merge Fields allows the inclusion of placeholders in your content, facilitating the creation of document templates, especially useful for email templates and document automation. These placeholders can later be replaced with dynamic values by the customer's application, enabling tasks like mass email distribution or generation of personalized documents.", + "shortDescription": "Add placeholders for dynamic values in templates and documents." + }, + { + "id": "paste-from-google-docs", + "type": "feature", + "link": "features/paste-from-google-docs", + "name": "Paste from Google Docs", + "description": "Paste from Office features let you paste content from Microsoft Word and Microsoft Excel and preserve its original structure and formatting. This is the basic, open-source Paste from Office feature.", + "shortDescription": "Retain formatting when pasting content from Google Docs." + }, + { + "id": "paste-from-office", + "type": "feature", + "link": "features/paste-from-office", + "name": "Paste from Office", + "description": "Paste from Office features let you paste content from Microsoft Word and Microsoft Excel and preserve its original structure and formatting. This is the basic, open-source Paste from Office feature.", + "shortDescription": "Preserve formatting and structure when pasting from Microsoft Office." + }, + { + "id": "paste-from-office-enhanced", + "type": "feature", + "link": "features/paste-from-office-enhanced", + "name": "Paste from Office Enhanced", + "isPremium": true, + "description": "The Enhanced Paste from Word/Excel feature accurately retains formatting and structure when content is pasted from Microsoft Word documents into the editor. This includes preserving text styles, lists, tables, and layouts. The feature facilitates the transfer of documents from Word to CKEditor 5 without compromising on formatting.", + "shortDescription": "Accurately preserve advanced formatting when pasting from Word or Excel." + }, + { + "id": "paste-plain-text", + "type": "feature", + "link": "features/paste-plain-text", + "name": "Paste plain text", + "description": "The Paste as Plain Text feature strips formatting from the pasted text. This feature ensures that text pasted into the document adopts the style of the surrounding content, effectively described as \"pasting without formatting.\" Additionally, it intelligently converts double-line breaks into paragraphs and single-line breaks into soft breaks, aiding in maintaining the structural integrity of the document.", + "shortDescription": "Paste content without formatting for clean and consistent styling." + }, + { + "id": "slash-commands", + "type": "feature", + "link": "features/slash-commands", + "name": "Slash commands", + "isPremium": true, + "description": "The Slash Commands feature lets users insert block elements and apply styles using just the keyboard. By pressing the / key, a panel with suggested commands appears, enabling quick and mouse-free actions. Users can filter through these commands by typing additional phrases after the /, making it easier to find specific commands. Additionally, the option to customize personal commands is available, allowing for a tailored editing experience.", + "shortDescription": "Quickly add and style content using slash commands for efficiency." + }, + { + "id": "special-characters", + "type": "feature", + "link": "features/special-characters", + "name": "Special characters", + "description": "Insert a variety of unique symbols and characters into your document with CKEditor 5's Special Characters feature. This includes mathematical operators, currency symbols, punctuation, graphic symbols like arrows or bullets, and Unicode letters that are not typically available on standard keyboards, such as umlauts or diacritics. Additionally, the feature supports the insertion of emojis. This tool is particularly useful for enhancing the detail and accuracy of content that requires specialized symbols.", + "shortDescription": "Add unique symbols, characters, and emojis to your content." + }, + { + "id": "templates", + "type": "feature", + "link": "features/template", + "name": "Templates", + "isPremium": true, + "description": "The Templates feature enables the insertion of predefined content structures into documents, ranging from small content pieces, like formatted tables, to complete document frameworks, like formal letter templates. Templates accelerate the document creation process while ensuring adherence to the company's content and document policies.", + "shortDescription": "Insert predefined templates for faster and consistent document creation." + } + ] + }, + { + "name": "Configurations", + "description": "Configure CKEditor 5 to your liking. Choose the editor type, modify the toolbar, and select a language from our translated language packs.", + "features": [ + { + "id": "editor-placeholder", + "type": "feature", + "link": "features/editor-placeholder", + "name": "Editor placeholder", + "description": "You can prompt the user to input content by displaying a configurable placeholder text when the editor is empty. This works similarly to the native DOM placeholder attribute used by inputs. Not to be confused with content placeholder.", + "shortDescription": "Display customizable placeholder text in the editor when no content is present." + }, + { + "id": "editor-ui-types", + "type": "feature", + "link": "getting-started/setup/editor-types", + "name": "Editor UI types", + "description": "The editor's user interface is dependent on the editor types. The editor provides functionality through specialized features accessible via a configurable toolbar or keyboard shortcuts. Some of these features are only available with certain editor types.", + "shortDescription": "The user interface varies by editor type, offering features via a toolbar or shortcuts.", + "subFeatures": [ + { + "id": "balloon-block-editor", + "type": "subFeature", + "link": "getting-started/setup/editor-types#balloon-editor-and-balloon-block-editor", + "name": "Balloon block editor", + "description": "Balloon block is essentially the balloon editor with an extra block toolbar, which can be accessed using the button attached to the editable content area and following the selection in the document. The toolbar gives access to additional block–level editing features.", + "shortDescription": "Balloon editor with a block toolbar for advanced block-level editing." + }, + { + "id": "balloon-editor", + "type": "subFeature", + "link": "getting-started/setup/editor-types#balloon-editor-and-balloon-block-editor", + "name": "Balloon editor", + "description": "Balloon editor is similar to inline editor. The difference between them is that the toolbar appears in a balloon next to the selection (when the selection is not empty).", + "shortDescription": "Inline editor with a toolbar that appears next to the text selection." + }, + { + "id": "classic-editor", + "type": "subFeature", + "link": "getting-started/setup/editor-types#classic-editor", + "name": "Classic editor", + "description": "Classic editor is what most users traditionally learned to associate with a rich-text editor – a toolbar with an editing area placed in a specific position on the page, usually as a part of a form that you use to submit some content to the server.", + "shortDescription": "Traditional editor with a fixed toolbar and editing area." + }, + { + "id": "decoupled-editor", + "type": "subFeature", + "link": "getting-started/setup/editor-types#decoupled-editor-document", + "name": "Decoupled editor", + "description": "The document editor focuses on a rich-text editing experience similar to large editing packages such as Google Docs or Microsoft Word. It works best for creating documents, which are usually later printed or exported to PDF files.", + "shortDescription": "Editor designed for creating documents like Google Docs or Microsoft Word." + }, + { + "id": "inline-editor", + "type": "subFeature", + "link": "getting-started/setup/editor-types#inline-editor", + "name": "Inline editor", + "description": "The inline editor comes with a floating toolbar that becomes visible when the editor is focused (for example, by clicking it). A common scenario for using the inline editor is offering users the possibility to edit content (such as headings and other small areas) in its real location on a web page instead of doing it in a separate administration section.", + "shortDescription": "Floating toolbar editor for editing content directly on the web page." + }, + { + "id": "multi-root-editor", + "type": "subFeature", + "link": "getting-started/setup/editor-types#multi-root-editor", + "name": "Multi-root editor", + "description": "The multi-root editor is an editor type that features multiple, separate editable areas. The main difference between using a multi-root editor and using multiple separate editors is the fact that in a multi-root editor, the editors are “connected.” All editable areas of the same editor instance share the same configuration, toolbar, undo stack, and produce one document.", + "shortDescription": "Editor with multiple connected editable areas sharing the same configuration." + } + ] + }, + { + "id": "professionally-translated-language-packs", + "type": "feature", + "link": "getting-started/setup/ui-language", + "name": "Professionally translated language packs", + "description": "CKEditor 5 provides 38 professionally translated language options, along with additional languages provided by community translations. CKEditor 5 also supports right-to-left (RTL) languages natively. When an RTL language is selected, the editor automatically adjusts its interface, including elements like toolbars, dropdowns, and buttons, to ensure an optimal editing experience.1" + }, + { + "id": "toolbar-and-menus", + "type": "feature", + "link": "getting-started/setup/toolbar", + "name": "Toolbar and menus", + "description": "The Toolbar Configuration feature provides different toolbar interfaces for editing content. The default toolbar includes dropdown menus and buttons for various editing functions. The Balloon Toolbar appears when text is selected, showing relevant tools. The Block Toolbar is accessed by clicking a button on the left-hand side of the editor, providing tools for the active block of content. Additionally, the Multiline Toolbar option allows for the expansion of the standard toolbar over multiple lines to display more tools simultaneously.", + "subFeatures": [ + { + "id": "balloon-toolbar", + "type": "subFeature", + "link": "getting-started/setup/toolbar#balloon-toolbar", + "name": "Balloon toolbar", + "description": "A ballon toolbar is a special instance of the main toolbar, available in the balloon and balloon block editor types. Instead of being fixed to the editing area, it pops up when the user selects some content and provides an editing toolset.", + "shortDescription": "A floating toolbar that appears when content is selected." + }, + { + "id": "block-toolbar", + "type": "subFeature", + "link": "getting-started/setup/toolbar#block-toolbar", + "name": "Block toolbar", + "description": "The block toolbar provides an additional configurable toolbar on the left-hand side of the content area, useful when the main toolbar is not accessible (for example in certain layouts, like balloon block editor).", + "shortDescription": "A configurable toolbar on the left side of the editor." + }, + { + "id": "classic-toolbar", + "type": "subFeature", + "link": "getting-started/setup/toolbar#main-editor-toolbar", + "name": "Classic toolbar", + "description": "The toolbar is the most basic user interface element of CKEditor 5 that gives you convenient access to all its features. It has buttons and dropdowns that you can use to format, manage, insert, and change elements of your content.", + "shortDescription": "A standard toolbar with buttons and dropdowns for editing." + }, + { + "id": "collapsible-toolbar", + "type": "subFeature", + "link": "getting-started/setup/toolbar#extended-toolbar-configuration-format", + "name": "Collapsible toolbar", + "description": "Collapsible toolbar for UI space efficiency.", + "shortDescription": "A toolbar that collapses to save space." + }, + { + "id": "image-contextual-toolbar", + "type": "subFeature", + "link": "features/images-overview#image-contextual-toolbar", + "name": "Image contextual toolbar", + "description": "The {@link module:image/imagetoolbar~ImageToolbar} plugin introduces a contextual toolbar for images. The toolbar appears when an image is selected and can be configured to contain any buttons you want. Usually, these will be image-related options, such as the {@link features/images-text-alternative text alternative} button, the {@link features/images-captions image caption} button, and {@link features/images-styles image styles} buttons. The toolbar can also host the image editing button introduced by the {@link features/ckbox CKBox asset manager}. Shown below is an example contextual toolbar with an extended set of buttons.", + "shortDescription": "A toolbar for image-specific tools appearing upon selection." + }, + { + "id": "menu-bar", + "type": "subFeature", + "link": "getting-started/setup/menubar", + "name": "Menu bar", + "description": "The menu bar is a user interface component that gives you access to all features provided by the editor, organized in menus and categories. This familiar experience, popular in large editing desktop and online packages, improves the usability of the editor. As the menu bar gathers all the editor features, the toolbar can be simple and tidy, providing only the most essential and commonly used features. This is especially welcome in heavily-featured editor integrations. For your convenience, the menu bar provides a default preset structure based on the plugins loaded in the editor. However, you can arrange it to suit your needs, remove unnecessary items, or add menu items related to your custom features.", + "shortDescription": "A familiar menu interface for accessing all editor features." + }, + { + "id": "multiline-toolbar", + "type": "subFeature", + "link": "getting-started/setup/toolbar#multiline-wrapping-toolbar", + "name": "Multiline toolbar", + "description": "Multiline toolbar for easy access to all functions.", + "shortDescription": "A toolbar that spans multiple lines for better tool visibility." + }, + { + "id": "nesting-toolbars-in-dropdowns", + "type": "subFeature", + "link": "getting-started/setup/toolbar#grouping-toolbar-items-in-dropdowns-nested-toolbars", + "name": "Nesting toolbars in dropdowns", + "description": "Nested toolbars for space efficiency and task-oriented access.", + "shortDescription": "Group toolbar items into dropdowns to save space." + }, + { + "id": "sidebar-annotations-bar", + "type": "subFeature", + "link": "features/annotations-display-mode#wide-sidebar", + "name": "Wide sidebar", + "description": "There are three built-in UIs to display comment threads and suggestion annotations: the wide sidebar, the narrow sidebar, and inline balloons. You can also display them together in more advanced scenarios where various annotation sources (comments, suggestions) are connected to different UIs, or even create your own UI for annotations.", + "shortDescription": "A wide sidebar for comments and suggestions." + }, + { + "id": "table-contextual-toolbar", + "type": "subFeature", + "link": "features/tables#table-contextual-toolbar", + "name": "Table contextual toolbar", + "description": "The {@link module:table/tabletoolbar~TableToolbar} plugin introduces a contextual toolbar for the table. The toolbar appears when a table or a cell is selected and contains various table-related buttons. These would typically include adding or removing columns and rows and merging or splitting cells. If these features are configured, the toolbar will also contain buttons for captions and table and cell properties.", + "shortDescription": "A toolbar for table-related tools appearing on selection." + } + ] + }, + { + "id": "watchdog", + "type": "feature", + "link": "features/watchdog", + "name": "Watchdog", + "description": "The watchdog utility protects you from data loss in case the editor crashes. It saves your content just before the crash and creates a new instance of the editor with your content intact.", + "shortDescription": "A utility that prevents data loss by recovering content after crashes." + } + ] + }, + { + "name": "Compliance", + "description": "Make your content accessible to any person or restrict it to specific users.", + "features": [ + { + "id": "accessibility-support", + "type": "feature", + "link": "features/accessibility", + "name": "Accessibility support", + "description": "CKEditor 5 includes accessibility functionality designed to ensure content is accessible to all users. These features encompass keyboard navigation for easier content access without a mouse, screen reader compatibility facilitated by ARIA attributes, and semantic output markup for clearer interpretation of content structures. CKEditor 5 meets the requirements of the Web Content Accessibility Guidelines (WCAG) 2.2 at levels A and AA, as well as Section 508 of the Rehabilitation Act, as detailed in the Accessibility Conformance Report, ensuring broad accessibility compliance.", + "shortDescription": "Provides keyboard navigation, screen reader support, and semantic output for accessibility compliance." + }, + { + "id": "read-only-support", + "type": "feature", + "link": "features/read-only", + "name": "Read-only support", + "description": "The Read-Only Mode feature enables content to be locked from editing while still allowing it to be viewed. This mode is often used for restricting editing access based on user roles, allowing only specific users or groups to view the content without being able to modify it. Common uses include viewing sensitive documents like financial reports, software logs, or copyrighted stories that should not be altered but need to be accessible for copying or by screen readers. This mode can be toggled on and off by system triggers.", + "shortDescription": "Allows content to be viewed without editing access." + }, + { + "id": "restricted-editing", + "type": "feature", + "link": "features/restricted-editing", + "name": "Restricted editing", + "description": "The Restricted Editing feature allows some sections of a document to be designated as non-editable while others remain editable. This feature supports two modes: the standard editing mode, where all content can be edited, and the restricted editing mode, where users can only modify parts of the content that are specifically marked as editable. This functionality is useful for workflows where one group of users creates document templates that include protected sections, and a second group fills in editable details such as names, dates, or product names without altering the rest of the document.", + "shortDescription": "Restricts editing to specific sections of a document." + }, + { + "id": "text-part-language", + "type": "feature", + "link": "features/language", + "name": "Text Part Language", + "description": "The Text Part Language feature allows users to specify the language of individual sections of text. This capability helps in creating documents that include multiple languages by ensuring that browsers and screen readers correctly interpret each part according to its designated language. This feature is particularly valuable for content that contains text in varying directions, such as an English document with Arabic citations. It supports the WCAG 3.1.2 Language of Parts specification, facilitating the creation of more accessible and comprehensible multilingual content.", + "shortDescription": "Specifies languages for text sections to enhance multilingual accessibility." + }, + { + "id": "word-and-character-counter", + "type": "feature", + "link": "features/word-count", + "name": "Word and character counter", + "description": "The Word and Character Count feature provides a real-time tracking tool for monitoring the number of words and characters within the editor. This functionality assists in managing content length and ensuring it meets specific requirements or limits.", + "shortDescription": "Tracks word and character count in real time." + }, + { + "id": "wproofreader", + "type": "feature", + "link": "features/spelling-and-grammar-checking", + "name": "WProofreader", + "isPremium": true, + "description": "The Spelling and Grammar Checker is a proofreading tool that supports over 80 languages and dialects. It checks spelling and grammar in real time and through a separate dialog. Features include spelling autocorrect, text autocomplete, and suggestions that appear on hover. Users can create custom dictionaries for specific terms related to their brand or company. The tool is compliant with WCAG 2.1 and Section 508 accessibility standards. It also detects sentence-level errors and offers context-based correction suggestions.", + "shortDescription": "Proofreads text with real-time spelling and grammar checks in 80+ languages." + } + ] + }, + { + "name": "Customization", + "description": "Customize your editor even further. Use components and helpers from our UI library to create a UI that will match your design system.", + "features": [ + { + "id": "editor-sdk", + "type": "feature", + "link": "framework/index", + "name": "Editor SDK", + "description": "Select from numerous toolbar styles and over 100 plugins to tailor an editor that perfectly fits your requirements, all without needing any development expertise. For those looking to go further, the CKEditor API enables the creation of custom plugins or modification of the editor's functionality. To assist the development process, dedicated resources such as a package generator and the CKEditor 5 Inspector - a comprehensive suite of debugging tools - are provided, helping accelerate development work.", + "shortDescription": "Customize your editor with toolbars, plugins, and developer tools.", + "subFeatures": [ + { + "id": "ckeditor5-inspector", + "type": "subFeature", + "link": "framework/development-tools/inspector", + "name": "CKEditor 5 inspector", + "description": "The official CKEditor 5 inspector provides a set of rich debugging tools for editor internals like {@link framework/architecture/editing-engine#model model}, {@link framework/architecture/editing-engine#view view}, and {@link framework/architecture/core-editor-architecture#commands commands}.", + "shortDescription": "A debugging tool for exploring editor internals." + }, + { + "id": "cloud-services-rest-api", + "type": "subFeature", + "link": "@cs", + "name": "developer-resources/apis/overview Cloud Services REST API", + "description": "The CKEditor Cloud Services is a cloud platform that provides editing and real-time collaboration services. The platform primarily focuses on providing a backend for the CKEditor 5 features, although some features can also be used directly through REST APIs.", + "shortDescription": "Cloud backend services with REST API support for collaboration." + } + ] + }, + { + "id": "themes", + "type": "feature", + "link": "framework/theme-customization", + "name": "Themes", + "description": "The default theme of CKEditor 5 can be customized to match most visual integration requirements.", + "shortDescription": "Customize the editor theme to match your design needs." + }, + { + "id": "ui-library", + "type": "feature", + "link": "framework/architecture/ui-library", + "name": "UI Library", + "description": "The standard UI library of CKEditor 5 is @ckeditor/ckeditor5-ui. It provides base classes and helpers that allow for building a modular UI that seamlessly integrates with other components of the ecosystem.", + "shortDescription": "A modular UI library for seamless ecosystem integration." + } + ] + }, + { + "name": "File management", + "description": "Upload and manage your files using file management features. Take advantage of CKBox, our file management solution, or create your own using an adapter.", + "features": [ + { + "id": "base64-upload-adapter", + "type": "feature", + "link": "features/base64-upload-adapter", + "name": "Base64 Upload Adapter", + "description": "Convert inserted images into Base64-encoded strings in the editor output. Images are stored with other content in the database without server-side processing.", + "shortDescription": "Encodes images as Base64 strings for database storage." + }, + { + "id": "ckbox", + "type": "feature", + "link": "features/ckbox", + "name": "CKBox", + "isPremium": true, + "description": "Securely upload, store, edit, and utilize your images and files in CKEditor 5. Simplify media discovery in your uploads with the media browser alongside an intuitive Image Editor for image adjustments. Designed to facilitate organization, CKBox enables integrations, maintains permissions, and uses Workspaces to categorize files according to the user, document, or customer. It guarantees fast loading and optimal display of your images across devices through an efficient CDN. Deployable on-premises or as cloud SaaS.", + "shortDescription": "A secure and flexible media management solution with cloud and on-premise options." + }, + { + "id": "ckfinder", + "type": "feature", + "link": "features/ckfinder", + "name": "CKFinder", + "isPremium": true, + "description": "The CKFinder feature lets you insert images and links to files into your content. CKFinder is a powerful file manager with various image editing and image upload options.", + "shortDescription": "A robust file manager for inserting and editing images and files." + }, + { + "id": "custom-upload-adapter", + "type": "feature", + "link": "features/image-upload#implementing-your-own-upload-adapter", + "name": "Custom Upload Adapter", + "description": "Have your own file management solution? Use this adapter to integrate your preferred software with CKEditor.", + "shortDescription": "Integrates CKEditor with custom file management solutions." + }, + { + "id": "simple-upload-adapter", + "type": "feature", + "link": "features/simple-upload-adapter", + "name": "Simple Upload Adapter", + "description": "Upload images to your server using the XMLHttpRequest API with a minimal editor configuration.", + "shortDescription": "Uploads images to a server with minimal configuration." + } + ] + } +] \ No newline at end of file diff --git a/docs/features/feature-digest.md b/docs/features/feature-digest.md index 7d308556bf5..9531f052a8f 100644 --- a/docs/features/feature-digest.md +++ b/docs/features/feature-digest.md @@ -9,2014 +9,1583 @@ order: -998 CKEditor 5 offers over 150 various features, from basic editing capabilities like bold or italics to full-blown real-time collaboration, where multiple people can work on one document at the same time. This page collects them all and groups them into capabilities, features, and sub-features. Let's hope this list will help you grasp and easily digest everything CKEditor 5 has to offer. -## Core editing - -Core editing capability provides tools to create, edit, and style content. Here are essentials that every writer needs in their tool belt, like bold or italics. There is also something for coders - advanced HTML editing capabilities where you can directly edit HTML elements. + -## Compliance + -Make your content accessible to any person or restrict it to specific users. +## Core editing +

Core editing capability provides tools to create, edit, and style content. Here are essentials that every writer needs in their tool belt, like bold or italics. There is also something for coders - advanced HTML editing capabilities where you can directly edit HTML elements.

+
+
+

+ {@link features/general-html-support Advanced HTML Editing } +

+
+ Enable editing and customizing HTML elements, attributes, and styles with full control. +

Advanced HTML Editing features provide general HTML support, offering detailed control over permissible HTML elements, attributes, and styles. It further allows HTML Source Code Editing, handling HTML elements, HTML comments, and editing of the full page content, including meta tags.

+
+
+

+ {@link features/full-page-html Full page HTML } +

+
+ Edit entire HTML documents, including metadata, beyond visible content. +

Thanks to the full page HTML feature, you can use CKEditor 5 to edit entire HTML pages (from <html> to </html>), including the page metadata. While the {@link features/general-html-support General HTML Support} feature focuses on elements inside the content (the document's <body>), this feature enables markup invisible to the end user.

+
+
+
+

+ {@link features/general-html-support General HTML Support (GHS) } +

+
+ Enable unsupported HTML elements, attributes, and styles in the editor. +

With the General HTML Support (GHS) feature, developers can enable HTML features that are not supported by any other dedicated CKEditor 5 plugins. GHS lets you add elements, attributes, classes, and styles to the source. It also ensures this markup stays in the editor window and the output.

+
+
+
+

+ {@link features/html-comments HTML comment } +

+
+ Keep HTML comments in your document without displaying them to users. +

By default, the editor filters out all HTML comments on initialization. The HTML comment feature lets developers keep HTML comments in the document without displaying them to the user.

+
+
+
+

+ {@link features/html-embed HTML embed } +

+
+ Embed custom HTML snippets directly into your content. +

The HTML embed feature lets you embed any HTML snippet in your content. The feature is meant for more advanced users who want to directly interact with HTML fragments.

+
+
+
+

+ {@link features/show-blocks Show blocks } +

+
+ Visualize and outline all block-level elements in your content. +

The show blocks feature allows the content creators to visualize all block-level elements (except for widgets). It surrounds them with an outline and displays their element name in the top-left corner of the box.

+
+
+
+

+ {@link features/source-editing Source code editing } +

+
+ View and edit the source code of your document. +

The source editing feature lets you view and edit the source of your document.

+
+
+
+
+
+

+ {@link features/block-quote Block formatting } +

+
+ Organize and emphasize content with headings, block quotes, and horizontal lines. +

Block Formatting allows for the organization and emphasis of content through the use of Headings, Style Headings, Block Quotes, and Horizontal Lines. Users can select from different levels of headings to outline sections and subsections, apply various styles to these headings for visual hierarchy, insert horizontal lines to delineate sections, and use block quotes to highlight excerpts or important passages.

+
+
+

+ {@link features/block-quote Block quote } +

+
+ Add visually distinct block quotes to emphasize key excerpts. +

The block quote feature lets you easily include block quotations or pull quotes in your content. It is also an attractive way to draw the readers' attention to selected parts of the text.

+
+
+
+

+ {@link features/headings Headings/paragraph } +

+
+ Structure content with headings for better readability and hierarchy. +

The heading feature helps you structure your document by adding headings to parts of the text. They make your content easier to scan by both readers and search engines.

+
+
+
+

+ {@link features/horizontal-line Horizontal line } +

+
+ Insert horizontal lines to divide content or indicate topic changes. +

The horizontal line feature lets you visually divide your content into sections by inserting horizontal lines (also known as horizontal rules). It is an easy way to organize the content or indicate a change of topic.

+
+
+
+

+ {@link features/indent Block indentation } +

+
+ Adjust text block indentation for better content structure. +

The block indentation feature lets you set indentation for text blocks such as paragraphs, headings, or lists. This way you can visually distinguish parts of your content.

+
+
+
+
+
+

+ {@link features/bookmarks Bookmarks } +

+
+ Add bookmarks for quick navigation to key content sections. +

The bookmarks feature allows for adding and managing the bookmarks anchors attached to the content of the editor. These provide fast access to important content sections, and speed up the navigation boosting efficiency.

+
+
+
+

+ {@link framework/deep-dive/clipboard Clipboard } +

+
+ Easily copy, cut, and paste content within or outside the editor. +

Copy, cut, and paste content within the editor or from external sources.

+
+
+
+

+ {@link features/code-blocks Code blocks } +

+
+ Insert preformatted code snippets with distinct styling. +

Supports the insertion and management of pre-formatted code snippets with distinct styling.

+
+
+
+

+ {@link features/drag-drop Drag and drop } +

+
+ Reorganize text and elements using drag-and-drop functionality. +

Rearrange elements within a document, including moving text blocks, images, or other content types.

+
+
+
+

+ {@link features/font Font formatting } +

+
+ Customize font family, size, and color for tailored text presentation. +

The font feature lets you change font family, size, and color (including background color). All of these options are configurable.

+
+
+

+ {@link features/font#configuring-the-font-color-and-font-background-color-features Font background color } +

+
+ Highlight text with a colored background for emphasis. +

Effortlessly make the words stand out even more with a colored background.

+
+
+
+

+ {@link features/font#configuring-the-font-color-and-font-background-color-features Font color } +

+
+ Apply custom colors to text for improved readability or style. +

Effortlessly make the letters stand out with their own color.

+
+
+
+

+ {@link features/font#configuring-the-font-family-feature Font family } +

+
+ Choose suitable font families for your content needs. +

Choose from a predefined set of fonts, depending on the type of content and its destination - print, screen, etc.

+
+
+
+

+ {@link features/font#configuring-the-font-size-feature Font size } +

+
+ Adjust font size for better readability and emphasis. +

Easily control the size of the letters.

+
+
+
+
+
+

+ {@link features/images-overview Image } +

+
+ Add, style, and manage images with captions, resizing, and linking options. +

The image feature allows adding images of various kinds to the rich content inside the editor. A large set of subFeature background-grays lets the users fully control this process. Upload or paste images, insert via URL, use responsive images, resize images, add captions, set different image styles, and link images.

+
+
+

+ {@link features/images-text-alternative Image alt text } +

+
+ Add alt text to images for accessibility and SEO improvements. +

Add description text, AKA alternative text, for images. Alt text improves accessibility by telling screen readers and search engines what the image depicts.

+
+
+
+

+ {@link features/images-captions Image captions } +

+
+ Add captions below images to provide context. +

Add optional captions for images, which are shown below the picture.

+
+
+
+

+ {@link features/images-inserting Image insert via URL } +

+
+ Insert images directly using their URLs. +

You can insert images by uploading them directly from your disk, but you can also configure CKEditor 5 to let you insert images using URLs. This way, you can save time by adding images that are already online.

+
+
+
+

+ {@link features/images-linking Image linking } +

+
+ Turn images into clickable links for interactive content. +

The {@link module:link/linkimage~LinkImage} plugin lets you use images as links.

+
+
+
+

+ {@link features/images-resizing Image resize } +

+
+ Easily resize images for better content fit. +

The image resize feature lets you change the width of images in your content. It is implemented by the {@link module:image/imageresize~ImageResize} plugin.

+
+
+
+

+ {@link features/images-styles Image styles } +

+
+ Apply custom styles and alignments to images. +

The image styles feature lets you adjust the appearance of images. It works by applying CSS classes to images or changing their type from inline to block or vice versa.

+
+
+
+

+ {@link features/image-upload Image upload } +

+
+ Upload images directly from your device to the editor. +

Inserting {@link features/images-overview images} into content created with CKEditor 5 is quite a common task. In a properly configured rich-text editor, there are several ways for the end user to insert images.

+
+
+
+

+ {@link features/images-responsive Responsive images } +

+
+ Automatically optimize images for different screen sizes. +

The ability to have responsive images in the rich-text editor content is a great modern feature provided by the {@link features/ckbox CKBox asset manager}. With a single image upload, several optimized versions of that image are created, each for a different size of the display. The CKBox feature produces a <picture> element with a set of optimized images. The browser will automatically load the image with the dimensions most suitable for the presented page resolution, which makes the image load much faster and saves bandwidth.

+
+
+
+
+ +
+

+ {@link features/lists Lists } +

+
+ Create to-do, bulleted, and numbered lists with customizable styles. +

Lists allow the creation and management of various list types, including to-do lists, bulleted and numbered lists, with additional customization options such as list styles, setting the start number for lists, creating reversed lists, adjusting list indentation, and crafting nested lists.

+
+
+

+ {@link features/lists-editing#indenting-lists List indentation } +

+
+ Control list item indentation for nested lists. +

Besides controlling {@link features/indent text block indentation}, the indent and outdent buttons allow for indenting list items (nesting them).

+
+
+
+

+ {@link features/lists#list-start-index List start index } +

+
+ Set custom start numbers for ordered lists. +

The list start index feature allows the user to choose the starting point of an ordered list. By default, this would be 1 (or A, or I – see the list styles section). Sometimes, you may want to start a list with some other digit or letter, though.

+
+
+
+

+ {@link features/lists#list-styles List styles } +

+
+ Customize list markers for unique styles. +

The list style feature introduces some more styles for the list item markers. When {@link module:list/listconfig~ListPropertiesConfig#member-styles enabled}, it adds 3 styles for unordered lists and 6 styles for ordered lists to choose from. The user will be able to set or change the list style via the dropdown. It opens when you click the arrow next to the appropriate list button in the toolbar.

+
+
+
+

+ {@link features/multi-level-lists Multi-level lists + Premium feature + } +

+
+ Create hierarchical multi-level lists with numbering. +

Multi-level lists with the legal style numbering feature allows for easy creation and modification of numbered lists with counters (1, 1.1, 1.1.1). These are crucial for clear referencing and hierarchical organization in complex documents. The feature offers full compatibility with Microsoft Word.

+
+
+
+

+ {@link features/lists-editing#indenting-lists Nested lists } +

+
+ Easily create nested lists for complex content. +

Besides controlling {@link features/indent text block indentation}, the indent and outdent buttons allow for indenting list items (nesting them).

+
+
+
+

+ {@link features/lists Ordered lists } +

+
+ Add structured ordered lists with flexible formatting options. +

The list feature lets you create ordered (numbered) lists. The unique thing about them is that you can put any content inside each list item (including block elements like paragraphs and tables), retaining the continuity of numbering and indentation. You can also easily control the list markers type.

+
+
+
+

+ {@link features/lists#reversed-list Reversed list } +

+
+ Reverse list numbering for countdowns or steps. +

The reversed list feature lets the user reverse the numbering order of a list, changing it from ascending to descending. This is useful in countdowns and things-to-do lists that need to reproduce steps in a reversed order (for example, in disassembly instructions).

+
+
+
+

+ {@link features/todo-lists To-do lists } +

+
+ Create interactive to-do lists with checkboxes. +

The to-do list feature lets you create a list of interactive checkboxes with labels. It supports all features of {@link features/lists bulleted and numbered lists}, so you can nest a to-do list together with any combination of other lists.

+
+
+
+

+ {@link features/lists Unordered lists } +

+
+ Add unordered lists with customizable markers. +

The list feature lets you create unordered (bulleted) lists. The unique thing about them is that you can put any content inside each list item (including block elements like paragraphs and tables), retaining the continuity of numbering and indentation. You can also easily control the list markers' shape.

+
+
+
+
+
+

+ {@link features/mermaid Mermaid Exp} +

+
+ Create diagrams and charts using Markdown-inspired syntax. +

You can create flowcharts and diagrams in CKEditor 5 thanks to the experimental integration with the Mermaid library. Mermaid uses a Markdown-inspired syntax to create and dynamically modify flowcharts, Gantt diagrams, pie or quadrant charts, graphs, mindmaps, and more.

+
+
+
+

+ {@link features/remove-format Remove formatting } +

+
+ Quickly strip inline styles and formatting from text. +

The remove format feature lets you quickly remove any text formatting applied using inline HTML elements and CSS styles, like basic text styles (bold, italic) or font family, size, and color. This feature does not remove block-level formatting (headings, images) or semantic data (links).

+
+
+
+

+ {@link features/select-all Select all } +

+
+ Select all content within the editor instantly. +

Enables the selection of all content within the editor with a single command or shortcut.

+
+
+
+

+ {@link features/tables Tables } +

+
+ Design and manage tables with advanced editing options. +

CKEditor 5 provides robust support for tables, with the ability to merge and split cells, resize columns, style tables and individual cells, insert and delete columns and rows, as well as create nested tables for complex data presentation.

+
+
+

+ {@link features/tables-resize Columns resizing } +

+
+ Resize table columns for precise layout control. +

The {@link module:table/tablecolumnresize~TableColumnResize} plugin lets you resize tables and individual table columns. It gives you complete control over column width.

+
+
+
+

+ {@link features/tables#table-contextual-toolbar Insert/delete columns & rows } +

+
+ Easily add or remove table rows and columns. +

The basic table features allow users to insert tables into content, add or remove columns and rows and merge or split cells.

+
+
+
+

+ {@link features/tables#table-contextual-toolbar Merge & split cells } +

+
+ Merge or split table cells as needed. +

The basic table features allow users to insert tables into content, add or remove columns and rows, and merge or split cells.

+
+
+
+

+ {@link features/tables#nesting-tables Nesting } +

+
+ Nest tables within other tables for complex layouts. +

CKEditor 5 allows nesting tables inside other table's cells. This may be used for creating advanced charts or layouts based on tables. The nested table can be formatted just like a regular one.

+
+
+
+

+ {@link features/tables-styling Styling tables & cells } +

+
+ Apply custom styles to tables and individual cells. +

CKEditor 5 comes with some additional tools that help you change the look of tables and table cells. You can control border color and style, background color, padding, or text alignment.

+
+
+
+

+ {@link features/tables#default-table-headers Table headers } +

+
+ Set default table headers for better structure. +

To make every inserted table have n number of rows and columns as table headers by default, set an optional table configuration property defaultHeadings.

+
+
+
+

+ {@link features/tables#table-selection Table selection } +

+
+ Select and format specific table areas easily. +

The {@link module:table/tableselection~TableSelection} plugin introduces support for the custom selection system for tables that lets you:• Select an arbitrary rectangular table fragment – a few cells from different rows, a column (or a few of them) or a row (or multiple rows).• Apply formatting or add a link to all selected cells at once. The table selection plugin is loaded automatically by the Table plugin.

+
+
+
+

+ {@link features/tables-caption Tables caption } +

+
+ Add captions to tables to improve accessibility. +

The {@link module:table/tablecaption~TableCaption} plugin lets you add captions to your tables. Table captions also improve accessibility as they are recognized by screen readers.

+
+
+
+
+
+

+ {@link features/text-alignment Text alignment } +

+
+ Align text left, right, center, or justify with ease. +

Allows the adjustment of text alignment to the left, right, center, or justify and permits the alteration of indentation.

+
+
+
+

+ {@link features/basic-styles Text formatting } +

+
+ Apply bold, italic, underline, and other formatting styles to text. +

CKEditor 5 provides developers with text editing and formatting features such as Bold, Italic, Underline, Strikethrough, Subscript, Superscript, Inline Code, Highlight, and Font Styles. These features allow users to style and present their content as needed. This ensures users can style their text to improve readability, match branding guidelines, or highlight important content sections.

+
+
+

+ {@link features/basic-styles Bold } +

+
+ Make text bold for emphasis. +

Making the letters look like the good time were never gone.

+
+
+
+

+ {@link features/basic-styles Code } +

+
+ Insert inline code snippets for technical content. +

Snippet look like a terminal from the 1990s movie.

+
+
+
+

+ {@link features/highlight Highlight } +

+
+ Highlight text with color for emphasis. +

Highlight makes important content stand out, either with font color or background fill.

+
+
+
+

+ {@link features/basic-styles Italic } +

+
+ Italicize text for subtle emphasis. +

Making the letters look like seashore pines.

+
+
+
+

+ {@link features/basic-styles Strikethrough } +

+
+ Strike through text to indicate removal. +

Never mind, will not need it anymore.

+
+
+
+

+ {@link features/style Styles } +

+
+ Apply predefined styles to block and inline elements. +

The styles feature lets you easily apply predefined styles available for block and inline content.

+
+
+
+

+ {@link features/basic-styles Subscript } +

+
+ Add subscript text for chemical formulas or footnotes. +

Fine print at the bottom, like atom numbers.

+
+
+
+

+ {@link features/basic-styles Superscript } +

+
+ Add superscript text for exponents or references. +

Fine print on top, like references in a book.

+
+
+
+

+ {@link features/basic-styles Underline } +

+
+ Underline text to highlight importance. +

Stuff looks important, yo. Or like a link, too.

+
+
+
+
+
+

+ {@link features/undo-redo Undo/redo } +

+
+ Easily undo or redo recent actions. +

Backtrack or repeat actions for editing purposes.

+
+
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
- {@link features/accessibility Accessibility support} - - CKEditor 5 includes accessibility functionality designed to ensure - content is accessible to all users. These features encompass keyboard - navigation for easier content access without a mouse, screen reader - compatibility facilitated by ARIA attributes, and semantic output markup - for clearer interpretation of content structures. CKEditor 5 meets the - requirements of the Web Content Accessibility Guidelines (WCAG) 2.2 at - levels A and AA, as well as Section 508 of the Rehabilitation Act, as - detailed in the Accessibility Conformance Report, ensuring broad - accessibility compliance. -
- {@link features/read-only Read-only support} - - The Read-Only Mode feature enables content to be locked from editing - while still allowing it to be viewed. This mode is often used for - restricting editing access based on user roles, allowing only specific - users or groups to view the content without being able to modify it. - Common uses include viewing sensitive documents like financial reports, - software logs, or copyrighted stories that should not be altered but - need to be accessible for copying or by screen readers. This mode can be - toggled on and off by system triggers. -
- {@link features/restricted-editing Restricted editing} - - The Restricted Editing feature allows some sections of a document to be - designated as non-editable while others remain editable. This feature - supports two modes: the standard editing mode, where all content can be - edited, and the restricted editing mode, where users can only modify - parts of the content that are specifically marked as editable. This - functionality is useful for workflows where one group of users creates - document templates that include protected sections, and a second group - fills in editable details such as names, dates, or product names without - altering the rest of the document. -
- {@link features/language Text Part Language} - - The Text Part Language feature allows users to specify the language of - individual sections of text. This capability helps in creating documents - that include multiple languages by ensuring that browsers and screen - readers correctly interpret each part according to its designated - language. This feature is particularly valuable for content that - contains text in varying directions, such as an English document with - Arabic citations. It supports the WCAG 3.1.2 Language of Parts - specification, facilitating the creation of more accessible and - comprehensible multilingual content. -
- {@link features/word-count Word and character counter} - - The Word and Character Count feature provides a real-time tracking tool - for monitoring the number of words and characters within the editor. - This functionality assists in managing content length and ensuring it - meets specific requirements or limits. -
- {@link features/spelling-and-grammar-checking WProofreader - - Premium feature - } - - The Spelling and Grammar Checker is a proofreading tool that supports - over 80 languages and dialects. It checks spelling and grammar in real - time and through a separate dialog. Features include spelling - autocorrect, text autocomplete, and suggestions that appear on hover. Users - can create custom dictionaries for specific terms related to their brand - or company. The tool is compliant with WCAG 2.1 and Section 508 - accessibility standards. It also detects sentence-level errors and - offers context-based correction suggestions. -
+## Collaboration +

Collaborate with others - real-time or asynchronously. Comment, co-author, and mention team members in your documents. With collaboration features review process should be a breeze.

+
+
+

+ {@link features/collaboration Asynchronous collaboration + Premium feature + } +

+
+ Work collaboratively with team members asynchronously using Track Changes, Comments, and Revision History. +

Asynchronous Collaboration in CKEditor 5 is designed for teams using a turn-based approach to collaboratively write, review, and discuss content within the application. It integrates Track Changes, Comments, and Revision History features to facilitate collaboration.

+
+
+

+ {@link features/collaboration Local data storage + Premium feature + } +

+
+ Store collaborative data on local client servers for security and control. +

In asynchronous collaboration, data is maintained on the client's servers.

+
+
+
+
+
+

+ {@link features/comments Comments + Premium feature + } +

+
+ Add, discuss, and resolve comments for seamless content collaboration. +

Users can add side notes to marked fragments of the document, including text and block elements such as images. It also allows the users to discuss in threads and remove comments when they finish the discussion.

+
+
+

+ {@link features/comments Comments archive + Premium feature + } +

+
+ Archive resolved comments for streamlined feedback management and future reference. +

Comments threads can be either deleted or resolved. The latter provides a way to archive comments that are no longer relevant, reducing clutter and making it easier to focus on the most important feedback. Users can access the comments archive from the toolbar and use it to view and restore archived comments if necessary. It helps to simplify the feedback management process.

+
+
+
+

+ {@link features/comments-outside-editor Comments outside editor + Premium feature + } +

+
+ Extend comment functionality to non-editor fields for enhanced application integration. +

The comments feature API, together with {@link module:core/context~Context}, lets you create deeper integrations with your application. One such integration is enabling comments on non-editor form fields.

+
+
+ +
+
+
+

+ {@link features/mentions Mentions } +

+
+ Notify and tag users in content using smart autocompletion with @mentions. +

The mention feature supports smart autocompletion triggered by user input. Typing a predetermined marker, like @ or #, prompts a panel to appear, offering autocomplete suggestions.

+
+
+
+

+ {@link features/real-time-collaboration Real-time collaboration + Premium feature + } +

+
+ Collaborate in real-time with automatic conflict resolution for seamless teamwork. +

Real-Time Collaboration in CKEditor 5 is designed for users who are writing, reviewing, and commenting on content simultaneously. It also automatically solves all conflicts if users make changes at the same time.

+
+
+

+ {@link features/users-in-real-time-collaboration Co-authoring + Premium feature + } +

+
+ Edit and create content simultaneously with multiple users in real time. +

Multiple user real-time editing and content creation feature.

+
+
+
+

+ {@link @cs onpremises/index On-premises + Premium feature + } +

+
+ Deploy real-time collaboration on your infrastructure for full control and privacy. +

On-premises real-time collaboration version to deploy to client's own infrastructure, includes a private cloud.

+
+
+
+

+ {@link @cs guides/collaboration/quick-start SaaS + Premium feature + } +

+
+ Access real-time collaboration as a cloud service managed by CKSource. +

Real-time collaboration provided as a service by CKSource.

+
+
+
+
+
+

+ {@link features/revision-history Revision history + Premium feature + } +

+
+ Track, compare, and restore document versions with detailed revision history. +

The revision history feature is a document versioning tool. It allows CKEditor 5 users to create and view the chronological revision history of their content. These versions are listed in the side panel. The preview mode allows for easy viewing of content development between revisions. You can rename, compare, and restore older revisions on the go.

+
+
+
+

+ {@link features/track-changes Track changes + Premium feature + } +

+
+ Monitor and manage document edits with automatic suggestion tracking. +

The track changes feature brings automatic suggestion marking for the document as you change it. When editing the document, the user can switch to the track changes mode. All their changes will then create suggestions that they can accept or discard.

+
+
+
+

+ {@link features/users Users list and permissions + Premium feature + } +

+
+ Manage user roles and permissions for secure, collaborative editing. +

The {@link module:collaboration-core/users~Users} plugin and related plugins let you manage user data and permissions. This is essential when many users are working on the same document.

+
+
+
-## Customization +## Content conversion & embedding +

Collaborate also regarding different formats. With content conversions, you can integrate content across commonly used business formats. You can also enrich your content with media embeds.

+
+
+

+ {@link features/export-pdf Content generation + Premium feature + } +

+
+ Generate content in multiple formats like PDF and Word. +

CKEditor 5 may be your universal starting point for generating content in several recognizable formats.

+
+
+

+ {@link features/export-pdf Export to PDF + Premium feature + } +

+
+ Convert in-editor content to a PDF with customizable options. +

Create a PDF from in-editor content seamlessly. Customize headers and footers, include page breaks, embed images, and choose from various fonts.

+
+
+
+

+ {@link features/export-word Export to Word + Premium feature + } +

+
+ Export editor content to Word while preserving formatting and comments. +

Instantly convert content from the editor to a Word document with a single click, maintaining its appearance and formatting. The final document includes suggestions, comments, page breaks, and embedded images.

+
+
+
+

+ {@link features/import-word Import from Word + Premium feature + } +

+
+ Convert Word documents to HTML while keeping styling and annotations. +

Effortlessly transform Word documents into clean HTML within CKEditor 5 while retaining the original styling, as well as comments and change tracking annotations.

+
+
+
+
+
+

+ {@link features/markdown Markdown output } +

+
+ Outputs editor content in Markdown format for developer-friendly workflows. +

Enable Markdown as the default output format instead of HTML with the Markdown plugin. Combined with Autoformatting, CKEditor becomes an efficient Markdown editor, allowing the creation of text documents using the simplified formatting syntax favored by developers.

+
+
+
+

+ {@link features/media-embed Media embed } +

+
+ Embed media by pasting a URL or using the insert media button. +

Use the insert media button in the toolbar to embed media. Pasting a media URL directly into the editor content automatically embeds the media.

+
+
+
+

+ {@link features/paste-markdown Paste Markdown } +

+
+ Paste Markdown-formatted text to convert it into rich text. +

The paste Markdown feature lets users paste Markdown-formatted content straight into the editor. It will be then converted into rich text on the fly.

+
+
+
+

+ {@link module:engine/dataprocessor/xmldataprocessor~XmlDataProcessor XML output } +

+
+ Transform content into XML for automation and compatibility. +

Turn your content into parsable XML files for automation and cross-platform interoperability.

+
+
+
-Customize your editor even further. Use components and helpers from our UI library to create a UI that will match your design system. +## Page management +

Format, organize, and navigate your documents easily with page management features. Create a table of contents, insert page breaks, and manage pagination.

+
+
+

+ {@link features/document-outline Document outline + Premium feature + } +

+
+ Lists headings in a sidebar for quick navigation through documents. +

The Document Outline feature automatically detects and lists document headings in a sidebar, enabling faster navigation through large documents. Headings are organized in a structured list, so users can click and jump to different sections quickly. This feature also allows for customization of the outline's location within the user interface, catering to different user preferences for workspace layout.

+
+
+
+

+ {@link features/minimap Page utilities } +

+
+ Manage document layout and formatting with Page Utilities. +

CKEditor 5 Page Utilities enables users to dictate the structuring and print formatting of their documents effectively.

+
+
+

+ {@link features/minimap Content minimap } +

+
+ Provides an overview of content for quick navigation. +

Offers a concise, birds-eye view of the document's content, allowing for quick navigation and content management.

+
+
+
+

+ {@link features/title Document title } +

+
+ Set and edit the document title for accuracy and relevance. +

Allows users to set and modify the document's title within the editing interface, ensuring accurate reflection of the contents.

+
+
+
+

+ {@link features/page-break Page break } +

+
+ Insert manual page breaks for precise layout control. +

Facilitates the insertion of manual breaks within the document, enabling the definition of page endings and beginnings for optimal layout and print clarity.

+
+
+
+
+
+

+ {@link features/pagination Pagination + Premium feature + } +

+
+ Visually mark page boundaries for better document layout. +

The Pagination feature visually indicates where pages begin and end within a document. This feature is designed to assist users in preparing their documents for printing or export to various document formats, ensuring that the transition between pages is seamless and accurately reflected in the final output. Users may adjust content distribution across pages as they like, ensuring well-organized documents with presented content, whether in digital form or print. By providing a clear view of how text and elements will appear page-by-page, Pagination aids in the creation of professional and polished documents.

+
+
+
+

+ {@link features/table-of-contents Table of contents + Premium feature + } +

+
+ Insert a dynamic table of contents that updates in real time. +

The Table of Contents feature is a dynamic tool for organizing documents. It allows for the insertion of a linked table of contents that automatically updates in real time as the document's content changes. This means changes made to headings or structured sections within the document are reflected immediately in the table of contents, accurately representing the document structure.

+
+
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
- {@link framework/index Editor SDK} - - Select from numerous toolbar styles and over 100 plugins to tailor an - editor that perfectly fits your requirements, all without needing any - development expertise. For those looking to go further, the CKEditor API - enables the creation of custom plugins or modification of the - editor's functionality. To assist the development process, - dedicated resources such as a package generator and the CKEditor 5 - Inspector - a comprehensive suite of debugging tools - are provided, - helping accelerate development work. -
- - {@img assets/img/enter-arrow.svg} {@link framework/development-tools/inspector CKEditor 5 inspector} - - The official CKEditor 5 inspector provides a set of rich debugging tools for editor internals like - {@link framework/architecture/editing-engine#model model}, {@link - framework/architecture/editing-engine#view view}, and {@link - framework/architecture/core-editor-architecture#commands commands}.
- - {@img assets/img/enter-arrow.svg} {@link @cs developer-resources/apis/overview Cloud Services REST API} - - The CKEditor Cloud Services is a cloud platform that provides editing and real-time collaboration - services. The platform primarily focuses on providing a backend for the CKEditor 5 features, although - some features can also be used directly through REST APIs.
- {@link framework/theme-customization Themes} - - The default theme of CKEditor 5 can be customized to match most visual - integration requirements. -
- {@link framework/architecture/ui-library UI Library} - - The standard UI library of CKEditor 5 is - @ckeditor/ckeditor5-ui. It provides base classes and helpers that allow for building a - modular UI that seamlessly integrates with other components of the - ecosystem. -
+## Productivity +

Speed up the content creation process with dedicated productivity utilities. Autoformat your content as you write (or paste from other editors) or even delegate some tasks to an AI Assistant.

+
+
+

+ {@link features/ai-assistant-overview AI Assistant + Premium feature + } +

+
+ Leverage AI for content creation, processing, and customizable integrations. +

The AI Assistant feature enhances editing efficiency and creativity with artificial intelligence capabilities. It allows users to generate new content and process data through custom queries or utilize a set of predefined commands that are also customizable. The feature supports integration with multiple AI API providers: OpenAI, Azure OpenAI, and Amazon Bedrock. You can also integrate it with custom models.

+
+
+
+

+ {@link features/autoformat Automation } +

+
+ Streamline tasks like formatting, linking, and saving with automation tools. +

Automate your workflow with CKEditor 5 automation tools, regardless of whether you write, link, or save!

+
+
+

+ {@link features/autoformat Autoformatting } +

+
+ Quickly format content using Markdown-like shortcuts. +

Use Autoformatting to get Markdown-like shortcodes for quick formatting without needing to navigate through toolbar buttons or dropdown menus. This feature caters to the most common formatting needs.

+
+
+ +
+

+ {@link features/text-transformation Automatic text transformations } +

+
+ Automatically expand abbreviations or autocorrect text based on predefined rules. +

The Automatic Text Transformation autocorrects or transforms predefined text fragments into their designated forms. It comes with a range of popular text transformations pre-configured, and accepts customization by adding or removing autocorrect entries. It is commonly used to automate the expansion of abbreviations or short phrases into their full forms.

+
+
+
+

+ {@link features/autosave Autosave } +

+
+ Automatically save changes for uninterrupted workflow. +

The Autosave feature guarantees that your work is never lost. It automatically saves changes - for instance, when content is modified. This could involve sending the latest version of the document to the server, providing peace of mind through continuous backup.

+
+
+
+
+
+

+ {@link features/case-change Case change + Premium feature + } +

+
+ Easily switch text cases between uppercase, lowercase, and title case. +

The Case Change feature simplifies adjusting text cases within a document. With just a single click, users can shift text between UPPERCASE, lowercase, and Title Case options. The case transformation can be applied to various text blocks (paragraph, heading, or list item) by placing the cursor within the block. Alternatively, users can select a specific fragment of text they wish to modify. This feature enhances the editing workflow by removing the need for manual case adjustments.

+
+
+
+

+ {@link features/find-and-replace Find and replace } +

+
+ Search and replace text efficiently across your document. +

The Find and Replace feature in CKEditor 5's Productivity tools allows you to search for words or phrases in your document and replace them with different text. This function helps speed up editing and maintain content consistency.

+
+
+
+

+ {@link features/format-painter Format painter + Premium feature + } +

+
+ Clone and apply formatting for consistent styling across sections. +

The Format Painter feature lets users clone formatting from one section and apply it to others within a document. This tool speeds up maintaining style consistency across the document. Once initiated, Format Painter can continue to apply the copied formatting to multiple sections consecutively. This "continuous painting" ensures a uniform style is achieved quickly without the need to repeatedly select the formatting options for each new section.

+
+
+
+

+ {@link features/accessibility#keyboard-shortcuts Keyboard shortcuts } +

+
+ Boost productivity with keyboard shortcuts for editing and accessibility. +

CKEditor 5 supports various keyboard shortcuts that boost productivity and provide necessary accessibility to screen reader users.

+
+
+
+

+ {@link features/math-equations MathType + Premium feature + } +

+
+ Insert formatted math equations and chemical formulas into your content. +

Math Equations allows you to add properly formatted mathematical notation and chemical formulas to your documents. This feature supports the inclusion of math equations, which can be handwritten on a tablet and automatically converted into well-formed digital text. It also offers simple numbering of equations and the ability to customize with various fonts and colors, enhancing readability and presentation in your content.

+
+
+
+

+ {@link features/merge-fields Merge fields + Premium feature + } +

+
+ Add placeholders for dynamic values in templates and documents. +

Merge Fields allows the inclusion of placeholders in your content, facilitating the creation of document templates, especially useful for email templates and document automation. These placeholders can later be replaced with dynamic values by the customer's application, enabling tasks like mass email distribution or generation of personalized documents.

+
+
+
+

+ {@link features/paste-from-google-docs Paste from Google Docs } +

+
+ Retain formatting when pasting content from Google Docs. +

Paste from Office features let you paste content from Microsoft Word and Microsoft Excel and preserve its original structure and formatting. This is the basic, open-source Paste from Office feature.

+
+
+
+

+ {@link features/paste-from-office Paste from Office } +

+
+ Preserve formatting and structure when pasting from Microsoft Office. +

Paste from Office features let you paste content from Microsoft Word and Microsoft Excel and preserve its original structure and formatting. This is the basic, open-source Paste from Office feature.

+
+
+
+

+ {@link features/paste-from-office-enhanced Paste from Office Enhanced + Premium feature + } +

+
+ Accurately preserve advanced formatting when pasting from Word or Excel. +

The Enhanced Paste from Word/Excel feature accurately retains formatting and structure when content is pasted from Microsoft Word documents into the editor. This includes preserving text styles, lists, tables, and layouts. The feature facilitates the transfer of documents from Word to CKEditor 5 without compromising on formatting.

+
+
+
+

+ {@link features/paste-plain-text Paste plain text } +

+
+ Paste content without formatting for clean and consistent styling. +

The Paste as Plain Text feature strips formatting from the pasted text. This feature ensures that text pasted into the document adopts the style of the surrounding content, effectively described as "pasting without formatting." Additionally, it intelligently converts double-line breaks into paragraphs and single-line breaks into soft breaks, aiding in maintaining the structural integrity of the document.

+
+
+
+

+ {@link features/slash-commands Slash commands + Premium feature + } +

+
+ Quickly add and style content using slash commands for efficiency. +

The Slash Commands feature lets users insert block elements and apply styles using just the keyboard. By pressing the / key, a panel with suggested commands appears, enabling quick and mouse-free actions. Users can filter through these commands by typing additional phrases after the /, making it easier to find specific commands. Additionally, the option to customize personal commands is available, allowing for a tailored editing experience.

+
+
+
+

+ {@link features/special-characters Special characters } +

+
+ Add unique symbols, characters, and emojis to your content. +

Insert a variety of unique symbols and characters into your document with CKEditor 5's Special Characters feature. This includes mathematical operators, currency symbols, punctuation, graphic symbols like arrows or bullets, and Unicode letters that are not typically available on standard keyboards, such as umlauts or diacritics. Additionally, the feature supports the insertion of emojis. This tool is particularly useful for enhancing the detail and accuracy of content that requires specialized symbols.

+
+
+
+

+ {@link features/template Templates + Premium feature + } +

+
+ Insert predefined templates for faster and consistent document creation. +

The Templates feature enables the insertion of predefined content structures into documents, ranging from small content pieces, like formatted tables, to complete document frameworks, like formal letter templates. Templates accelerate the document creation process while ensuring adherence to the company's content and document policies.

+
+
+
-## File management +## Configurations +

Configure CKEditor 5 to your liking. Choose the editor type, modify the toolbar, and select a language from our translated language packs.

+
+
+

+ {@link features/editor-placeholder Editor placeholder } +

+
+ Display customizable placeholder text in the editor when no content is present. +

You can prompt the user to input content by displaying a configurable placeholder text when the editor is empty. This works similarly to the native DOM placeholder attribute used by inputs. Not to be confused with content placeholder.

+
+
+
+

+ {@link getting-started/setup/editor-types Editor UI types } +

+
+ The user interface varies by editor type, offering features via a toolbar or shortcuts. +

The editor's user interface is dependent on the editor types. The editor provides functionality through specialized features accessible via a configurable toolbar or keyboard shortcuts. Some of these features are only available with certain editor types.

+
+
+

+ {@link getting-started/setup/editor-types#balloon-editor-and-balloon-block-editor Balloon block editor } +

+
+ Balloon editor with a block toolbar for advanced block-level editing. +

Balloon block is essentially the balloon editor with an extra block toolbar, which can be accessed using the button attached to the editable content area and following the selection in the document. The toolbar gives access to additional block–level editing features.

+
+
+
+

+ {@link getting-started/setup/editor-types#balloon-editor-and-balloon-block-editor Balloon editor } +

+
+ Inline editor with a toolbar that appears next to the text selection. +

Balloon editor is similar to inline editor. The difference between them is that the toolbar appears in a balloon next to the selection (when the selection is not empty).

+
+
+
+

+ {@link getting-started/setup/editor-types#classic-editor Classic editor } +

+
+ Traditional editor with a fixed toolbar and editing area. +

Classic editor is what most users traditionally learned to associate with a rich-text editor – a toolbar with an editing area placed in a specific position on the page, usually as a part of a form that you use to submit some content to the server.

+
+
+
+

+ {@link getting-started/setup/editor-types#decoupled-editor-document Decoupled editor } +

+
+ Editor designed for creating documents like Google Docs or Microsoft Word. +

The document editor focuses on a rich-text editing experience similar to large editing packages such as Google Docs or Microsoft Word. It works best for creating documents, which are usually later printed or exported to PDF files.

+
+
+
+

+ {@link getting-started/setup/editor-types#inline-editor Inline editor } +

+
+ Floating toolbar editor for editing content directly on the web page. +

The inline editor comes with a floating toolbar that becomes visible when the editor is focused (for example, by clicking it). A common scenario for using the inline editor is offering users the possibility to edit content (such as headings and other small areas) in its real location on a web page instead of doing it in a separate administration section.

+
+
+
+

+ {@link getting-started/setup/editor-types#multi-root-editor Multi-root editor } +

+
+ Editor with multiple connected editable areas sharing the same configuration. +

The multi-root editor is an editor type that features multiple, separate editable areas. The main difference between using a multi-root editor and using multiple separate editors is the fact that in a multi-root editor, the editors are “connected.” All editable areas of the same editor instance share the same configuration, toolbar, undo stack, and produce one document.

+
+
+
+
+
+

+ {@link getting-started/setup/ui-language Professionally translated language packs } +

+
+ undefined +

CKEditor 5 provides 38 professionally translated language options, along with additional languages provided by community translations. CKEditor 5 also supports right-to-left (RTL) languages natively. When an RTL language is selected, the editor automatically adjusts its interface, including elements like toolbars, dropdowns, and buttons, to ensure an optimal editing experience.1

+
+
+
+

+ {@link getting-started/setup/toolbar Toolbar and menus } +

+
+ undefined +

The Toolbar Configuration feature provides different toolbar interfaces for editing content. The default toolbar includes dropdown menus and buttons for various editing functions. The Balloon Toolbar appears when text is selected, showing relevant tools. The Block Toolbar is accessed by clicking a button on the left-hand side of the editor, providing tools for the active block of content. Additionally, the Multiline Toolbar option allows for the expansion of the standard toolbar over multiple lines to display more tools simultaneously.

+
+
+

+ {@link getting-started/setup/toolbar#balloon-toolbar Balloon toolbar } +

+
+ A floating toolbar that appears when content is selected. +

A ballon toolbar is a special instance of the main toolbar, available in the balloon and balloon block editor types. Instead of being fixed to the editing area, it pops up when the user selects some content and provides an editing toolset.

+
+
+
+

+ {@link getting-started/setup/toolbar#block-toolbar Block toolbar } +

+
+ A configurable toolbar on the left side of the editor. +

The block toolbar provides an additional configurable toolbar on the left-hand side of the content area, useful when the main toolbar is not accessible (for example in certain layouts, like balloon block editor).

+
+
+
+

+ {@link getting-started/setup/toolbar#main-editor-toolbar Classic toolbar } +

+
+ A standard toolbar with buttons and dropdowns for editing. +

The toolbar is the most basic user interface element of CKEditor 5 that gives you convenient access to all its features. It has buttons and dropdowns that you can use to format, manage, insert, and change elements of your content.

+
+
+
+

+ {@link getting-started/setup/toolbar#extended-toolbar-configuration-format Collapsible toolbar } +

+
+ A toolbar that collapses to save space. +

Collapsible toolbar for UI space efficiency.

+
+
+
+

+ {@link features/images-overview#image-contextual-toolbar Image contextual toolbar } +

+
+ A toolbar for image-specific tools appearing upon selection. +

The {@link module:image/imagetoolbar~ImageToolbar} plugin introduces a contextual toolbar for images. The toolbar appears when an image is selected and can be configured to contain any buttons you want. Usually, these will be image-related options, such as the {@link features/images-text-alternative text alternative} button, the {@link features/images-captions image caption} button, and {@link features/images-styles image styles} buttons. The toolbar can also host the image editing button introduced by the {@link features/ckbox CKBox asset manager}. Shown below is an example contextual toolbar with an extended set of buttons.

+
+
+ +
+

+ {@link getting-started/setup/toolbar#multiline-wrapping-toolbar Multiline toolbar } +

+
+ A toolbar that spans multiple lines for better tool visibility. +

Multiline toolbar for easy access to all functions.

+
+
+
+

+ {@link getting-started/setup/toolbar#grouping-toolbar-items-in-dropdowns-nested-toolbars Nesting toolbars in dropdowns } +

+
+ Group toolbar items into dropdowns to save space. +

Nested toolbars for space efficiency and task-oriented access.

+
+
+ +
+

+ {@link features/tables#table-contextual-toolbar Table contextual toolbar } +

+
+ A toolbar for table-related tools appearing on selection. +

The {@link module:table/tabletoolbar~TableToolbar} plugin introduces a contextual toolbar for the table. The toolbar appears when a table or a cell is selected and contains various table-related buttons. These would typically include adding or removing columns and rows and merging or splitting cells. If these features are configured, the toolbar will also contain buttons for captions and table and cell properties.

+
+
+
+
+
+

+ {@link features/watchdog Watchdog } +

+
+ A utility that prevents data loss by recovering content after crashes. +

The watchdog utility protects you from data loss in case the editor crashes. It saves your content just before the crash and creates a new instance of the editor with your content intact.

+
+
+
-Upload and manage your files using file management features. Take advantage of CKBox, our file management solution, or create your own using an adapter. +## Compliance +

Make your content accessible to any person or restrict it to specific users.

+
+
+

+ {@link features/accessibility Accessibility support } +

+
+ Provides keyboard navigation, screen reader support, and semantic output for accessibility compliance. +

CKEditor 5 includes accessibility functionality designed to ensure content is accessible to all users. These features encompass keyboard navigation for easier content access without a mouse, screen reader compatibility facilitated by ARIA attributes, and semantic output markup for clearer interpretation of content structures. CKEditor 5 meets the requirements of the Web Content Accessibility Guidelines (WCAG) 2.2 at levels A and AA, as well as Section 508 of the Rehabilitation Act, as detailed in the Accessibility Conformance Report, ensuring broad accessibility compliance.

+
+
+
+

+ {@link features/read-only Read-only support } +

+
+ Allows content to be viewed without editing access. +

The Read-Only Mode feature enables content to be locked from editing while still allowing it to be viewed. This mode is often used for restricting editing access based on user roles, allowing only specific users or groups to view the content without being able to modify it. Common uses include viewing sensitive documents like financial reports, software logs, or copyrighted stories that should not be altered but need to be accessible for copying or by screen readers. This mode can be toggled on and off by system triggers.

+
+
+
+

+ {@link features/restricted-editing Restricted editing } +

+
+ Restricts editing to specific sections of a document. +

The Restricted Editing feature allows some sections of a document to be designated as non-editable while others remain editable. This feature supports two modes: the standard editing mode, where all content can be edited, and the restricted editing mode, where users can only modify parts of the content that are specifically marked as editable. This functionality is useful for workflows where one group of users creates document templates that include protected sections, and a second group fills in editable details such as names, dates, or product names without altering the rest of the document.

+
+
+
+

+ {@link features/language Text Part Language } +

+
+ Specifies languages for text sections to enhance multilingual accessibility. +

The Text Part Language feature allows users to specify the language of individual sections of text. This capability helps in creating documents that include multiple languages by ensuring that browsers and screen readers correctly interpret each part according to its designated language. This feature is particularly valuable for content that contains text in varying directions, such as an English document with Arabic citations. It supports the WCAG 3.1.2 Language of Parts specification, facilitating the creation of more accessible and comprehensible multilingual content.

+
+
+
+

+ {@link features/word-count Word and character counter } +

+
+ Tracks word and character count in real time. +

The Word and Character Count feature provides a real-time tracking tool for monitoring the number of words and characters within the editor. This functionality assists in managing content length and ensuring it meets specific requirements or limits.

+
+
+
+

+ {@link features/spelling-and-grammar-checking WProofreader + Premium feature + } +

+
+ Proofreads text with real-time spelling and grammar checks in 80+ languages. +

The Spelling and Grammar Checker is a proofreading tool that supports over 80 languages and dialects. It checks spelling and grammar in real time and through a separate dialog. Features include spelling autocorrect, text autocomplete, and suggestions that appear on hover. Users can create custom dictionaries for specific terms related to their brand or company. The tool is compliant with WCAG 2.1 and Section 508 accessibility standards. It also detects sentence-level errors and offers context-based correction suggestions.

+
+
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
- {@link features/base64-upload-adapter Base64 Upload Adapter} - - Convert inserted images into Base64-encoded strings in the editor - output. Images are stored with other content in the database without - server-side processing. -
- {@link features/ckbox CKBox - - Premium feature - } - - Securely upload, store, edit, and utilize your images and files in CKEditor 5. Simplify media discovery - in your uploads with the media browser alongside an intuitive Image Editor for image adjustments. - Designed to facilitate organization, CKBox enables integrations, maintains permissions, and uses - Workspaces to categorize files according to the user, document, or customer. It guarantees fast loading - and optimal display of your images across devices through an efficient CDN. Deployable on-premises or as - cloud SaaS. -
- {@link features/ckfinder CKFinder - - Premium feature - } - - The CKFinder feature lets you insert images and links to files into your - content. CKFinder is a powerful file manager with various image editing - and image upload options. -
- {@link features/image-upload#implementing-your-own-upload-adapter Custom Upload Adapter} - - Have your own file management solution? Use this adapter to integrate - your preferred software with CKEditor. -
- {@link features/simple-upload-adapter Simple Upload Adapter} - - Upload images to your server using the XMLHttpRequest API with a - minimal editor configuration. -
- UploadcarePremium - feature - - Upload, store, transform, optimize, and deliver images, videos, and - documents with this cloud-based file handler. Upload media from local - storage, web cameras, cloud services, and social networks with automated - media optimization through a CDN for responsive image delivery. Popular - features include adaptive image quality, automated image format - conversion, progressive JPEG, and options for preview, resize, stretch, - crop, content-aware crop, and setting fill color. -
+## Customization +

Customize your editor even further. Use components and helpers from our UI library to create a UI that will match your design system.

+
+
+

+ {@link framework/index Editor SDK } +

+
+ Customize your editor with toolbars, plugins, and developer tools. +

Select from numerous toolbar styles and over 100 plugins to tailor an editor that perfectly fits your requirements, all without needing any development expertise. For those looking to go further, the CKEditor API enables the creation of custom plugins or modification of the editor's functionality. To assist the development process, dedicated resources such as a package generator and the CKEditor 5 Inspector - a comprehensive suite of debugging tools - are provided, helping accelerate development work.

+
+
+

+ {@link framework/development-tools/inspector CKEditor 5 inspector } +

+
+ A debugging tool for exploring editor internals. +

The official CKEditor 5 inspector provides a set of rich debugging tools for editor internals like {@link framework/architecture/editing-engine#model model}, {@link framework/architecture/editing-engine#view view}, and {@link framework/architecture/core-editor-architecture#commands commands}.

+
+
+
+

+ {@link @cs developer-resources/apis/overview Cloud Services REST API } +

+
+ Cloud backend services with REST API support for collaboration. +

The CKEditor Cloud Services is a cloud platform that provides editing and real-time collaboration services. The platform primarily focuses on providing a backend for the CKEditor 5 features, although some features can also be used directly through REST APIs.

+
+
+
+
+
+

+ {@link framework/theme-customization Themes } +

+
+ Customize the editor theme to match your design needs. +

The default theme of CKEditor 5 can be customized to match most visual integration requirements.

+
+
+
+

+ {@link framework/architecture/ui-library UI Library } +

+
+ A modular UI library for seamless ecosystem integration. +

The standard UI library of CKEditor 5 is @ckeditor/ckeditor5-ui. It provides base classes and helpers that allow for building a modular UI that seamlessly integrates with other components of the ecosystem.

+
+
+
-{@snippet features/feature-digest} +## File management +

Upload and manage your files using file management features. Take advantage of CKBox, our file management solution, or create your own using an adapter.

+
+
+

+ {@link features/base64-upload-adapter Base64 Upload Adapter } +

+
+ Encodes images as Base64 strings for database storage. +

Convert inserted images into Base64-encoded strings in the editor output. Images are stored with other content in the database without server-side processing.

+
+
+
+

+ {@link features/ckbox CKBox + Premium feature + } +

+
+ A secure and flexible media management solution with cloud and on-premise options. +

Securely upload, store, edit, and utilize your images and files in CKEditor 5. Simplify media discovery in your uploads with the media browser alongside an intuitive Image Editor for image adjustments. Designed to facilitate organization, CKBox enables integrations, maintains permissions, and uses Workspaces to categorize files according to the user, document, or customer. It guarantees fast loading and optimal display of your images across devices through an efficient CDN. Deployable on-premises or as cloud SaaS.

+
+
+
+

+ {@link features/ckfinder CKFinder + Premium feature + } +

+
+ A robust file manager for inserting and editing images and files. +

The CKFinder feature lets you insert images and links to files into your content. CKFinder is a powerful file manager with various image editing and image upload options.

+
+
+
+

+ {@link features/image-upload#implementing-your-own-upload-adapter Custom Upload Adapter } +

+
+ Integrates CKEditor with custom file management solutions. +

Have your own file management solution? Use this adapter to integrate your preferred software with CKEditor.

+
+
+
+

+ {@link features/simple-upload-adapter Simple Upload Adapter } +

+
+ Uploads images to a server with minimal configuration. +

Upload images to your server using the XMLHttpRequest API with a minimal editor configuration.

+
+
+
+ diff --git a/docs/umberto.json b/docs/umberto.json index e0a65016830..702685a0568 100644 --- a/docs/umberto.json +++ b/docs/umberto.json @@ -3,7 +3,8 @@ "slug": "ckeditor5", "hooks": { "beforeHexo": [ - "../scripts/docs/build-content-styles.mjs" + "../scripts/docs/build-content-styles.mjs", + "../scripts/docs/generate-features-digest.mjs" ] }, "reportIssueWidget": { diff --git a/scripts/docs/generate-features-digest.mjs b/scripts/docs/generate-features-digest.mjs new file mode 100644 index 00000000000..ace914ecccb --- /dev/null +++ b/scripts/docs/generate-features-digest.mjs @@ -0,0 +1,78 @@ +/** + * @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 */ + +import upath from 'upath'; +import fs from 'fs-extra'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath( import.meta.url ); +const __dirname = upath.dirname( __filename ); + +export default async function generateFeaturesDigest() { + const digest = await fs.readJson( upath.join( __dirname, '../../docs/data/features-digest-source.json' ) ); + + const output = []; + + digest.forEach( capability => { + output.push( generateCapability( capability ) ); + } ); + + // Update the features digest markdown file content by to the newest HTML structure generated based on JSON data. + const startMarker = ''; + const endMarker = ''; + const replacementText = output.join( '\n' ); + const filePath = upath.join( __dirname, '../../docs/features/feature-digest.md' ); + + const featuresDigestMdFileContent = await fs.readFile( filePath, 'utf8' ); + const regex = new RegExp( `${ startMarker }[\\s\\S]*?${ endMarker }`, 'g' ); + + const modifiedContent = featuresDigestMdFileContent.replace( + regex, `${ startMarker }\n${ replacementText }\n${ endMarker }` + ); + + await fs.writeFile( filePath, modifiedContent, 'utf8' ); + + console.log( 'Features digest have been built.' ); +} + +function generateCapability( capability ) { + return ` +## ${ capability.name } +

${ capability.description }

+
+ ${ capability.features.map( feature => generateFeature( feature ) ).join( '\n' ) } +
`; +} + +function generateFeature( feature, isSubFeature = false ) { + const subFeatures = feature.subFeatures; + let subFeaturesOutput = ''; + + if ( subFeatures ) { + subFeaturesOutput = `
+ ${ subFeatures.map( subFeatures => generateFeature( subFeatures, true ) ).join( '\n' ) } +
`; + } + + const premiumBadge = ` + Premium feature + `; + const experimentalBadge = 'Exp'; + + const addPremiumBadge = feature.isPremium ? premiumBadge : ''; + const addExperimentalBadge = feature.isExperimental ? experimentalBadge : ''; + + return `
+

+ {@link ${ feature.link } ${ feature.name } ${ addPremiumBadge }${ addExperimentalBadge }} +

+
+ ${ feature.shortDescription } +

${ feature.description }

+
${ subFeaturesOutput } +
`; +}