Giter Site home page Giter Site logo

liferay / alloy-editor Goto Github PK

View Code? Open in Web Editor NEW
1.4K 56.0 282.0 100.37 MB

WYSIWYG editor based on CKEditor with completely rewritten UI

Home Page: http://alloyeditor.com

License: GNU Lesser General Public License v3.0

CSS 11.75% HTML 12.36% JavaScript 74.65% PHP 0.16% Shell 0.05% SCSS 1.02%
wedeploy

alloy-editor's Introduction

Alloy Editor

Alloy Editor is a modern WYSIWYG editor built on top of CKEditor, designed to create modern and gorgeous web content.

Works on IE11, Chrome, Firefox and Safari.

Demo

Features

  • Smart toolbars appear right near the selected text and offer different functionality based on context
  • Easily add your own buttons (see the "marquee" example in the docs)
  • Paste images from clipboard, or Drag&Drop them from another application
  • Insert images from the device's camera!
  • Paste rich text from any web page and preserve its formatting
  • The full styling power of CKEditor...
  • ...with a much more modern UI
  • The core is fully separated from the UI
  • The example UI is built with React
  • Plugin architecture

Documentation

Look for documentation and examples on http://alloyeditor.com/

License

LGPL License

Build Status

Sauce Test Status

alloy-editor's People

Contributors

ambrinchaudhary avatar antonio-ortega avatar antoniopol06 avatar arthurchan35 avatar bettysteger avatar diegonvs avatar dpobel avatar fortunatomaldonado avatar georgel-pop-lr avatar gregory-bretall avatar holatuwol avatar ipeychev avatar jaclynong avatar javiergamarra avatar jbalsas avatar julien avatar kushal avatar liferay-translation avatar linolaoj avatar markocikos avatar mateomustapic avatar mattleff avatar matuzalemsteles avatar orsolyadekany avatar pavel-savinov avatar rodrigopaulino avatar sandrodw3 avatar spencerwoo avatar vbence86 avatar wincent avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alloy-editor's Issues

Implement different toolbars for Mobile

Current editor toolbars are suitable for Desktop but not for Mobile. We have to implement new toolbars. One idea is to place them just above the native keyboard of the phone/tablet. To be discussed with the UX.

Create vanilla UI

The current UI requires YUI3. We need to create an UI, which does not depend on any Framework.

ToolbarAdd showAtPoint API is inconsistent

Currently, the add toolbar API showAtPoint is inconsistent with how the rest of toolbars work.

Toolbar showAtPoint signature
toolbar-add showAtPoint: function(triggerPosition, toolbarPosition)
toolbar-image showAtPoint: function(left, top, direction)
toolbar-styles showAtPoint: function(left, top, direction)

IE7 errors when viewing the live demo

I get two JS errors in IE7. Also the toolbar does not display. But it seems that I’m still able to edit content.

  • ‘stringify’ is null or not an object.
  • ‘config’ is null or not an object.

@ipeychev, says that we will be dropping IE7 from the list of supported browsers.

Toolbar config buttons does not accept button configuration.

There's two sides of this bug:

  • Documentation is wrong, giving away code that would produce syntax errors in the browser
toolbars: {
    styles: [
        'facebook': {
            customParam: 'param1',
            customParam2: 'param2'
        }
    ];
}
  • Toolbar buttons configuration won't accept an object with configuration, nor will treat properly an array of objects for the modules

Modify toolbar add behavior

After UX analysis, the add toolbar should work in the following way:

  • The add button should show on the left margin, on the same line where the cursor is.
  • On click on the add button, it should hide and show the add toolbar instead.
  • When the toolbar is dismissed, the add button shows again.

Things to consider and implement at some point:

  • When there's a selection and the toolbar is shown, the selection needs to change to a different colour to indicate that the selection will be replaced by the added element.
  • When there's no content in a line, the add toolbar should show to the right of the button, in the empty line, instead of on top.

Project Site: Consolidate the content about the custom UI feature into one page.

Too much important information is scattered throughout the site. I have to view multiple pages just to get an idea what this “customizable UI” is and why it’s so cool and why I’d want to build a custom UI in another language.

Consolidate the content about the custom UI feature into one page. Add links to that new page in content which mentions it.

Creating a link which, crosses element boundaries, causes JS errors and a buggy toolbar.

Example Content:

<p>Some text <strong>with some bold text</strong> and some normal text.</p>

Steps to replicate:

  1. Go to Example/Live Demo page. http://alloyeditor.com/examples/
  2. Using your cursor, select a range of text which stars in some bold and ends in some normal text.
  3. The toolbar will display.
  4. Click the [link icon] and input a URL.
  5. Click the [checkmark].

Expected Results:

  • A single link created around selection. With with a child <strong>.
<p>Some text <strong>with some</strong> <a href="..."><strong>bold text</strong> and some normal</a> text.</p>

Actual Results:

  • Two links, one in the <strong> on one outside.
<p>Some text <strong>with some<a href="...">bold text</a></strong> <a href="...">and some normal</a> text.</p>
  • JS error: Uncaught TypeError: Cannot read property 'setAttributes' of null
  • Toolbar behavior is now buggy.

Content editable, Marco Polo

I'm unable to visually determine what content is editable. Which requires me to click into each content section, to determine if I can edit it. I need some visual hint of what I can edit.

Add functionality to create OL & UL lists.

Requirements

Inline/Single Line Selection

  • Select inline text, list icon(s) will display in toolbar.
  • Clicking icon will create a new list surrounding selection, with a single list item.

Multi-Line Selection

  • Select multiple lines, list icon(s) will display in toolbar.
  • Clicking icon will create a new list surrounding selection
  • Each line (block) selected will be it's own list item.

Unknowns

List button(s) style/behavior suggestions

  1. Two buttons [OL] [UL]
  2. One button [LIST] with drop down.
  3. One button [LIST] which cycles through: [OL], [UL], [LIST (off)]

Project Site: Rename main navigation item, "Example".

Rename main navigation item from "Example" to: "Live Example", "Live Demo", or "Demo".

"Example" is too ambiguous and uncommon to be recognized as a live demonstration of the project. Without navigating to the page, I don't immediately understand what I’d be seeing.

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.