Extension architecture
TipTap extensions follow a modular architecture:- Commands — Actions that modify the editor state
- Input rules — Shortcuts that trigger on typing
- Keyboard shortcuts — Hotkeys for commands
- Node views — Custom rendering for content
- Storage — Extension-specific data
Core TipTap extensions
Fylepad uses these built-in TipTap extensions:Document structure
- @tiptap/extension-document — Root document node
- @tiptap/extension-paragraph — Paragraph blocks
- @tiptap/extension-heading — Six heading levels
- @tiptap/extension-text — Text nodes
Text formatting
- @tiptap/extension-bold — Bold text
- @tiptap/extension-italic — Italic text
- @tiptap/extension-underline — Underline text
- @tiptap/extension-strike — Strikethrough
- @tiptap/extension-code — Inline code
- @tiptap/extension-highlight — Text highlighting
- @tiptap/extension-subscript — Subscript text
- @tiptap/extension-superscript — Superscript text
Styling
- @tiptap/extension-color — Text color customization
- @tiptap/extension-text-style — Text styling framework
- @tiptap/extension-font-family — Font selection
- @tiptap/extension-text-align — Text alignment
Lists and tasks
- @tiptap/extension-bullet-list — Bullet lists
- @tiptap/extension-ordered-list — Numbered lists
- @tiptap/extension-list-item — List item nodes
- @tiptap/extension-list-keymap — List keyboard shortcuts
- @tiptap/extension-task-list — Task lists
- @tiptap/extension-task-item — Task items with checkboxes
Rich content
- @tiptap/extension-link — Hyperlinks
- @tiptap/extension-image — Image embeds
- @tiptap/extension-code-block-lowlight — Syntax highlighting
- @tiptap/extension-blockquote — Blockquotes
- @tiptap/extension-horizontal-rule — Horizontal rules
Tables
- @tiptap/extension-table — Table structure
- @tiptap/extension-table-row — Table rows
- @tiptap/extension-table-cell — Table cells
- @tiptap/extension-table-header — Header cells
Advanced features
- @tiptap/extension-details — Collapsible details/summary
- @tiptap/extension-mathematics — KaTeX math rendering
- @tiptap/extension-emoji — Emoji support
- @tiptap/extension-typography — Smart typography replacements
Editor utilities
- @tiptap/extension-placeholder — Placeholder text
- @tiptap/extension-character-count — Character/word counting
- @tiptap/extension-drag-handle — Drag and drop blocks
- @tiptap/extension-file-handler — File paste/drop handling
Menus
- @tiptap/extension-bubble-menu — Selection-based menu
- @tiptap/extension-floating-menu — Empty line menu
Custom Fylepad extensions
Fylepad implements several custom extensions:ColorHighlighter
Automatic color preview for hex codes:- Detects hex color codes in text
- Shows color preview inline
- Updates in real-time as you type
ImageResize
Drag-to-resize images:- Corner resize handles
- Maintains aspect ratio
- Live preview while resizing
SmilieReplacer
Auto-replace text emoticons with emoji:Hyperlink
Enhanced link handling:- Auto-hyperlink detection
- Click to edit links
- Paste URL handling
TabLinkSuggestion
Inter-tab linking system:- Type
@to see tab suggestions - Creates clickable links to other tabs
- Auto-updates when tabs are renamed
Helper extensions
Fylepad includes helper extensions inextensions/helpers/:
autoHyperlink
Automatically converts URLs to links:editHyperlink
Click-to-edit link functionality:pasteHandler
Custom paste behavior:clickHandler
Custom click behaviors:tippyHelper
Tooltip integration:Markdown extension
The Markdown extension provides bidirectional conversion:Menu extensions
Fylepad includes custom menu systems:Block menu
Insert blocks with/ command:
Float menu
Shows on empty lines:Extension registration
Extensions are registered in the editor configuration:Next steps
Custom nodes
Learn about custom node implementations
Markdown parser
Understand the Markdown parsing system