import React from 'react' import { useEditor, EditorContent } from '@tiptap/react' import Document from '@tiptap/extension-document' import Paragraph from '@tiptap/extension-paragraph' import Text from '@tiptap/extension-text' import CodeBlockLowlight from '@tiptap/extension-code-block-lowlight' // load all highlight.js languages import lowlight from 'lowlight' // load specific languages only // import lowlight from 'lowlight/lib/core' // import javascript from 'highlight.js/lib/languages/javascript' // lowlight.registerLanguage('javascript', javascript) import './styles.scss' export default () => { const editor = useEditor({ extensions: [ Document, Paragraph, Text, CodeBlockLowlight.configure({ lowlight, }), ], content: `
That’s a boring paragraph followed by a fenced code block:
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);
}
Press Command/Ctrl + Enter to leave the fenced code block and continue typing in boring paragraphs.
`, }) if (!editor) { return null } return ( <>