{"id":26875111,"url":"https://github.com/jaceyi/chat","last_synced_at":"2025-10-18T17:13:18.716Z","repository":{"id":54982948,"uuid":"328638957","full_name":"jaceyi/chat","owner":"jaceyi","description":"在线聊天室，基于 Draft-js 实现的富文本输入框，扩展性还不错，如果有需要自己开发富文本框的同学，可以看看源码。后台服务使用 Firebase 管理。","archived":false,"fork":false,"pushed_at":"2024-04-24T06:10:14.000Z","size":972,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T10:41:01.644Z","etag":null,"topics":["chat","draft-js","editor","react","react-editor"],"latest_commit_sha":null,"homepage":"https://chat.jaceyi.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaceyi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-11T11:15:27.000Z","updated_at":"2024-08-21T14:41:33.000Z","dependencies_parsed_at":"2024-01-31T10:28:20.566Z","dependency_job_id":"2de552d8-9351-4739-8e87-c13db3da48b6","html_url":"https://github.com/jaceyi/chat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaceyi%2Fchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaceyi%2Fchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaceyi%2Fchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaceyi%2Fchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaceyi","download_url":"https://codeload.github.com/jaceyi/chat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252889157,"owners_count":21820125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","draft-js","editor","react","react-editor"],"created_at":"2025-03-31T10:39:11.896Z","updated_at":"2025-10-18T17:13:18.413Z","avatar_url":"https://github.com/jaceyi.png","language":"TypeScript","readme":"# Chat\n\n[在线地址](https://chat.jaceyi.com/)\n\n基于 Draft-js 实现的富文本输入框，如果有需要自己开发富文本框的同学，可以看看源码，个人感觉还是值得借鉴的。一些关键地方有注释，有不懂的地方可以提 Issue 问我。\n\n\u003e 理论上支持所有富文本框可以支持的内容，扩展性强。现在对于行内元素、块级元素、行内样式、事件队列等底层共用逻辑全都支持上了，虽然表面上功能挺少，如果要加一个标题、代码块、视频、表格乃至多人共同编辑都能很快实现。\n\n## 开发\n\n```shell\nyarn\nyarn start\nyarn build\n```\n\n本地预览，先参考 [Firebase CLI](https://firebase.google.com/docs/cli?authuser=0#install_the_firebase_cli) 并安装。\n\n```shell\n# 初始化\nfirebase init emulators\n\nfirebase emulators:start\n```\n\n## Tip\n\n控制台输入 `signOut()` 登出\n\n## todo\n\n- [x] 常用字符格式快捷键 (Ctrl+B、Ctrl+I、Ctrl+U、...)\n- [x] 插入链接（网址识别、Ctrl+L 进行选中文字转链接或者直接插入链接）\n- [x] 表情（支持表情选择及其他 90%的 Emoji 转换）\n- [x] 上传文件（图片支持直接预览）\n- [x] 粘贴图片（Chrome 仅支持 PNG 图片，还会将部分可识别的文件转为 PNG 图片）\n- [x] @提及\n- [x] @提及后浏览器通知\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaceyi%2Fchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaceyi%2Fchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaceyi%2Fchat/lists"}