UNPKG

@churchapps/apphelper-markdown

Version:

ChurchApps markdown/lexical editor components

123 lines (94 loc) 3.11 kB
# @churchapps/apphelper-markdown A React/Next.js markdown editor component library built on Lexical for ChurchApps - providing rich text editing capabilities with markdown support. ## Installation ```bash npm install @churchapps/apphelper-markdown ``` ## Dependencies This package depends on: - `@churchapps/apphelper` - For core UI components (Loading, Locale, etc.) - `@churchapps/helpers` - For API helpers and core utilities ## Components ### MarkdownEditor A full-featured markdown editor with toolbar, plugins, and live preview. ```tsx import { MarkdownEditor } from '@churchapps/apphelper-markdown'; function MyComponent() { const [value, setValue] = useState(''); return ( <MarkdownEditor value={value} onChange={setValue} placeholder="Enter your markdown here..." textAlign="left" /> ); } ``` ### MarkdownPreview A component for rendering markdown content as HTML. ```tsx import { MarkdownPreview } from '@churchapps/apphelper-markdown'; function MyComponent() { return ( <MarkdownPreview value="# Hello World\n\nThis is **markdown**!" /> ); } ``` ### MarkdownPreviewLight A lightweight version of the markdown preview component. ```tsx import { MarkdownPreviewLight } from '@churchapps/apphelper-markdown'; function MyComponent() { return ( <MarkdownPreviewLight value="# Hello World\n\nThis is **markdown**!" /> ); } ``` ### MarkdownModal A modal dialog for editing markdown content. ```tsx import { MarkdownModal } from '@churchapps/apphelper-markdown'; function MyComponent() { const [showModal, setShowModal] = useState(false); const [value, setValue] = useState(''); return ( <> <button onClick={() => setShowModal(true)}>Edit Markdown</button> {showModal && ( <MarkdownModal value={value} onChange={setValue} hideModal={() => setShowModal(false)} /> )} </> ); } ``` ## Features - **Lexical-based editor** - Modern, extensible rich text framework - **Markdown support** - Full markdown syntax support with live preview - **Toolbar plugins** - Formatting tools, link insertion, emoji picker - **Custom transformers** - Convert between markdown and rich text - **Material-UI integration** - Consistent styling with ChurchApps design system - **Lazy loading** - Editor components load on demand for better performance - **Emoji support** - Built-in emoji picker with image assets - **Link editing** - Custom link node with floating editor - **Responsive design** - Works on desktop and mobile ## Asset Management The package includes: - **CSS files** - Editor styling - **SVG icons** - Toolbar button icons - **Emoji images** - PNG emoji assets - **Markdown transformers** - Custom lexical transformers ## Build ```bash npm run build ``` This will: 1. Compile TypeScript to JavaScript 2. Generate type definitions 3. Copy CSS, icons, and emoji assets to dist folder ## License MIT - See LICENSE file for details