GithubHelp home page GithubHelp logo

codex-team / editor.js Goto Github PK

View Code? Open in Web Editor NEW
26.9K 240.0 2.0K 19.79 MB

A block-style editor with clean JSON output

Home Page: https://editorjs.io

License: Apache License 2.0

JavaScript 0.72% CSS 4.15% HTML 7.66% TypeScript 87.47%
editor wysiwyg redactor codex-editor javascript typescript ui json

editor.js's Issues

Позиция тулбара

При наведении курсора на поле "redactor" тулбар закрывает узел ( отрисовывается поверх узла ), а при последующих наведениях курсора тулбар отображается нормально.

Добавить заголовки в редактор

Добавить возможность работы с заголовками в редакторе.

При открытии редактора можно ставить курсор на большой заголовок (в случае статей — это название статьи).
А после того, как закончена работа с заголовком по Enter переходить в первый текстовый блок.

# это заголовок H1, ## это заголовок H2, ну или H2 и H3 соответственно.

Onboarding

  • Преимущества и планы по разработе.

Сделать крутую страницу example

Это будет первая страница, которую увидят пользователи, захотевшие пользоваться редактором, нужно сделать что-то наподобие лендинга, на котором будут показаны основные возможности редактора.

Концепция модульной структуры

В данный момент работа идет через prototype.
Надо подумать надо более оптимальной структурой.

Идея берет свое начало здесь
#4 (comment)

Там же можно посмотреть что именно сейчас не так.

Настройки блоков --цитаты

  • В момент отображения блока с настройками (cEditor.toolbar.setting.open), добавлять в него toolname.settings
  • в toolname.settings лежит элемент с кнопками настроек (например, три кнопки "цитата с подписью", "цитата с аватаркой и именем", "обычная цитата")
  • на кпопках в настройках висят события клика
  • при клике вызывается switchBlock и цитата заменяется на новый шаблон

Добавить параметры настроек при инициализации + Настройка tools

Сейчас конструктор принимает ID textarea, которую мы заменяем редактором. Это можно выпилить и задать ID статично. То есть для инициализации редатора надо будет добавить определенный ID к textarea и вызвать конструктор.

Надо, чтобы вместо ID конструктор принимал объект settings с пользовательскими настройками. Например, tools, которая будет задавать массив кнопочек тулбара.

window.cEditor = new ce({
     tools : ["header", "picture", "list"]
});

Потом добавятся еще настройки.

Create iterateJSON method

Method iterates JSON nodes and call render() function for every enrty.
Then it appends result HTML to the cEditor.

Запуск редактора для уже готовой статьи

Нужно добавить возможность создавать редактор для уже готового текста, то есть на вход поступает объект в специальном формате, а на выходе будет статья, которая выглядит в редакторе так же, как и на сайте.

Управление тулбаром с клавиатуры

Сейчас реализовано только открытие по TAB. Надо сделать чтобы дальнейшее нажатие на TAB переключало указатель по элементам тулбара (они становились синими слева направо по кругу), по ENTER делался новый node с выбранным инструментом. По ESCAPE тулбар закрывался.

Удаление блоков

Нужно удаление блоков.
Новые текстовы удалять по бекспейс и возвращаться на предыдущий

Link tool

Ошибка когда в инпут поле вставляется ссылка без 'path'

Create iterateBlock method

It iterates blocks and calls save() method of each entry.
Then it builds final JSON and moves to the database.

Удаление блоков

image

  • Добавить кнопку в тулбар, рядом с настройками блока
  • При клике — дописывать на ce_block класс removing-request , который делает блок полупрозрачным, а кнопка удаления становится красной (показано на макете)
  • При повтором клике на уже красную кнопку удаления — блок удаляется

Вынести санитайз в метод API

Вынести

block.addEventListener('paste', function (event) {
     cEditor.callback.blockPaste(event, block);
}, false);

в метод activateSatizeOnPase , который будет вешать разработчик плагина при создании contenteditable элемента

Server-side Url parser

Parse URL on php and return JSON object:

{
    'fullLink'      : 'http://yandex.ru',
    'shortLink'     : 'yandex.ru',
    'image'         : 'https://yastatic.net/morda-logo/i/apple-touch-icon/ru-76x76.png',
    'title'         : 'Яндекс',
    'description'   : 'Сайт, поисковик, проч.'
};

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.