The Code extensions enables you to use the <code> HTML tag in the editor. If you paste in text with <code> tags it will rendered accordingly.
Type something with back-ticks around and it will magically transform to inline code while you type.
Install
npm install @tiptap/extension-code
Settings
HTMLAttributes
Custom HTML attributes that should be added to the rendered HTML tag.
Code.configure({
HTMLAttributes: {
class: 'my-custom-class',
},
})
Commands
setCode()
Mark text as inline code.
editor.commands.setCode()
toggleCode()
Toggle inline code mark.
editor.commands.toggleCode()
unsetCode()
Remove inline code mark.
editor.commands.unsetCode()
Keyboard shortcuts
| Command | Windows/Linux | macOS |
|---|---|---|
| toggleCode() | Control + E |
Cmd + E |
Source code
This isn’t code.
This is code.
import './styles.scss'
import Code from '@tiptap/extension-code'
import Document from '@tiptap/extension-document'
import Paragraph from '@tiptap/extension-paragraph'
import Text from '@tiptap/extension-text'
import { EditorContent, useEditor } from '@tiptap/react'
import React from 'react'
export default () => {
const editor = useEditor({
extensions: [Document, Paragraph, Text, Code],
content: `
<p>This isn’t code.</p>
<p><code>This is code.</code></p>
`,
})
if (!editor) {
return null
}
return (
<>
<div className="control-group">
<div className="button-group">
<button
onClick={() => editor.chain().focus().toggleCode().run()}
className={editor.isActive('code') ? 'is-active' : ''}
>
Toggle code
</button>
<button onClick={() => editor.chain().focus().setCode().run()} disabled={editor.isActive('code')}>
Set code
</button>
<button onClick={() => editor.chain().focus().unsetCode().run()} disabled={!editor.isActive('code')}>
Unset code
</button>
</div>
</div>
<EditorContent editor={editor} />
</>
)
}