Веб-сервисы для совместного редактирования с поддержкой Markdown-синтаксиса: сравнительный обзор 5 решений

Язык разметки Markdown, созданный Джоном Грубером (John Gruber) и Аароном Шварцем (Aaron Swartz), имеет очень простую структуру и удобен в использовании, поэтому он широко применяется в интернете и в настольных приложениях. Многие разработчики знакомы с Markdown благодаря сервису GitHub, другие используют его для создания заметок и последующей публикации в блогах.

Существуют сервисы для совместной работы с документами, которые позволяют редактировать и хранить заметки в Markdown на сервере, импортировать и экспортировать их в различных форматах. Безусловно, здесь могут возникнуть ассоциации с Google Docs и подобными популярными облачными сервисами. Поэтому в обзоре будут отмечены различия в подходах, которые используются при хранении, сравнении файлов, совместной работе и т. д.

Аспекты обзора следующие:

Markdown-редактор: интерфейс, настройки, дополнительные возможности (подсветка синтаксиса, нумерация и т. п.) Источники импорта, экспорт (включая публикацию записей в блогах) Хранение документов: метод хранения и возможность офлайн-доступа Управление версиями Совместная работа: особенности редактирования, предоставление общего доступа Участники обзора:

Draft — один из наиболее известных сервисов для совместного редактирования. Использует более строгую систему учета и хранения версий, нежели Google Docs, задействует расширенные возможности языка Markdown и содержит множество дополнительных функций. Typewrite представляет собой среду для совместного редактирования документов. Предполагалось, что сервис совместит удобство текстового процессора (прообразом стал редактор Byword для iOS) и особенности совместного редактирования Google Docs. Также в приоритетах разработчика была реализация нескольких функций: редактирование в реальном времени и подсветка синтаксиса Markdown. Стоит отметить, что Typewrite появился совсем недавно, поэтому многие функции не реализованы, тем не менее, значатся в ближайших планах. Редактор StackEdit основан на библиотеке PageDown, используемой популярными сервисами Overflow и Stack Exchange. Далее будет рассматриваться beta-версия редактора, 4-й версии. В ней был обновлен интерфейс, добавлены функции обсуждения и комментирования, усовершенствованы синхронизация и офлайн-режим доступа. Penflip — своего рода «GitHub для редакторов»: сервис предназначен не для разработки, а скорее для написания руководств, исследований. Рабочая среда Penflip включает в себя контроль версий и позволяет вести совместную работу над проектами. Authorea — сервис, прежде всего, полезен при обращении с научными текстами, технической документацией. Поддерживается множество форматов (LaTeX, Markdown, HTML, Javascript), для контроля версий используется Git. Помимо текста, документ может содержать в себе код IPython, d3.js, изображения с Plot.ly и другие данные для визуализации. Особенности Markdown-редактора В Draft кнопки форматирования и текстовые поля, по сути, отсутствуют. Это непривычно для редактора, однако в случае с Markdown минимализм вполне обоснован. Ключевые возможности синтаксиса доступны в правом меню Draft. Можно заметить, что используется расширенный синтаксис, что позволяет создать списки to-do и управлять ими. Также для быстрого копирования/вставки текста могут использоваться сниппеты.

Интерфейс редактора Draft Примечателен режим Хемингуэя (Hemingway mode) для черновой работы с текстом. Возможность правки в данном режиме отсутствует, редактирование осуществляется после создания черновика. Теоретически, могут быть полезны две функции — обратиться к эксперту (Ask a Pro) и упрощение текста (Simplyfy), но они недоступны для русского языка.

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

У редактора имеется один недостаток — нет подсветки синтаксиса и нумерации. Таким образом, редактор скорее нацелен на работу сугубо с текстом, без использования кода, формул и т. п.

Typewrite очевидно имеет сходство с Draft, с той разницей, что здесь присутствует подсветка синтаксиса. В остальном усматривается тот же стиль оформления. В левой части экрана — навигация, справа — доступ к основным функциям Markdown и управлению документами. Ничего лишнего, вдобавок интерфейс очень отзывчив.

Интерфейс редактора Typewrite StackEdit — единственный редактор с двухпанельным интерфейсом, где предварительный просмотр доступен в реальном времени. Базовое расположение панелей легко поменять (с горизонтального на вертикальное), одну из панелей можно свернуть. Редактирование осуществляется в полноэкранном режиме.

Интерфейс редактора StackEdit Есть у StackEdit некоторые удобства WYSIWYG-редактора: на верхней панели расположены кнопки форматирования и разметки документа.

Для подсветки синтаксиса используются библиотеки Prettify и Highlight.js. Благодаря этому, подсвечивается как исходный документ Markdown, так и код, отображаемый в превью. Поскольку StackEdit полноценно поддерживает CSS3, в редакторе можно использовать визуальные эффекты, SVG и прочие «бонусы» спецификации.

