Giter Club home page Giter Club logo

flomo-react's Introduction

Flomo

大约1:1复刻的Flomo 网页(旧)版的单纯练习玩具,主要复刻编辑器,别的功能看情况实现,禁止任何商业用途,如果对产品本身有兴趣请访问Flomo官网 了解更多信息

快速开始

本项目为前端代码地址,服务端请访问flomo-server 查看,后文统一用前端&后端对应称呼这两个项目,后端项目不单独编写文档

线上试用

线上地址不保证任何信息安全及校验,且数据会被定期清除,仅做体验试用

本地部署

前端项目(flomo-react)

git clone [email protected]:Kffhi/flomo-react.git
cd flomo-react
npm install
npm run dev

后端项目(flomo-server)

git clone [email protected]:Kffhi/flomo-server.git
cd flomo-server
npm install
npm run start

功能说明

编辑器

顶部编辑器编辑内容后点击完成新增为一条新的memo

memo列表无限滚动,默认只读

双击memo进入编辑状态,点击完成更新memo内容

基础的富文本编辑功能

  • 基础文本
  • 加粗
  • 斜体
  • 下划线
  • 有序列表
  • 无序列表
  • 多级列表

标签支持

详见下文"标签"部分,呈蓝色高亮显示

撤消/恢复

通过键盘快捷键操作

图片支持

支持png、jpg/jpeg格式图片,单个文件大小不超过5MB

快捷键支持

  • 基础格式:Ctrl+B/I/U
  • 无序列表:*+空格
  • 有序列表:数字+空格
  • 多级列表:光标置于非同级内的第一个列表项开头,按下Tab
  • 撤销:Ctrl+Z
  • 恢复:Ctrl+Shift+Z

标签

标签的格式为:#标签 ,标签与后续内容之间需要添加一个空格

所有的标签都会展示在左侧的标签树

点击标签树会筛选出当前标签下所有的memo

新建标签

在编辑器中按下输入框下方工具条的“#”或者直接输入“#”字符,输入完成后点击发送会自动根据输入内容中的标签创建标签(或者将内容收录至已有的标签下)

标签支持嵌套,建议至多4级标签,多级标签的格式为:#父级/二级/三级,不同层级之间使用英文符号/隔开

标签文本内容长度不做特殊限制但是建议不要过长

标签编辑

标签创建完成后支持修改图标

不支持删除标签

允许重命名标签,重命名后对应的内容中的标签文本都会被对应重命名

标签排序

新增加的标签默认放在最后

选择置顶会将标签置于当前层级的最前

不支持拖动排序

热力图

展示12周内的提交数据

只记录提交数据,删除、编辑memo不会进行记录

点击可查看当天的全部提交

搜索

支持关键字搜索

随机漫步

单纯的随机抛出一条memo

feature list

  • 基础布局、样式及交互
  • 基础富文本编辑功能
  • 图片支持
  • 键盘快捷键支持
  • 标签输入联想
  • Memos管理,增删改
  • 热力图数据展示
  • 标签图标修改
  • 标签重命名
  • 多级标签
  • 搜索
  • 多级列表
  • 撤销恢复
  • 基本功能可用
  • 体验版部署

  • 体验优化
  • 高级查询
  • 标签等扩展功能slate插件化
  • H5适配
  • 单元测试
  • CI/CD
  • ...

部分技术方案实现

编辑器

标签

富文本格式

数据存储

热力图

接口文档

单元测试

相关项目

基础语言/脚手架 React+TS+Vite

组件库 Ant Designhttps://github.com/ant-design/ant-design/

热力图启发 heatmaphttps://github.com/ccccai/heat-map

富文本 Slatehttps://github.com/slatedocs/slate

编辑器开发参考 wangEditorhttps://github.com/wangeditor-team/wangEditor

other

富文本写着逐渐无聊了起来,后面可能会去做一个类似VitePress的之类的玩意给自己建站用(毕竟语雀换Obsidian了),本项目我在Sentry看不见报错也没有issue的话大概率是不会再更新了,pr welcome~

flomo-react's People

Contributors

kffhi avatar chefback avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.