Git Product home page Git Product logo

editor's Introduction

ORY Editor

Build Status Coverage Status Docs Guide

Join the chat at https://gitter.im/ory/hydra Join newsletter Follow twitter Follow GitHub

ORY is a company building and maintaining developer tools for a safer, more accessible web. You might also like our other Open Source projects! The ORY Editor is a smart, extensible and modern editor ("WYSIWYG") for the web written in React. If you are fed up with the limitations of contenteditable, you are in the right place.

ORY Editor demo

The ORY Editor is used at Germany's largest (~800k uniques per month) E-Learning Website www.serlo.org to improve the wiki experience.

We use the ORY Editor for ORY Sites, a tool for creating websites. It's similar to squarespace, but it works offline, the sites you created are stored on your device, and you are able to create your own designs and plugins.

Check out the demo at editor.ory.am!


Please Note: ORY Editor is pre-release and backwards compatibility is not guaranteed. However, we try our best to make breaking changes visible and easy to recover from!

Introduction

We have been running the Wikipedia for learning for almost a decade now. The experience and the lessons learned made us embark on the journey to build the ORY Editor. We wanted to make content editing on the web easy and enrich the Open Source Community with technology that moves the needle significantly for how content is created and edited on the web.

What's the problem?

We had to realize that existing open source content editing solutions had one of the three flaws:

  • The produced markup was horrific, a lot of sanitation had to take place and XSS is always a threat.
  • The author must learn special mark up, like markdown, before being able to produce content. These text-based solutions are usually unable to specify a layout and complex data structures like tables are annoying to edit.
  • Promising libraries potentially solving the above where abandoned by their maintainers, because it started as a special use case, or a free-time project.

So what's different?

We concluded that a solution must meet the following principles:

  • The state is a normalized JSON object, no HTML involved.
  • It is a visual editor that does not require programming experience or special training.
  • It is built by a company, reducing the likelihood of abandonment.
  • Based on reusable React Components, it gives developers, authors and designers new ways of working together and creating better and richer experiences more easily.
  • It works on mobile and touch devices.

With these principles in mind, we went out and implemented the ORY Editor, which you are looking at right now.

ORY Sites

ORY Sites is an innovative desktop app and combines the latest technology with ease of use - creating beautiful, responsive websites is now a matter of minutes.

ORY Sites

Quickstart

Currently our focus is on optimizing the ORY Editor for usage with React. We will work on, and ship versions that do not require React in the future. Please check the ReactJS tutorial!

$ npm install --save ory-editor

Note: The ory-editor package is a metapackage. It includes the core, our default ui and some plugins we officially support. Use this package primarily for convenience.

Documentation

Check out the user guide on gitbook.

How to run, develop, and contribute

Do you want to run, develop or contribute to the ORY Editor? For that you need Node installed on your system. Use git to check out this repository as followed.

$ git clone https://github.com/ory/editor.git
$ cd editor

Install dependencies

The ORY Editor is a monorepo that you initialise with:

$ npm i

Run the example(s)

Here are some examples that are a good starting point if you want to familiarize yourself with the editor. To run the examples, use one of the following commands:

$ npm run build
$ cd examples
$ npm run start

Run the toolchain

Our toolchain contains tests, eslint and flow types. We highly recommend to run this toolchain while developing.

# run the tests in watch mode
$ npm run test:watch

# run eslint in watch mode
$ npm run lint:watch

# run flowtype in watch mode
$ npm run flow:watch

Run the documentation

To run the guide in watch mode, do:

$ npm run docs:guide

To generate API docs, run:

$ npm run docs:api

Known issues

We keep track of known issues in the issues tab.

editor's People

Contributors

inyono avatar arekkas avatar kacgrzes avatar jaredpreston avatar knorrke avatar pierreneter avatar tokeshu avatar

Watchers

James Cloos avatar Jiufu Chen 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.