Comments (9)
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.
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.
+1, this is probably the right way to go
from hallo.
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.
@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.
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.
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.
Here are some notes on what we would need from Surface: substance/surface#2 (comment)
from hallo.
http://yields.github.io/editable/index.html by @yields is another one, based on the web components idea.
from hallo.
Related Issues (20)
- README.md documentation confusing
- Paste image from clipboard
- anyone know the function to get contents HOT 1
- Problem with cite tag and hallo.js HOT 2
- Extra headers with halloheadings plugin
- Bower dependencies
- Hallo is leaving 'ui-droppable' on paragraph elements HOT 1
- XSS possible by firstly disabling Javascript and entering some script HOT 1
- Html mixed with markdown when making an UL
- Pressing the Esc key loses changes
- The event `hallomodified` is not fired when pasting data in mobile Safari
- Project health? HOT 4
- Basic Question: How does the user save changes? HOT 1
- "halloactivated" event handler isn't unhooked on destroy()
- Is there any chance there will be a plugin guide
- Version 10 of node.js has been released
- An in-range update of grunt-bower-install-simple is breaking the build 🚨 HOT 4
- An in-range update of grunt is breaking the build 🚨 HOT 2
- An in-range update of grunt-saucelabs is breaking the build 🚨 HOT 1
- Hello world
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hallo.