diff --git a/docs/src/demos/Extensions/TextAlign/index.spec.js b/docs/src/demos/Extensions/TextAlign/index.spec.js new file mode 100644 index 00000000..a9d851de --- /dev/null +++ b/docs/src/demos/Extensions/TextAlign/index.spec.js @@ -0,0 +1,18 @@ +context('/api/extensions/text', () => { + before(() => { + cy.visit('/api/extensions/text') + }) + + beforeEach(() => { + cy.get('.ProseMirror').then(([{ editor }]) => { + editor.clearContent() + }) + }) + + it('text should be wrapped in a paragraph by default', () => { + cy.get('.ProseMirror') + .type('Example Text') + .find('p') + .should('contain', 'Example Text') + }) +}) diff --git a/docs/src/demos/Extensions/TextAlign/index.vue b/docs/src/demos/Extensions/TextAlign/index.vue new file mode 100644 index 00000000..5c204f49 --- /dev/null +++ b/docs/src/demos/Extensions/TextAlign/index.vue @@ -0,0 +1,54 @@ + + + diff --git a/docs/src/docPages/api/extensions/text-align.md b/docs/src/docPages/api/extensions/text-align.md new file mode 100644 index 00000000..fdb3680a --- /dev/null +++ b/docs/src/docPages/api/extensions/text-align.md @@ -0,0 +1,16 @@ +# Text Align + +## Installation +```bash +# With npm +npm install @tiptap/extension-text-align + +# Or: With Yarn +yarn add @tiptap/extension-text-align +``` + +## Source code +[packages/extension-text-align/](https://github.com/ueberdosis/tiptap-next/blob/main/packages/extension-text-align/) + +## Usage + diff --git a/docs/src/links.yaml b/docs/src/links.yaml index 25ca4886..ce4a8bc9 100644 --- a/docs/src/links.yaml +++ b/docs/src/links.yaml @@ -161,6 +161,8 @@ # draft: true - title: Text link: /api/extensions/text + - title: Text Align + link: /api/extensions/text-align # - title: TodoItem # link: /api/extensions/todo-item # draft: true diff --git a/packages/extension-paragraph/index.ts b/packages/extension-paragraph/index.ts index 51a24d50..59706d64 100644 --- a/packages/extension-paragraph/index.ts +++ b/packages/extension-paragraph/index.ts @@ -8,36 +8,6 @@ const Paragraph = createNode({ content: 'inline*', - // addGlobalAttributes() { - // return [ - // { - // types: ['paragraph'], - // attributes: { - // align: { - // default: 'right', - // renderHTML: attributes => ({ - // class: 'foo', - // style: `text-align: ${attributes.align}`, - // }), - // }, - // }, - // }, - // ] - // }, - - // addAttributes() { - // return { - // id: { - // default: '123', - // rendered: true, - // renderHTML: attributes => ({ - // class: 'bar', - // style: 'color: red', - // }), - // }, - // } - // }, - parseHTML() { return [ { tag: 'p' }, diff --git a/packages/extension-text-align/index.ts b/packages/extension-text-align/index.ts new file mode 100644 index 00000000..c99bf49a --- /dev/null +++ b/packages/extension-text-align/index.ts @@ -0,0 +1,27 @@ +import { createExtension } from '@tiptap/core' + +const TextAlign = createExtension({ + addGlobalAttributes() { + return [ + { + types: ['paragraph'], + attributes: { + align: { + default: 'left', + renderHTML: attributes => ({ + style: `text-align: ${attributes.align}`, + }), + }, + }, + }, + ] + }, +}) + +export default TextAlign + +declare module '@tiptap/core/src/Editor' { + interface AllExtensions { + TextAlign: typeof TextAlign, + } +} diff --git a/packages/extension-text-align/package.json b/packages/extension-text-align/package.json new file mode 100644 index 00000000..2914b5c4 --- /dev/null +++ b/packages/extension-text-align/package.json @@ -0,0 +1,17 @@ +{ + "name": "@tiptap/extension-text-align", + "version": "1.0.0", + "source": "index.ts", + "main": "dist/tiptap-extension-text-align.js", + "umd:main": "dist/tiptap-extension-text-align.umd.js", + "module": "dist/tiptap-extension-text-align.mjs", + "unpkg": "dist/tiptap-extension-text-align.js", + "jsdelivr": "dist/tiptap-extension-text-align.js", + "files": [ + "src", + "dist" + ], + "peerDependencies": { + "@tiptap/core": "2.x" + } +}