Document title
The Title
feature enables support for adding the title field to your document. It helps ensure that there will always be a single title field at the beginning of the document.
This feature can be used to implement a rich-text editor with a clear division of content into the title and body sections, similar to solutions available in Medium, Grammarly, Slack post editor or some content management systems.
# Demo
Use the editor to create a document with clearly separated title and body sections. You can check the content of the title and body elements in the console below.
Console
''
'<p> </p>'
''
# Related features
There are more CKEditor 5 features that can help you structure your document better:
- Headings – Divide your content into sections.
- Block indentation – Organize your content into visually separated blocks, indent crucial paragraphs, etc.
- Editor placeholder – Set placeholder text to display when the content is empty. It helps users locate the editor in the application and prompts to input the content.
# Keyboard navigation
The title plugin lets you move from the title to the body element using the Tab key, providing form-like experience. When the selection is at the beginning of the first body element, you can go back to the title element using Shift+Tab. You can also use Enter and Backspace keys to move the caret between the title and the body.
# Placeholder integration
The title plugin is integrated with the placeholder configuration. If you define it, the placeholder text will be used for the body element.
To change the title placeholder, use the title.placeholder
configuration option. For instance:
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Title, ... ],
title: {
placeholder: 'My custom placeholder for the title'
},
placeholder: 'My custom placeholder for the body'
} )
.then( ... )
.catch( ... );
# Installation
To add this feature to your editor, install the @ckeditor/ckeditor5-heading
package:
npm install --save @ckeditor/ckeditor5-heading
Then add the Title
plugin to your plugin list:
import Title from '@ckeditor/ckeditor5-heading/src/title';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Title, ... ]
} )
.then( ... )
.catch( ... );
Read more about installing plugins.
# HTML structure
When you call editor.getData()
, the document title will be represented as the following HTML:
<h1>Feasibility Study</h1>
# Model representation
In the CKEditor 5 data model the document title is represented as follows:
<title>
<title-content>
Feasibility Study
</title-content>
</title>
We recommend using the official CKEditor 5 inspector for development and debugging. It will give you tons of useful information about the state of the editor such as internal data structures, selection, commands, and many more.
# Contribute
The source code of the feature is available on GitHub in https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-heading.
Every day, we work hard to keep our documentation complete. Have you spotted an outdated information? Is something missing? Please report it via our issue tracker.