Как разбить текст на отдельные новые строки, чтобы другие пользователи могли редактировать и выделять эти изменения (аналогично github)? - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю над проектом, похожим на github , но вместо программирования это связано с изучением языка.Используемый мной бэкэнд - Django.

Как будет работать процесс:

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

Это будет выглядеть примерно так: enter image description here

Моя текущая модель настроена так:

class Post(models.Model):
    user = models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    ...


class Corrections(models.Model):
     user = models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
     post = models.ForeignKey(Post, on_delete=models.CASCADE)
     text = models.TextField(null=True)
     ...

Разделение предложений

Я считаю, что я должен разделить их с помощью регулярных выраженийзахватить "."затем split ()?

Проблема

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

Спасибо за потраченное время.

1 Ответ

0 голосов
/ 20 февраля 2019

Если вы можете сделать сравнение на сервере, вы можете использовать python difflib, как здесь: https://stackoverflow.com/a/788780/2099689

В javascript вы можете использовать эту библиотеку: https://github.com/google/diff-match-patch

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...