Frage

Ich arbeite an einem Projekt, ein Online-Tool für die Zusammenarbeit aufzubauen. Mit Blick auf Wikipedia, bemerkte ich, dass nutzergenerierte itterations einer Seite leicht miteinander verglichen werden können, ; Der Vergleich zeigt die Unterschiede.

Konzeptionell, was würde ich implementieren muß so ziemlich genau das gleiche zu tun?

War es hilfreich?

Lösung

Composited vom guten Rat:

Der einfachste Weg ist, um nur eine der bereits bestehenden Wiki-Engines. Es gibt viel guter Wiki-Motoren. Das Rad nicht neu erfinden.

Zum Beispiel Stackoverflow selbst ist ein speziell angefertigten Wiki. Schauen Sie sich die bearbeiten Zuschauer auf Stack-Überlauf, um zu sehen, wie gut seine Funktionalität, die man in der Frage beschriebenen entspricht.

Andere Tipps

Sie müssen einen versioniert Datenspeicher und diffing Algorithmus.

Shop-Versionen Ihrer Ressourcen durch jede Ressource eine Revisionsnummer zu geben. Wenn ein Benutzer eine Ressource bearbeitet, anstatt die Ressource zu ersetzen, mit einer neuen, höheren Revisionsnummer in Ihrem Datenspeicher die Änderung als einen neuen Eintrag speichern. Wenn Sie die Ressource abrufen möchten, senden Sie das mit der höchsten Revision an.

Statt einer Revisionsnummer Sie Zeitstempel verwenden könnte. Nicht nur, dass immer erhöhen Zeitstempel, aber die Revisionsnummer selbst verwendet werden könnte, zu identifizieren, wenn die Ressource geändert wurde.

Wählen Sie ein Diff-Algorithmus basiert auf, wie Sie die Ressourcen sind zu speichern. Wikitext ist in der Regel linewise, so dass, wenn die Benutzer, dass bearbeiten, wäre es sinnvoll, einen linewise diff wie das Standard-Unix diff Dienstprogramm zu verwenden. Wenn die Ressourcen XML sind, können Sie mögen einen XML-spezifische diff-Algorithmus zu finden, so dass es den Nutzer transparent sein würde, wo die Unterschiede sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top