跳到主要内容

代码块

该扩展会使编辑器识别<pre> <code>标签。 在新行的开头输入``` (三个反引号和一个空格),∼∼∼(三个波浪线一个空格),会添加一个代码块。 可以指定语言,比如```javaScript

提示

CodeBlock 扩展没有语法高亮的样式,也没有内置语法突出显示。如果您正在寻找具有语法高亮显示的代码块,请尝试使用CodeBlockLowlight扩展。

安装

npm install @tiptap/extension-code-block

用法示例

🌰 举个例子
exampleImg
collapsePng
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/LinuxmacOS
toggleCodeBlockControl Shift CCmd Shift C

源码

github