А вот очень интересная технология для совместной работы над текстом в plain-формате. Называется CriticMarkup и по сути немного напоминает препроцессор с директивами условной компиляции.
В данном случае имеется пять директив, каждая из которых представляет собой нечто, заключённое в фигурные скобки {}
. Вот они все:
- Удаление
{--текст--}
. Помечает соответствующий текст в документе как подлежащий удалению. - Добавление
{++текст++}
. Говорит о том, что в данное место документа нужно вставить соответствующий текст. - Замена
{~~было~>стало~~}
. Предлагает в данном месте документа замену одного текста другим. - Выделение
{==текст==}
. Просто визуально подсвечивает соответствующий текст. - Комментарий
{>>комментарий<<}
. Просто добавляет ремарку для (со)автора, которая должна быть им прочитана, но в текст документа сама по себе не идёт. Может, например, комбинироваться с предыдущей директивой для пояснения того, к чему тут что-то было выделено.
Дальше всё делается легко. Размеченный таким образом файл открывается в специализированном редакторе, и тот строит список предложенных правок. Перемещаемся по этому списку и в окне превью видим, как каждая конкретная правка отражается на тексте. Выбираем, принять её или отвергнуть. Редактор выполняет соответствующие преобразования (или не выполняет, убирая правки). То есть, фактически выполняем функции принимателя решений при компиляторе. На выходе получаем готовый текст.
Если что, документация по CriticMarkup находится здесь. А качестве редактора рекомендуется Multimarkdown Composer (далее ММС). Есть инструменты и для других известных редакторов (например, для BBEdit), но всё-таки ММС пока самый лучший вариант. Помимо CriticMarkup, в полном объёме поддерживает Multimarkdown.
Данный редактор имеет шикарную фишку — режим «Track Changes». В этом режиме все действия с текстом приводят к тому, что вместо выполнения самих действий в тексте прописываются директивы, описывающие эти действия. В результате документ хранит в себе две версии разом — исходную и отредактированную, — а далее можно и нужно будет собрать из них версию окончательную.
Очень, очень интересная идея. И весьма достойная реализация. Рекомендую попробовать.