mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-12-04 19:59:02 +08:00
95 lines
2.6 KiB
Markdown
95 lines
2.6 KiB
Markdown
---
|
||
description: The least code the better, but sometimes you just need multiple lines.
|
||
icon: terminal-box-line
|
||
---
|
||
|
||
# CodeBlock
|
||
[![Version](https://img.shields.io/npm/v/@tiptap/extension-code-block.svg?label=version)](https://www.npmjs.com/package/@tiptap/extension-code-block)
|
||
[![Downloads](https://img.shields.io/npm/dm/@tiptap/extension-code-block.svg)](https://npmcharts.com/compare/@tiptap/extension-code-block?minimal=true)
|
||
|
||
With the CodeBlock extension you can add fenced code blocks to your documents. It’ll wrap the code in `<pre>` and `<code>` HTML tags.
|
||
|
||
Type <code>``` </code> (three backticks and a space) or <code>∼∼∼ </code> (three tildes and a space) and a code block is instantly added for you. You can even specify the language, try writing <code>```css </code>. That should add a `language-css` class to the `<code>`-tag.
|
||
|
||
::: warning No syntax highlighting
|
||
The CodeBlock extension doesn’t come with styling and has no syntax highlighting built-in. Try the [CodeBlockLowlight](/api/nodes/code-block-lowlight) extension if you’re looking for code blocks with syntax highlighting.
|
||
:::
|
||
|
||
## Installation
|
||
```bash
|
||
npm install @tiptap/extension-code-block
|
||
```
|
||
|
||
## Settings
|
||
|
||
### languageClassPrefix
|
||
Adds a prefix to language classes that are applied to code tags.
|
||
|
||
Default: `'language-'`
|
||
|
||
```js
|
||
CodeBlock.configure({
|
||
languageClassPrefix: 'language-',
|
||
})
|
||
```
|
||
|
||
### exitOnTripleEnter
|
||
Define whether the node should be exited on triple enter.
|
||
|
||
Default: `true`
|
||
|
||
```js
|
||
CodeBlock.configure({
|
||
exitOnTripleEnter: false,
|
||
})
|
||
```
|
||
|
||
### exitOnArrowDown
|
||
Define whether the node should be exited on arrow down if there is no node after it.
|
||
|
||
Default: `true`
|
||
|
||
```js
|
||
CodeBlock.configure({
|
||
exitOnArrowDown: false,
|
||
})
|
||
```
|
||
|
||
### HTMLAttributes
|
||
Custom HTML attributes that should be added to the rendered HTML tag.
|
||
|
||
```js
|
||
CodeBlock.configure({
|
||
HTMLAttributes: {
|
||
class: 'my-custom-class',
|
||
},
|
||
})
|
||
```
|
||
|
||
## Commands
|
||
|
||
### setCodeBlock()
|
||
Wrap content in a code block.
|
||
|
||
```js
|
||
editor.commands.setCodeBlock()
|
||
```
|
||
|
||
### toggleCodeBlock()
|
||
Toggle the code block.
|
||
|
||
```js
|
||
editor.commands.toggleCodeBlock()
|
||
```
|
||
|
||
## Keyboard shortcuts
|
||
| Command | Windows/Linux | macOS |
|
||
| --------------- | ----------------------------- | ------------------------- |
|
||
| toggleCodeBlock | `Control` `Alt` `C` | `Cmd` `Alt` `C` |
|
||
|
||
## Source code
|
||
[packages/extension-code-block/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-code-block/)
|
||
|
||
## Usage
|
||
https://embed.tiptap.dev/preview/Nodes/CodeBlock
|