2015-06-29 3 views
0

Для проекта мы сейчас пытаемся создать редактор WYSIWYG, который должен иметь ту же самую базовую функциональность, как Adobe, InDesign:Интернет редактор JavaScript, как Indesign

  • Добавление текстовых фреймов, и связывание текстовых рамки вместе
  • Master Pages (с базовыми, полей, колонок и канаву)
  • Basic форматирования (размер шрифта и стилей, выравнивания)

Мы пытаемся, чтобы позволить пользователям создавать простые документы, использующие статьи на новостном сайте в качестве источника. Через интерфейс drag'n'drop они должны иметь возможность быстро создавать простой документ, похожий на газету. Создание пользователя должно быть преобразовано в PDF (через FPDF-библиотеку). Поэтому редактор должен создать какой-то html с атрибутами данных, содержащими такие свойства, как ширина, высота и т. Д., Чтобы эти данные могли быть преобразованы в объект json, который должен быть извлечен в PHP и загружен в FDPF. Прогресс в простых шагах:

  1. Html WYSIWYG генерирует атрибуты предварительного просмотра + html с измерениями;
  2. Опубликовать атрибуты html с помощью ajax на сервер;
  3. PHP-сервер извлекает json и преобразует его в объект FPDF;
  4. Пользователю предлагается файл PDF для загрузки.

Я пытался смотреть на страницах ICloud, которая использует SproutCore (или Ember?), Насколько я могу видеть, но я думаю, что это было бы излишним, чтобы использовать эти рамки, возможно, он даже не будет иметь базовую функциональность, которую я ищу.

У кого-нибудь есть идеи, как начать? Какую платформу JavaScript использовать (я использовал Prototype, Mootools и jQuery в прошлом) и где искать возможные примеры/подобные проекты?

+0

Для справки iCloud является продуктом Apple. Код проприетарный (я даже не уверен, что вы можете использовать его в браузерах). Обе структуры, которые вы упомянули, являются с открытым исходным кодом. – psycotik

+0

Первый вопрос, который возникает в голове после вашего вопроса, - «почему вы хотите сделать In-браузер InDesign». 0_o 'Это довольно много (пере) работы. – hijarian

ответ

1

Если ваша цель InDesign, вы, вероятно, захотите узнать о IDML (warning, direct link to PDF!. Это XML-описание АСТ документа InDesign.

Если вы хотите создать еще один редактор WYSIWYG, вы, вероятно, захотите прочитать код существующих решений и посмотреть, как они построены. Сначала появляются CkEditor и Redactor.js.

Когда люди говорят о «Javascript Framework» в эти дни (2015 год), они не говорят о jQuery, Prototype и MooTools, поскольку их обычно называют «библиотеками». «Рамки» в настоящее время - Angular.js, Ember.js и т. Д., И выбор между ними в основном религиозен, как между Vim и Emacs.

Выше было I лично начало. И о том, с чего начать в техническим способом - о нем уже много писали. Вы поднимаете систему сборки, тестовые жгуты, производственные/тестовые среды, располагаете конвейером развертывания (да, для одного виджета пользовательского интерфейса), а затем начинаете писать тесты.

Весь этот вопрос больше похож на новую точку входа в обсуждение проекта, а не на вопрос с четким ответом.

+0

Я на самом деле пытаюсь полностью обойти InDesign, потому что я хочу создать единый системный рабочий процесс, где пользователи могут создавать контент как для своего сайта, так и для печатного издания (новостной материал). Тем не менее, я собираюсь расследовать IDML, поскольку он, вероятно, будет творчески улучшать наш существующий XML-экспорт для параметра InDesign. – royarisse

+1

@royarisse Я упомянул IDML не потому, что это способ экспорта в InDesign. IDML по сути является XML-описанием ** функций **, существующих в InDesign, которые вы можете использовать для своего пользовательского интерфейса. У вас неизбежно будет какая-то внутренняя модель документа в вашем WYSIWYG, и с IDML она станет уже решенной проблемой. Если ваш целевой набор функций - InDesign, то есть. – hijarian

0

SproutCore действительно является основой для iCloud Pages, а также остальной среды iCloud.Он предоставляет уже часть того, что вы описываете, например, текстовый редактор (https://github.com/sproutcore/rich-text-editor), а также встроенная функция перетаскивания.

Я не думаю, что использование SproutCore было бы излишним, если только вы не пытаетесь создать виджет, который вы хотите использовать в другой среде/структуре.

SproutCore - это основа, очень подходящая для этих сложных приложений, поэтому, вероятно, Apple использует ее для iCloud. Другим примером такого сложного приложения SproutCore является считыватель Kobo (http://read.kobobooks.com/).

+0

Далее я исследую SproutCore/Ember.js, чтобы определить, является ли это возможным решением для обхода InDesign, как указано выше. Я добавлю свои данные, чтобы эта статья могла использоваться в будущем в качестве ссылки. – royarisse

+0

Просто небольшое замечание, что Ember и SproutCore на самом деле не совместимы друг с другом. Ember взял подмножество функций SproutCore и переписал его до такой степени, что, хотя код может выглядеть схожим, API-интерфейсы несовместимы. Эмбер так же удобен в использовании (более низкая кривая обучения для людей, знающих HTML/plain JS), но сложные ситуации сложнее обрабатывать. – mauritslamers

Смежные вопросы