From 2d7077bf6d50161d6e2b1868bac140dea124ee12 Mon Sep 17 00:00:00 2001 From: xlsea Date: Tue, 13 May 2025 20:23:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20tinymce=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/tinymce/package.json | 18 +++ packages/tinymce/src/index.ts | 1 + packages/tinymce/src/tinymce.ts | 11 ++ packages/tinymce/src/tinymce.vue | 233 +++++++++++++++++++++++++++++++ packages/tinymce/tsconfig.json | 20 +++ pnpm-lock.yaml | 14 +- 6 files changed, 295 insertions(+), 2 deletions(-) create mode 100644 packages/tinymce/package.json create mode 100644 packages/tinymce/src/index.ts create mode 100644 packages/tinymce/src/tinymce.ts create mode 100644 packages/tinymce/src/tinymce.vue create mode 100644 packages/tinymce/tsconfig.json diff --git a/packages/tinymce/package.json b/packages/tinymce/package.json new file mode 100644 index 00000000..b4c17cc8 --- /dev/null +++ b/packages/tinymce/package.json @@ -0,0 +1,18 @@ +{ + "name": "@sa/tinymce", + "version": "1.3.13", + "exports": { + ".": "./src/index.ts" + }, + "typesVersions": { + "*": { + "*": ["./src/*"] + } + }, + "dependencies": { + "tinymce": "7.8.0" + }, + "devDependencies": { + "@tinymce/tinymce-vue": "6.1.0" + } +} diff --git a/packages/tinymce/src/index.ts b/packages/tinymce/src/index.ts new file mode 100644 index 00000000..faec3500 --- /dev/null +++ b/packages/tinymce/src/index.ts @@ -0,0 +1 @@ +export { default as Tinymce } from './tinymce.vue'; diff --git a/packages/tinymce/src/tinymce.ts b/packages/tinymce/src/tinymce.ts new file mode 100644 index 00000000..eb3964a6 --- /dev/null +++ b/packages/tinymce/src/tinymce.ts @@ -0,0 +1,11 @@ +// Any plugins you want to setting has to be imported +// Detail plugins list see https://www.tinymce.com/docs/plugins/ +// Custom builds see https://www.tinymce.com/download/custom-builds/ +// colorpicker/contextmenu/textcolor plugin is now built in to the core editor, please remove it from your editor configuration + +// quickbars 快捷栏 +export const plugins = + 'preview importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help charmap emoticons accordion'; + +export const toolbar = + 'undo redo | accordion accordionremove | blocks fontfamily fontsize | bold italic underline strikethrough | align numlist bullist | link image | table media | lineheight outdent indent| forecolor backcolor removeformat | charmap emoticons | code fullscreen preview | save print | pagebreak anchor codesample | ltr rtl'; diff --git a/packages/tinymce/src/tinymce.vue b/packages/tinymce/src/tinymce.vue new file mode 100644 index 00000000..33e4f340 --- /dev/null +++ b/packages/tinymce/src/tinymce.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/packages/tinymce/tsconfig.json b/packages/tinymce/tsconfig.json new file mode 100644 index 00000000..5823ed54 --- /dev/null +++ b/packages/tinymce/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ESNext", + "jsx": "preserve", + "lib": ["DOM", "ESNext"], + "baseUrl": ".", + "module": "ESNext", + "moduleResolution": "node", + "resolveJsonModule": true, + "types": ["node"], + "strict": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf5527c2..ad9ff947 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,7 +30,7 @@ importers: specifier: workspace:* version: link:packages/utils '@tinymce/tinymce-vue': - specifier: ^6.1.0 + specifier: 6.1.0 version: 6.1.0(tinymce@7.8.0)(vue@3.5.13(typescript@5.8.2)) '@vueuse/core': specifier: 13.0.0 @@ -72,7 +72,7 @@ importers: specifier: 3.0.2 version: 3.0.2 tinymce: - specifier: ^7.8.0 + specifier: 7.8.0 version: 7.8.0 vue: specifier: 3.5.13 @@ -291,6 +291,16 @@ importers: specifier: 6.0.1 version: 6.0.1 + packages/tinymce: + dependencies: + tinymce: + specifier: 7.8.0 + version: 7.8.0 + devDependencies: + '@tinymce/tinymce-vue': + specifier: 6.1.0 + version: 6.1.0(tinymce@7.8.0)(vue@3.5.13(typescript@5.8.2)) + packages/uno-preset: {} packages/utils: