代码块
该扩展会使编辑器识别<pre>
<code>
标签。
在新行的开头输入```
(三个反引号和一个空格),∼∼∼
(三个波浪线一个空格),会添加一个代码块。
可以指定语言,比如```javaScript
提示
CodeBlock 扩展没有语法高亮的样式,也没有内置语法突出显示。如果您正在寻找具有语法高亮显示的代码块,请尝试使用CodeBlockLowlight扩展。
安装
npm install @tiptap/extension-code-block
用法示例
🌰 举个例子

import CodeBlock from '@tiptap/extension-code-block'
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, CodeBlock],
content: `
<p>
这个没用的段落后是一个封闭的代码块
</p>
<pre>
<code>
for (var i=1; i <= 20; i++)
{
if (i % 15 == 0)
console.log("FizzBuzz");
else if (i % 3 == 0)
console.log("Fizz");
else if (i % 5 == 0)
console.log("Buzz");
else
console.log(i);
}
</code>
</pre>
<p>
按Command/Ctrl+Enter推出代码块,继续这个没用的段落。
</p>
`,
})
if (!editor) {
return null
}
return (
<>
<button
onClick={() => editor.chain().focus().toggleCodeBlock().run()}
className={editor.isActive('codeBlock') ? 'is-active' : ''}
>
切换
</button>
<button
onClick={() => editor.chain().focus().setCodeBlock().run()}
disabled={editor.isActive('codeBlock')}
>
设置
</button>
<EditorContent editor={editor} />
</>
)
}
API
方法 | 说明 | 使用方法 |
---|---|---|
setCodeBlock() | 设置 | editor.commands.setCodeBlock() |
toggleCodeBlock() | 切换 | editor.commands.toggleCodeBlock() |
键盘快捷键
命令 | Windows/Linux | macOS |
---|---|---|
toggleCodeBlock | Control Shift C | Cmd Shift C |