geektimes

Как поддержка форматирования сообщений делает мессенджер лучше

  • четверг, 27 ноября 2014 г. в 02:10:52
http://habrahabr.ru/company/kato/blog/244215/

image

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

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

Проблема


Значительная часть мессенджеров (когда мы начинали работу над Kato таких было большинство) по тем или иным причинам не дает пользователям широких возможностей по оформлению текста — чаще всего разнообразить его можно только с помощью сссылок, смайликов и emoji, но не более.

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

Если сравнивать ситуацию с email, то электронная почта выигрывает, поскольку любой популярный email-клиент умеет красиво форматировать текст, а не просто вставлять смайлики и прикреплять файлы.

Поскольку мы не считаем email идеальным средством для делового общения и хотим создать продукт, который бы лучше подходил для этого, то было решено внедрить в мессенджер Kato более широкие возможности по форматированию текста.

Использование Markdown


Оптимальным вариантом решения задачи на первом этапе стало внедрение в мессенджер поддержки разметки Markdown, созданной Джоном Грубером и Аароном Шварцем. У этого решения есть свои минусы:

  • Это — пусть упрощенный, но язык разметки, и с ним нужно разбираться, что сразу же делает его неподходящим для большого количества обычных пользователей.
  • Документация Markdown откровенно плоха — это привело к появлению сторонних и лучше структурированных реализаций (создателям одной из них под названием Standard Markdown Джон Грубер даже предъявлял претензии и потребовал переименовать проект, чтобы была видна его вторичность).

Однако есть и большие плюсы, главным из которых является возможность написания гораздо более сложных и богато оформленных сообщений, чем раньше. Помимо этого, Markdown все же проще, чем разметка и команды некоторых других сервисов…

Число пользователй Kato, применяющих Markdown в ежедневной работе, составляет уже 20% и постоянно увеличивается, и, согласно их отзывам, возвращаться к общению в режиме «только текст» они не хотят.

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

image

Также можно включить режим Markdown по умолчанию.

После этого пользователь может писать операторы для создания списков, выделения жирным шрифтом или курсивом, вставки изображений, и так далее (у нас есть отдельная статья о самых популярных операторах):

image

Кроме того, существует возможность просмотра исходного Markdown-кода уже
отправленных в чат сообщений — для этого необходимо кликнуть на «шпалы» с левой стороны сообщения в истории и нажать иконку Markdown:

image

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

Мессенджер для программистов


Форматирование текста — это общая проблема, но для людей, которые работают с программным кодом и пользуются мессенджерами, существует еще одна сложность — копирование кода и его последующая вставка. Многие сервисы (например, Skype или HipChat) «портят» код — комбинации скобок и двоеточий интерпретируют в качестве смайликов, и при попытке использования кода, скопированного из сообщения, он уже не компилируется.

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

image

Небольшие куски кода можно вставлять прямо текущую строку и с помощью все того же Markdown (для этого используются специальные кавычки, расположенные на клавиатуре под символом «тильда»):

image

В режиме вставки кода небольшие его куски в чате отображаются целиком:

image

Более крупные участки отображаются с помощью ссылки ‘paste’ — по клику на нее открывается отдельное окно, где код подсвечивается:

image

image

Пользователи Kato оценили возможности по использованию Markdown и вставке кода и благодарят за их внедрение.

На сегодня все. В следующем материале мы расскажем о документе, который никто не читает, но который очень важен — политике конфиденциальности мессенджера и о том, кто, когда и как получает доступ к истории.