javascript - 如何在 react-quill 工具栏中实现自定义代码块按钮
问题描述
我正在尝试实现一个自定义代码块按钮以插入react-quill,但我不确定如何继续。我知道我需要为代码块实现一个处理程序(我将其命名为code-block
),然后添加一个类名为 `ql-code-block 的按钮,但是如何使编辑器使用 html 和 css 显示特定代码块的样式?
import React, { useState } from 'react';
import { useQuill } from 'react-quilljs';
import 'quill/dist/quill.snow.css'; // Add css for snow theme
export default () => {
const theme = 'snow';
const modules = {
toolbar: {
container: '#toolbar',
handlers: {
'code-block': function () {
console.log('Code-block'); <---- How to implement the handler here
},
},
},
clipboard: {
matchVisual: false,
},
};
const placeholder = 'Compose an epic...';
const formats = ['size', 'bold', 'script'];
const { quill, quillRef } = useQuill({
theme,
modules,
formats,
placeholder,
});
const [content, setContent] = useState('');
React.useEffect(() => {
if (quill) {
quill.on('text-change', () => {
setContent(quill.root.innerHTML);
});
}
}, [quill]);
const submitHandler = (e) => {};
return (
<div style={{ width: 500, height: 300 }}>
<div ref={quillRef} />
<div id='toolbar'>
<select className='ql-size'>
<option value='small' />
<option selected />
<option value='large' />
<option value='huge' />
</select>
<button className='ql-bold' />
<button className='ql-code-block' />
<button className='ql-script' value='sub' />
<button className='ql-script' value='super' />
</div>
<div id='editor' />
<form onSubmit={submitHandler}>
<button type='submit'>Submit</button>
</form>
</div>
);
};
解决方案
推荐阅读
- reactjs - 表内反应表
- python - 使用 Python 和 Paramiko 批处理 SFTP 命令
- altair - 在另存为 html 的 altair 图表中使用 width="container"
- python - Python中的正则表达式替换
- pandas - 熊猫应用功能无法解决
- python - 使用 Python/Pyspark 在 Salesforce 中查询具有 400 万条记录和 250 列的表
- c# - 手动优化 efcore 生成的 SQL
- facebook - check_batch_request_status 仅响应 5 个产品错误
- javascript - Thingsboard 仪表板自定义操作 NullInjectorError
- python - Python - 从方法回调到另一个类