Markdown Historie.
Jedes gespeicherte Markdown erhaelt eine historie ueber die jede vergangene Version eingesehen werden kann. Gespeichert ist diese in Form eines komprimierten diffs.
Die Frontend Komponente kann jede beliebige existierende Patchversion darstellen. Auf der Datenseite ist aber kein undo möglich. Genau wie man in der Realität nicht in der Zeit zurück gehen kann kann man das auch nicht mit den Inhalten. Würde man das zulassen, so würde entweder ein Teil der Historie des Markdowns wegfallen müssen oder aber es würde ein beliebig komplexer Baum von Histoien entstehen.
Statt also ein undo auf eine frühere Version zuzulassen kann man in der aktuellen Version auf frühere Stände zurück gehen und diese gegebenenfalls noch anpassen. Dieser Stand wird wieder ein neuer Patch gegen die gegenwärtige Version.
Gedanken zum file upload.
Der finale Dateiname sollte ein eindeutiger Hashwert des content sein. Um die erzeugung des Hash schnell zu halten sollte es ausreichen nur einen Teil vom Anfang und von Ende und der Mitte zu hashen. Das habe ich schon mal in einem anderen Projekt gemacht... [SUCHE]
Die Dateien sollten dann in einem zweistufigem Verzeichnisbaum gespeichert werden bei dem die Verzeichnisse mit den ersten Zeichen des Hashs beginnnen.
Weitere Metainformationen wie Dateiname, Mime-Type, etc. werden in der Datenbank gespeichert.