В Caliu вы проводите время в редакторе, поэтому ему достаётся больше всего внимания. У каждого приложения свой редактор, построенный на текстовых технологиях своей платформы, и все они дают одно обещание: хранится обычный Markdown, а видите вы этот же Markdown, отформатированный прямо на месте по мере набора.
Один цикл, три редактора
Каждый редактор Caliu делает одни и те же три вещи:
- Читает Markdown заметки и определяет её структуру: заголовки, списки, задачи, цитаты, код, таблицы.
- Показывает эту структуру как отформатированный текст и прячет синтаксис, пока он вам не понадобится.
- Записывает ваши правки обратно в Markdown, тот же обычный текст, который прочитает любое другое приложение для Markdown.
Открытие заметки никогда её не меняет. Заметка меняется, только когда вы её редактируете, поэтому чтение заметки на другом устройстве никогда не переписывает её у вас за спиной.
В вебе: ProseMirror
Веб-редактор построен на Tiptap, который работает поверх ProseMirror, набора инструментов для редактирования форматированного текста в браузере, на котором основаны многие известные инструменты для письма. Блоки кода раскрашивает Shiki, тот же модуль подсветки, что используют многие редакторы кода.
На iPhone, iPad и Mac: собственная текстовая система Apple
Редактор для Apple построен прямо на нативном текстовом представлении Apple (UITextView на iPhone и iPad, NSTextView на Mac) и на TextKit, текстовом движке, на котором работают приложения самой Apple. Markdown читается библиотекой Apple swift-markdown, которая следует той же спецификации, что и GitHub, и записывается обратно с сохранением ваших исходных решений: если вы написали *italic*, а не _italic_, так и останется.
Вся заметка представляет собой одно непрерывное текстовое представление. Именно благодаря этому выделение, прокрутка и редактирование через несколько абзацев ощущаются естественно. Элементы, которые не являются обычным текстом, например таблицы и блоки кода, рисуются как отдельные представления поверх текста.
На Android: текстовое поле платформы
Редактор для Android построен на собственном текстовом поле Android, которое оформляется по мере набора. Markdown читается библиотекой commonmark-java и проверяется по тому же эталону, что и в приложении для Apple. Сотни образцов документов должны выходить из редактора Android ровно такими, какими вошли, так же как на устройствах Apple.
Почему важен нативный текст
Редактирование текста относится к самым сложным вещам, которые приложение может делать хорошо. Опираясь на текстовый движок каждой платформы вместо того, чтобы изобретать свой, Caliu получает всё, что ваше устройство уже умеет: автоисправление и проверку орфографии, диктовку, методы ввода для японского, китайского и корейского, программы чтения с экрана, такие как VoiceOver и TalkBack, а также привычные маркеры выделения и сочетания клавиш.
Как увидеть Markdown
Если хотите увидеть, что хранится на самом деле, переключитесь в режим исходного кода. Он показывает необработанный Markdown со всеми # и *, и редактировать его можно прямо там. Смотрите статью «Режим исходного кода».