/
githubmirror
/
marktext
Обзор
Документация
Войти
/
githubmirror
/
marktext
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
packages/muya/src/block/extra/math/index.ts
66 строк
2 KB
Ran Luo
feat(muya): migrate TS rewrite to packages/muya alongside legacy muyajs (#4314)
29 май 2026, 15:35
Не верифицирован
29 май 2026, 15:35
0d86641
Код
Авторство
О чём код?
import type { Muya } from '../../../muya'; import type { IMathBlockState, IMathMeta } from '../../../state/types'; import type { TBlockPath } from '../../types'; import Parent from '../../base/parent'; import { ScrollPage } from '../../scrollPage'; class MathBlock extends Parent { public meta: IMathMeta; static override blockName = 'math-block'; static create(muya: Muya, state: IMathBlockState) { const mathBlock = new MathBlock(muya, state); const mathPreview = ScrollPage.loadBlock('math-preview').create( muya, state, ); const mathContainer = ScrollPage.loadBlock('math-container').create( muya, state, ); mathBlock.appendAttachment(mathPreview); mathBlock.append(mathContainer); return mathBlock; } override get path() { const { path: pPath } = this.parent!; const offset = this.parent!.offset(this); return [...pPath, offset]; } constructor(muya: Muya, { meta }: IMathBlockState) { super(muya); this.tagName = 'figure'; this.meta = meta; this.classList = ['mu-math-block']; this.createDomNode(); } queryBlock(path: TBlockPath) { return path.length && path[0] === 'text' ? this.firstContentInDescendant() : this; } override getState(): IMathBlockState { const { meta } = this; const text = this.firstContentInDescendant()?.text; if (text == null) throw new Error('text is null when getState in math block.'); return { name: 'math-block', text, meta, }; } } export default MathBlock;