259 lines
7.4 KiB
TypeScript
259 lines
7.4 KiB
TypeScript
export const DEMO_CONTENT = {
|
|
type: 'doc',
|
|
content: [
|
|
{
|
|
type: 'heading',
|
|
attrs: { textAlign: 'center', indent: 0, lineHeight: null, level: 1 },
|
|
content: [{ type: 'text', text: 'Echo Editor' }],
|
|
},
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [
|
|
{ type: 'text', text: 'A modern WYSIWYG AI rich text editor based on ' },
|
|
{
|
|
type: 'text',
|
|
marks: [
|
|
{
|
|
type: 'link',
|
|
attrs: {
|
|
href: 'https://github.com/scrumpy/tiptap',
|
|
target: '_blank',
|
|
rel: 'noopener noreferrer nofollow',
|
|
class: 'link',
|
|
},
|
|
},
|
|
],
|
|
text: 'tiptap',
|
|
},
|
|
{ type: 'text', text: ' and ' },
|
|
{
|
|
type: 'text',
|
|
marks: [
|
|
{
|
|
type: 'link',
|
|
attrs: {
|
|
href: 'https://www.shadcn-vue.com/',
|
|
target: '_blank',
|
|
rel: 'noopener noreferrer nofollow',
|
|
class: 'link',
|
|
},
|
|
},
|
|
],
|
|
text: 'shadcn ui',
|
|
},
|
|
{ type: 'text', text: ' for Vue.js' },
|
|
],
|
|
},
|
|
{ type: 'paragraph', attrs: { textAlign: 'left', indent: 0, lineHeight: null } },
|
|
{ type: 'paragraph', attrs: { textAlign: 'left', indent: 0, lineHeight: null } },
|
|
{ type: 'paragraph', attrs: { textAlign: 'left', indent: 0, lineHeight: null } },
|
|
{
|
|
type: 'image',
|
|
attrs: {
|
|
textAlign: 'center',
|
|
src: 'https://picsum.photos/1920/1080.webp?t=1',
|
|
alt: null,
|
|
title: null,
|
|
width: 500,
|
|
},
|
|
},
|
|
{ type: 'paragraph', attrs: { textAlign: 'left', indent: 0, lineHeight: null } },
|
|
{ type: 'horizontalRule' },
|
|
{
|
|
type: 'heading',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null, level: 2 },
|
|
content: [{ type: 'text', text: 'Demo' }],
|
|
},
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [
|
|
{ type: 'text', text: '👉' },
|
|
{
|
|
type: 'text',
|
|
marks: [
|
|
{
|
|
type: 'link',
|
|
attrs: {
|
|
href: 'https://echo-editor.jzcloud.site/',
|
|
target: '_blank',
|
|
rel: 'noopener noreferrer nofollow',
|
|
class: 'link',
|
|
},
|
|
},
|
|
],
|
|
text: 'Demo',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'heading',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null, level: 2 },
|
|
content: [{ type: 'text', text: 'Features' }],
|
|
},
|
|
{
|
|
type: 'bulletList',
|
|
attrs: { listStyleType: 'disc' },
|
|
content: [
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [
|
|
{ type: 'text', text: 'Use ' },
|
|
{
|
|
type: 'text',
|
|
marks: [
|
|
{
|
|
type: 'link',
|
|
attrs: {
|
|
href: 'https://www.shadcn-vue.com/',
|
|
target: '_blank',
|
|
rel: 'noopener noreferrer nofollow',
|
|
class: 'link',
|
|
},
|
|
},
|
|
],
|
|
text: 'shadcn ui',
|
|
},
|
|
{ type: 'text', text: ' components' },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'Markdown support' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'TypeScript support' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'I18n support' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'Vue 3.x support' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'Slash Command' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'Dark Mode' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'Multi Column' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'AI Power' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'Embed' }],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'listItem',
|
|
content: [
|
|
{
|
|
type: 'paragraph',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null },
|
|
content: [{ type: 'text', text: 'TailwindCss' }],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'heading',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null, level: 2 },
|
|
content: [{ type: 'text', text: 'Installation' }],
|
|
},
|
|
{
|
|
type: 'codeBlock',
|
|
attrs: { language: 'bash' },
|
|
content: [
|
|
{ type: 'text', text: 'pnpm add echo-editor\n// or\nor yarn add echo-editor\n// or\nor npm i echo-editor -S' },
|
|
],
|
|
},
|
|
{
|
|
type: 'heading',
|
|
attrs: { textAlign: 'left', indent: 0, lineHeight: null, level: 3 },
|
|
content: [{ type: 'text', text: 'install plugin' }],
|
|
},
|
|
{
|
|
type: 'codeBlock',
|
|
attrs: { language: "typescript", },
|
|
content: [
|
|
{
|
|
type: 'text',
|
|
text: "import { createApp } from 'vue'\nimport App from './App.vue'\nimport EchoEditor from 'echo-editor'\nimport 'echo-editor/style.css'\nconst app = createApp(App)\napp.use(EchoEditor)\napp.mount('#app')",
|
|
},
|
|
],
|
|
},
|
|
{ type: 'paragraph', attrs: { textAlign: 'left', indent: 0, lineHeight: null } },
|
|
],
|
|
}
|