如何将文本分解为单独的新行,以便其他用户可以编辑并突出显示这些编辑(类似于github)?

问题描述 投票:1回答:1

我正在开发一个类似于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的经验,所以如果可能的话,你能概述完成这项工作所需的步骤吗?对于初学者来说,这样的事情有多难?会使用这个框架是一个好主意吗?是否有一个我可以用来完成这个的库(我试过搜索,但没有命中)?

感谢您的时间。

javascript django string text split
1个回答
1
投票

如果你可以在后端进行比较,你可以像这里一样使用python difflib:https://stackoverflow.com/a/788780/2099689

在javascript中你可以使用这个库:https://github.com/google/diff-match-patch

© www.soinside.com 2019 - 2024. All rights reserved.