Giter Site home page Giter Site logo

devlzl / blockit Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 106 KB

Block-based collaborative rich text editor with whiteboard, developed from scratch in just 3 weeks.

Home Page: https://devlzl.github.io/Blockit/

HTML 0.50% Vue 33.65% JavaScript 65.67% CSS 0.18%

blockit's Introduction

Blockit

Block-based collaborative rich text editor with whiteboard.

Try Blockit online

Features

  • Text editing
    • Inline style
    • Format Bar
  • Block operation
    • Cross-block selection and format
    • API for add / update / delete block
  • Whiteboard
    • Pen element
    • Shape element
    • NoteBlock for blending document mode
    • Selection, Move, Resize
  • collaborative
    • CRDT(Yjs) data structure
    • undo / redo

Source Code Structure

├── blocks                # built-in blocks
  ├── page-block          # top-level container
      ├── docs
      └── whiteboard
  ├── note-block          # for blending docs and whiteboard
  └── text-block          # plain text and heading
├── editor
  └── Editor.vue          # out-of-the-box editor
├── kernel
    ├── Kernel.js         # rich-text editing kernel, natively CRDT
    ├── RichText.vue      # minimized rich text editing component
    └── service
        ├── EventService  # handle various input event
        └── RangeService  # handle selection and range
├── store
    ├── Block             # block model stored as Y.Map
    ├── EventEmitter      # simplified event emitter
    └── Page              # highest level container, provides a set of APIs for operating block
├── visual
    ├── SurfaceManager    # manage visual elements
    ├── Renderer          # canvas renderer
    ├── GridManager       # manage elements by grid coordinate
    └── elements          # element model stored as Y.Map

blockit's People

Contributors

devlzl avatar

Stargazers

Simon Breslav avatar zhengz avatar 士心 avatar hamflx avatar Yifeng Wang avatar

Watchers

 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.