Jeder Absatz (<p>
) im Dokument hat eine ID (cn0, cn1,
etc.) und eine Klasse (cn
). Dies ist der einzige Teil des Kommentarsystems, der in der Nähe des Textes gerendert wird. Auf der Seite befindet sich auch die div
, die als das Popup fungiert, das auch das Kommentarformular enthält.
Der Rest ist mit Javascript erledigt. Wenn die Seite geladen ist, senden sie eine AJAX-Anfrage zurück, um die Anzahl und Position aller Kommentare im Dokument zu erhalten. Es sieht aus wie:
[[0,4],[3,2],...]
Damit es eine div
am Rand mit der Sprechblase und die Anzahl der Kommentare zu dieser Zeile hinzufügt.
Wenn Sie auf die Sprechblasen klicken, wird eine weitere AJAX-Anfrage gestartet, um die Kommentare für diese Sprechblase zu erhalten. In diesem Fall senden sie statt eines JSON-Objekts den eigentlichen zu rendernden HTML-Code wie zuvor.
Auf dem Backend (das ist jetzt alles Vermutung) binden sie jeden Satz von Kommentaren an ein Dokument und einen Ort in diesem Dokument (damit können sie alle Kommentare für ein Dokument auf einmal anzeigen). Ich würde wahrscheinlich die integrierte Kommentar-App verwenden, um dies zu tun, und entweder beide Elemente in einen fremden Schlüssel verpacken, indem Sie ein Modell erstellen, um das Dokument und den Ort zu verknüpfen, oder indem Sie das Kommentar-Modell selbst ableiten.
Hoffe das bringt Sie in die richtige Richtung. Sie können wahrscheinlich mehr über their Javascript, erfahren, aber es wurde verkleinert, so dass es ein wenig schwer zu lesen ist (UPDATE: gefunden unminified js). Sie bauen auf YUI, aber der Code ist ziemlich geradlinig.
@tghw: Weißt du, wie man die js-Datei effektiv lesbar macht? Ich laufe in Vims visueller Form "=" für eine Vereinheitlichung, aber ich bin nicht glücklich mit dem Ergebnis. –
Nein, aber ich habe die URL des vollständigen, nicht eingeschränkten JS gefunden. Ich habe den obigen Link aktualisiert. – tghw
@tghw: Danke für die Updates! --- Mit welchem Tool haben Sie den neuen Link gefunden? --- Ich habe die neueste .js-Datei von Firefug nicht gefunden. –