ФреймворкJavaScript
Формула: LaTeX в строке
Отрисовывает строчные формулы (LaTeX) с помощью KaTeX. Включается сочетанием Cmd/Ctrl+Shift+E. Оборачивает выделенный текст или формулу, введённую в поле поповера, в <span data-latex="...">.
Атрибут data-latex и есть формула. Разметка KaTeX выводится из него, удаляется при сохранении и создаётся заново при каждой отрисовке блока (загрузка, вставка, отмена).
Поверхности только для чтения, которые никогда не монтируют редактор (blocksToHtml и <BlokView>), показывают исходный текст. Передайте запись inlineRenderers, чтобы формулы отрисовывались и там.
Импорт
TypeScript
import { Equation } from '@bloklabs/core/tools';Формат данных
TypeScript
// An embed in the block's text field. It holds only the formula, so nothing
// derived from KaTeX's rendering is saved. Plain-text previews and search
// indexes read the formula.
// { "embed": { "equation": { "expression": "E = mc^2" } } }JSON
// Render the math on a DOM-free view surface by plugging KaTeX in:
// blocksToHtml(data, {
// inlineRenderers: {
// span: ({ attrs }) => attrs['data-latex'] === undefined
// ? undefined
// : katex.renderToString(attrs['data-latex'], { throwOnError: false }),
// },
// })
{
"type": "paragraph",
"data": {
"text": [{ "text": "Einstein wrote " }, { "embed": { "equation": { "expression": "E = mc^2" } } }]
}
}Пример использования
TypeScript
import { Blok } from '@bloklabs/core';
import { Equation, Paragraph } from '@bloklabs/core/tools';
const editor = new Blok({
holder: 'editor',
tools: {
// Paragraph is the default block and is not bundled with the core —
// without it the editor starts with an "unsupported block" stub.
paragraph: Paragraph,
equation: Equation,
},
});