GithubHelp home page GithubHelp logo

Comments (9)

bergie avatar bergie commented on May 27, 2024

I think the focus will be on modern browsers. So unless somebody wants to bother with the efforts of legacy IE support, it won't be there.

As for cross-browser differences in generated HTML, the initial plan is to use jQuery clean (http://code.google.com/p/jquery-clean/) in getContents, and probably also for paste events.

from hallo.

balupton avatar balupton commented on May 27, 2024

https://github.com/balupton/html5edit would be a good low-level interface for this (which could then implement jquery clean if needed), allowing Hallo to focus just on the UI

from hallo.

bergie avatar bergie commented on May 27, 2024

+1, this is probably the right way to go

from hallo.

BladeBronson avatar BladeBronson commented on May 27, 2024

I'm very interested in this project. Even the basics seem to be in great need of normalization. For instance, pressing enter twice to create a new "paragraph" will only create a paragraph if already in a paragraph - otherwise a series of divs are used. Should this level of normalization be a goal for Hallo?

from hallo.

bergie avatar bergie commented on May 27, 2024

@BladeBronson: cross-browser normalization is indeed important. I think that falls under the jurisdiction of @balupton 's html5edit in the scheme where html5edit is the contentEditable core, and Hallo is the UI

from hallo.

bergie avatar bergie commented on May 27, 2024

Hallo's UX is heavily built on the concept of selections. When you're writing content, you're just writing. When you make a selection, a popover toolbar appears underneath. This popover should only display the commands relevant to the current selection (following rules around inline vs. block-level elements, etc).

Because of this, the lower level library should provide us the APIs and events that inform us of selections, actions possible for them, and allow us to execute these actions.

The actions will include stuff like bold and italic, changing the blocklevel element, and inserting content like images, links, and RDFa-marked annotated content (like persons).

if html5edit can do this for us, that will make life a lot easier for Hallo and practically any other rich text editor out there.

from hallo.

bergie avatar bergie commented on May 27, 2024

The idea of Hallo is to provide an easily usable rich text editor that has a permissive license, and which is as easy to use as any jQuery Ui widget. A major part of this is a good and universally functioning way to handle the actual HTML formattings, regardless of which browser is used to make them, or whether they come through copy-paste.

Since this is a quite large problem space, it makes sense to join forces here with other editor projects. There are some projects that explicitly seek to aim a rich text editor core that can be used with different shells (which Hallo would then be). Here is a non-exhaustive list of them. Editor cores that have an incompatible licensing model are not considered:

  • HTML5 Edit - very interesting handling of selections, but doesn't appear to be actively maintained (ping @balupton)
  • wysihtml5 - actively maintained and with a focus on secure mark-up generation, but uses IFRAMEs instead of actual in-line editing
  • Substance Surface - very early stage library with a promising approach based on operational transformation, which would make collaborative editing easy to implement
  • Squire - another editor core built on IFRAMEs
  • Rizzoma - another operational transformation editor core, but with all comments in Russian

from hallo.

bergie avatar bergie commented on May 27, 2024

Here are some notes on what we would need from Surface: substance/surface#2 (comment)

from hallo.

bergie avatar bergie commented on May 27, 2024

http://yields.github.io/editable/index.html by @yields is another one, based on the web components idea.

from hallo.

Related Issues (20)

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.