diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index f8925bc..9a9a12e 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -41,12 +41,12 @@ "state": { "type": "markdown", "state": { - "file": "PERSONAL PROJECTS/PS1 DOCS/PS1 Gamepad.md", + "file": "WORK & PROJECTS/Mol/Code Chunks/TipTap Plugin.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "PS1 Gamepad" + "title": "TipTap Plugin" } } ], @@ -207,6 +207,8 @@ }, "active": "dd912cc876184c4f", "lastOpenFiles": [ + "PERSONAL PROJECTS/PS1 DOCS/PS1 Gamepad.md", + "WORK & PROJECTS/Mol/Code Chunks/TipTap Plugin.md", "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_800453e0 SystemEventManager.md", "PERSONAL PROJECTS/P2EP/pseudoCode/FUN_80015674 Update Entity Stats.md", "PERSONAL PROJECTS/P2EP/pseudoCode/MakeSmallChar.md", @@ -216,7 +218,6 @@ "PERSONAL PROJECTS/P2EP/pseudoCode", "PERSONAL PROJECTS/PS1 DOCS/Untitled", "PERSONAL PROJECTS/PS1 DOCS/fade calculation.md", - "PERSONAL PROJECTS/PS1 DOCS/PS1 Gamepad.md", "PERSONAL PROJECTS/PS1 DOCS/PS1 Gpu-DMA.md", "PERSONAL PROJECTS/PS1 DOCS/PS1 Ordering table.md", "PERSONAL PROJECTS/PS1 DOCS/PS1 DMA.md", @@ -239,7 +240,6 @@ "WORK & PROJECTS/Mol/Планы и диаграммы/Разработка - ЭПИКИ.md", "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Таблицы нумератора и документов.canvas", "WORK & PROJECTS/Mol/Планы и диаграммы/Схема связей юрлиц и адресов.canvas", - "WORK & PROJECTS/Mol/Разработка - ЭПИКИ.md", "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Редактор_форм/Архитектура редактора и генератора (Alfa + Mol).canvas", "WORK & PROJECTS/Mol/Планы и диаграммы/Alfa Cloud/Alfa cloud prod.canvas", "WORK & PROJECTS/Mol/Планы и диаграммы/00001_Быстрый старт/Быстрый старт.canvas", diff --git a/WORK & PROJECTS/Mol/Code Chunks/TipTap Plugin.md b/WORK & PROJECTS/Mol/Code Chunks/TipTap Plugin.md new file mode 100644 index 0000000..77bbccc --- /dev/null +++ b/WORK & PROJECTS/Mol/Code Chunks/TipTap Plugin.md @@ -0,0 +1,183 @@ +Хорошо! Давайте создадим плагин для **Tiptap** во **Vue 3 (Composition API)**, который добавляет **колонтитул (footer)** как отдельный узел (`Node`), сохраняемый и загружаемый вместе с документом. + +--- + +## **1. Создаём плагин для колонтитула (`FooterNode`)** +Сначала опишем сам узел (`Node`), который будет представлять колонтитул. + +### **`FooterExtension.ts`** +```typescript +import { Node } from '@tiptap/core'; + +export const FooterExtension = Node.create({ + name: 'footer', // Уникальное имя узла + group: 'block', // Группа (block, inline и т. д.) + content: 'inline*', // Разрешённый контент внутри (текст, ссылки и т. п.) + + // Парсинг HTML → ProseMirror-узел + parseHTML() { + return [ + { + tag: 'footer', // Будет парсить `