Как видно в документе приветствия, без проблем отображаются таблицы (в том числе таблица содержания), списки, сноски, «умная» пунктуация, блоки с кодом, комментарии. Помимо собственно Markdown, в StackEdit доступны расширенная разметка Markdown Extra/GitHub Flavored Markdown, а также математические выражения LaTeX.

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

Интерфейс редактора Penflip В Penflip кнопки форматирования вынесены на верхнюю панель. Редактор поддерживает подсветку синтаксиса, есть опции быстрого сохранения и предварительного просмотра документа. Нет полноэкранного режима, и в случае с однопанельным редактором это неудобно. Настроек отображения, кроме смены темы оформления, нет.

Редактор Authorea Сервис Authorea в меньшей степени предназначен для быстрого редактирования одного документа, скорее здесь речь об удобстве работы с несколькими форматами одновременно, упор на проектную структуру. Поэтому, в сравнении с другими участниками, редактор Authorea выглядит весьма академично.

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

Подсветка синтаксиса для всех поддерживаемых файловых форматов и нумерация присутствуют.

Приложение Подсветка синтаксиса Нумерация строк Статистика по документу Настройка шрифтов Смена темы оформления Горячие клавиши Draft − − + + + + Typewrite + − + − − + StackEdit + − + + + + Penflip + − + − + + Authorea + + − + − − Импорт Draft позволяет импортировать файлы из Dropbox, Google Drive, Evernote, Box, загружать по ссылке, с FTP или локального диска.

В Stackedit можно открыть документ по ссылке или с локального источника. При этом, можно сконвертировать HTML в Markdown для дальнейшего редактирования на сервере.

В Authorea доступна загрузка документов с локального диска. В качестве исходных могут выступать LaTeX- и BibTeX- файлы.

В Typewrite и Penflip, на момент написания, опция импорта не поддерживается.

Экспорт и публикация Draft предлагает наибольший список форматов для вывода — TXT, Markdown, HTML, документы Word, Google Docs, PDF, MOBI, ePub. Также Draft отлично справляется с публикацией, позволяя подключить социальные, блог-платформы, вроде WordPress, Tumblr, Blogger и другие. Кроме того, доступен экспорт на другие сервисы посредством протокола JSON и WebHook.

StackEdit поддерживает экспорт в Markdown, HTML, PDF, для вывода можно использовать формат, указанный в шаблоне. Также, как и в Draft, представлены широкие экспортные возможности. Заметку можно опубликовать в Blogger, Tumblr, WordPress и на других сервисах, указав формат, теги и другие параметры.

На данный момент Penflip экспортирует следующие форматы: HTML, TXT, Word, PDF, Markdown, ePub. Публикация на данный момент не поддерживается, но, по словам разработчика, планируется реализация этой возможности.

Authorea позволяет сохранять файлы в LaTeX, PDF, скачивать их в ZIP-архиве. В дополнению к этому, можно указать стиль журнала — шаблон для оформления документа. Публикация в Authorea, очевидно, не предусмотрена.

Настройки экспорта в Authorea В Typewrite экспорт на данный момент не реализован.

Приложение Импорт (источники) Экспорт (форматы) Публикация (платформы) Draft локальный файл, Dropbox, Google Drive, Evernote, Box, URL, FTP TXT, Markdown, HTML, Word, Google Docs, PDF, MOBI, ePub WordPress, Tumblr, Twitter, Blogger, LinkedIn, Mailchimp, Buffer, iDoneThis, WebHook URL, Svbtle, Ghost, Basecamp Typewrite − − − StackEdit URL, локальный файл Markdown, HTML, PDF Blogger, Dropbox, Gist, GitHub, Google Drive, SSH-сервер, Tumblr, WordPress Penflip − HTML, TXT, Word, PDF, Markdown, ePub − Authorea локальный файл (LaTeX, BibTeX) LaTeX, PDF, ZIP − Управление версиями и совместное редактирование Для предоставления доступа в Draft достаточно отправить ссылку соавтору по email. Редактор документа вносит правки и, по итогу, отправляет уведомление об изменениях владельцу. Последний просматривает изменения, принимает или отклоняет их. Любой фрагмент текста можно выделить, прокомментировать и отправить уведомление одному или нескольким авторам на email.

При совместной работе зачастую очень сложно отследить правки каждого редактора. Отличие Draft, например, от Google Docs состоит в том, что в данном случае не перезаписывается мастер-копия — то есть, документ, созданный автором. Еще одно важное отличие — более удобное управление версиями. В Draft можно создавать промежуточные чекпоинты — мастер-копии с важными изменениями.

Просмотр правок в Draft Аналогично, в Penflip создается копия мастер-документа, закрепленная за каждым редактором. При этом, редакторы не могут изменить основную версию, а администратор имеет возможность принимать или отклонять изменения редакторской версии документа. Кроме того, при управлении версиями редактор может создавать временные отметки, используя теги.

В Penflip предусмотрено добавление новых пользователей, тех же участников проекта. Кроме рассылки приглашений и совместной работы, редактор позволяет просматривать активность, добавлять комментарии.

