1

Я работаю над проектом, создающим интерактивный инструмент для совместной работы. Глядя на Википедию, я заметил, что пользовательские итерации страницы можно легко сравнить друг с другом; сравнение подчеркивает различия.Сравнение версий пользовательского генерируемого и модифицированного контента

Концептуально, что мне нужно для реализации, чтобы сделать практически то же самое?

+1

Почему вы не можете использовать какой-либо из уже существующих вики-движков для своего инструмента сотрудничества? – lothar

+0

Сложность нашего инструмента идет немного дальше. Вопрос в том, являются ли эти двигатели хорошими? Я не хочу создавать миллионную вики. – Kriem

+1

О да, есть * много * хороших движков вики. Не изобретайте велосипед. Если вы это сделаете, вы можете захотеть взглянуть на просмотр в SO, это похоже на то, что вы описываете. – Zifre

ответ

1

скомпонованы из хороших советов:

Самый простой способ это просто использовать любой из уже существующих вики-движков. Есть много хороших двигателей вики. Не изобретайте велосипед.

Например, StackOverflow - это специальная построенная вики. Посмотрите на просмотр редактирования в Stack Overflow, чтобы увидеть, насколько хорошо его функциональность соответствует той, что описана в вопросе.

0

Вам понадобится версия datastore и .

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

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

Выберите алгоритм diff, основанный на том, как вы храните ресурсы. Викитекст обычно используется в linuxise, поэтому, если пользователи редактируют это, было бы разумно использовать linewise diff, как стандартная утилита Unix diff. Если ресурсы являются XML, вы можете захотеть найти XML-специфический алгоритм дифференциации, чтобы пользователям было ясно, где эти различия.

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

  • Нет связанных вопросов^_^