Compare commits

..

No commits in common. "0374fce058e5820d8bc53ba347e2971e3035feba" and "335ae262055214714b09634b31359a1e35a62ac8" have entirely different histories.

6 changed files with 9142 additions and 11767 deletions

View File

@ -3,8 +3,18 @@
## 声明 ## 声明
1. 请先阅读[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md) 1. 请先阅读[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)
2. 如果希望参与独立编辑器开发,可以到[这个仓库](https://github.com/fantasticit/sailkit)参与 2. 为什么停止开发了?
3. 由于服务器成本和免费的 SSL 证书也没了,网站不定期会挂,敬请谅解 1. 对于文档类产品,无法做出独立的 library 或 framework 给不同需求的团队(或个人),这使得我不确定这件事的意义
2. 对于独立编辑器开发,无论最终以何种形态存在,其表现还是为应用,而非框架(或依赖),能做到的也许只是一种示范
3. 作者本身专攻前端,对高性能、扩展性良好的后端架构心有余而力不足,同时也缺乏专业的运维知识(欢迎赐教)
4. 对于 ProseMirror 和 yjs 本身还有许多玩法,但是精力不足
1. 类似金山文档的表格体验
2. 类似飞书文档的拖拽到节点前后生成分栏
3. markdown 、txt、office 文件的导入导出office 方面可能需要后端协助java poi 是一个可行的选择)
4. 从 office 套件粘贴到编辑器,保留格式和图片(前端可独立完成,思路可参考 TinyCME 的 PowerPaste 和 RTF
5. 基于 yjs 的版本备份和恢复(部分同学提出增量保存 diff个人还是建议全量 snapshot
6. 基于 yjs 的协同开发(比如结合 luckysheet
3. 如果希望参与编辑器开发,可以到[这个仓库](https://github.com/fantasticit/sailkit)参与。
## 简介 ## 简介

View File

@ -1,16 +1,9 @@
const semi = require('@douyinfe/semi-next').default({}); const semi = require('@douyinfe/semi-next').default({});
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const withPWA = require('next-pwa');
const { getConfig } = require('@think/config'); const { getConfig } = require('@think/config');
const config = getConfig(); const config = getConfig();
const pwaRuntimeCaching = require('./pwa-cache'); const pwaRuntimeCaching = require('./pwa-cache');
const withPWA = require('next-pwa')({
disable: process.env.NODE_ENV !== 'production',
dest: 'public',
sw: 'service-worker.js',
runtimeCaching: pwaRuntimeCaching,
});
/** @type {import('next').NextConfig} */ /** @type {import('next').NextConfig} */
const nextConfig = semi({ const nextConfig = semi({
@ -40,6 +33,12 @@ const nextConfig = semi({
typescript: { typescript: {
ignoreBuildErrors: true, ignoreBuildErrors: true,
}, },
pwa: {
disable: process.env.NODE_ENV !== 'production',
dest: 'public',
sw: 'service-worker.js',
runtimeCaching: pwaRuntimeCaching,
},
}); });
module.exports = withPWA(nextConfig); module.exports = withPWA(nextConfig);

View File

@ -79,7 +79,7 @@
"markdown-it-sub": "^1.0.0", "markdown-it-sub": "^1.0.0",
"markdown-it-sup": "^1.0.0", "markdown-it-sup": "^1.0.0",
"next": "12.1.0", "next": "12.1.0",
"next-pwa": "^5.6.0", "next-pwa": "^5.5.2",
"pdfjs-dist": "3.1.81", "pdfjs-dist": "3.1.81",
"prosemirror-codemark": "^0.3.6", "prosemirror-codemark": "^0.3.6",
"prosemirror-commands": "^1.3.0", "prosemirror-commands": "^1.3.0",
@ -128,6 +128,6 @@
"eslint-plugin-simple-import-sort": "^7.0.0", "eslint-plugin-simple-import-sort": "^7.0.0",
"fs-extra": "^10.0.0", "fs-extra": "^10.0.0",
"tsconfig-paths-webpack-plugin": "^3.5.2", "tsconfig-paths-webpack-plugin": "^3.5.2",
"typescript": "^4.8.4" "typescript": "4.5.5"
} }
} }

View File

@ -72,6 +72,7 @@
"@nestjs/schematics": "^8.0.0", "@nestjs/schematics": "^8.0.0",
"@nestjs/testing": "^8.0.0", "@nestjs/testing": "^8.0.0",
"@types/cookie-parser": "^1.4.3", "@types/cookie-parser": "^1.4.3",
"@types/cron": "^2.0.0",
"@types/express": "^4.17.13", "@types/express": "^4.17.13",
"@types/jest": "27.0.2", "@types/jest": "27.0.2",
"@types/lodash": "^4.14.182", "@types/lodash": "^4.14.182",
@ -92,7 +93,7 @@
"ts-loader": "^9.2.3", "ts-loader": "^9.2.3",
"ts-node": "^10.0.0", "ts-node": "^10.0.0",
"tsconfig-paths": "^3.10.1", "tsconfig-paths": "^3.10.1",
"typescript": "^4.8.4" "typescript": "^4.3.5"
}, },
"jest": { "jest": {
"moduleFileExtensions": [ "moduleFileExtensions": [

View File

@ -11,7 +11,6 @@
"outDir": "./dist", "outDir": "./dist",
"baseUrl": "./", "baseUrl": "./",
"incremental": true, "incremental": true,
"skipLibCheck": true,
"paths": { "paths": {
"@helpers/*": ["src/helpers/*"], "@helpers/*": ["src/helpers/*"],
"@pipes/*": ["src/pipes/*"], "@pipes/*": ["src/pipes/*"],

File diff suppressed because it is too large Load Diff