Typewrite использует несколько иной подход, скорее это система редактирования в реальном времени наподобие Google Docs. Для добавления пользователя отправляется уведомление на почту, после чего приглашенный участник заходит под своей учетной записью и вносит правки.

Доступно в Typewrite и управление версиями. Это предполагает также сравнение документов и восстановление любой из версий. В то же время, эта система не имеет ничего общего с Github, что, скорее, является недостатком: автор документа не имеет возможности принять или отклонить изменения или хотя бы узнать, кто внес те или иные правки.

В StackEdit для совместной работы с документом предусмотрена функция Share. Синхронизация осуществляется посредством сервисов Google Drive или Dropbox. Хранение версий не предусмотрено. Единственный сторонний способ управления версиями — интеграция с облачным сервисом. Хотя и в данном случае, разумеется, сравнение документов и контроль изменений будут недоступны.

Для управления версиями в Authorea используется Git. Добавить автора можно, пригласив его по email. Каждое изменение, вносимое создателем и редакторами документа, фиксируется и может быть принято или отменено. При этом, в Authorea есть возможность просмотра истории изменений в виде отчета. Инструментарий Authorea также предусматривает обсуждения, комментирование, просмотр активности.

Сравнение файлов в Authorea Приложение Совместное редактирование в реальном времени Сравнение документов Контроль правок Управление версиями Комментарии / чат Draft − + + + + Typewrite + + − + − StackEdit − − − − + Penflip − + + + + Authorea − + + + + Хранение документов Одно из главных преимуществ Draft — поддержка двухсторонней синхронизации документов. Как было сказано выше, импорт актуален для таких облачных сервисов, как Dropbox, Google Drive, Evernote и Box. Измененный документ передается обратно на сервер, что позволяет использовать те же файлы, скажем, в локальных приложениях. Для этого можно задействовать синхронизацию облачного сервиса с десктопом.

В наличии также офлайн-режим (доступен по адресу https://draftin.com/offline), он позволяет хранить до 50 последних измененных документов в кэше браузера. Включить данный режим можно через раздела настроек Labs. Синхронизация осуществляется вручную, все файлы хранятся в незашифрованном виде.

StackEdit не требует создания учетной записи и не хранит документы на сервере. Вместо этого документы хранятся в кэше и доступны офлайн. Помимо того, можно синхронизировать документы с Dropbox или одним или несколькими аккаунтами Google Drive.

Несмотря на заявленную на главной странице сервиса https://typewrite.io/ синхронизацию с Dropbox, по факту Typewrite не обладает данной функцией, офлайн-режим также недоступен.

Authorea позволяет хранить документы на сервере. Благодаря git-интеграции, редактирование документов возможно и в офлайн-режиме. При этом, в качестве файлового хранилища используется репозиторий.

Как следует из таблицы, в Penflip отсутствует облачная интеграция. Однако таким же образом, как и в Authorea, несложно интегрировать проект с git-репозиторием и тем самым получить доступ к офлайн-функциям.

Приложение Офлайн-доступ Облачная синхронизация git-синхронизация Предосмотр Draft + + − + Typewrite − + − + StackEdit + + − + Penflip + (git) − + + Authorea + (git) − + + Резюме Draft — гибко настраиваемый редактор для совместной работы, с поддержкой горячих клавиш и множеством дополнительных функций. По своей функциональности, поддержке файловых форматов, сервис дает фору всем участникам обзора.

В целом, Draft отлично себя показывает при редактировании заметок и публикации на различных платформах. Однако есть и нарекания. Во-первых, применимо к Markdown-редактору: не все функции доступны русскоязычному пользователю, плюс, хотелось бы видеть подсветку синтаксиса. Во-вторых, поддержка других языков разметки, вроде LaTeX и Textile, была бы полезным дополнением при работе с технической документацией.

На данный момент сложно говорить о Typewrite определенно: здесь нет ни импорта, ни экспорта, ни синхронизации. Работать в подобной замкнутой среде не слишком удобно. Тем не менее, приоритетные функции рано или поздно будут реализованы, а редактировать Markdown-заметки в Typewrite можно уже сейчас.

StackEdit — онлайн-блокнот с хорошей поддержкой форматов. Наравне с Draft, он может предложить импорт, экспорт и публикацию. С другой стороны, StackEdit не позволяет полноценно работать нескольким пользователям: приходится либо использовать снимок («замороженную» версию) документа, либо прибегать к синхронизации, что тоже не равнозначная замена совместному редактированию с контролем вносимых изменений.

Penflip — один из немногих Markdown-сервисов для совместной работы с проектами. Сильные стороны — локальное хранение данных и офлайн-доступ к ним, управление версиями, удобный редактор с подсветкой и предварительным просмотром, интеграция с Git. Из недостатков — отсутствие импортных и экспортных функций, возможности публикации. Впрочем, ожидается, что скоро эти функции будут реализованы.

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

Полный текст статьи читайте на iXBT