Wie implementiert Wikipedia das Feature "Diesen Abschnitt bearbeiten" für seine Artikel, in dem ein Benutzer nur einen Abschnitt eines Artikels statt des gesamten Artikels bearbeiten kann? Ich habe versucht, selbst durch den Code von mediawiki zu kriechen, aber es ist ein bisschen schwer für mich zu verstehen. Hier ist mein rate (aber nur eine Vermutung):
Benutzer klickt auf [Bearbeiten] in einem Artikel. Dies führt zur regulären Bearbeitungsseite, aber mit einem zusätzlichen Parameter, der über GET in der URL übergeben wird und spezifiziert, welcher Abschnitt bearbeitet werden soll. Ohne diesen zusätzlichen Parameter würde Mediawiki dem Benutzer normalerweise nur ein Formular zur Verfügung stellen, das die gesamte Seite bearbeitet. Wenn Sie jedoch einen zu bearbeitenden Abschnitt angeben, wird von Mediawiki NUR dieser Abschnitt extrahiert und zur Bearbeitung angezeigt.
Was mich stolpern lässt, ist wie Mediawiki einzelne Abschnitte aussortiert? Soweit ich weiß, speichert MW die Abschnitte nicht einzeln - es speichert jede GESAMTE VERSION jeder Version der Seite als einen großen Textblock (zusätzlich zu den Schiffsladungen mit Metadaten). Sucht MW einfach nach H1, H2, H3, ... Tags und verwendet diese, um den Text beim Rendern der Seite in Regionen aufzuteilen? Und wenn ein Benutzer einen überarbeiteten Abschnitt speichert, prüft er die aktuelle Version, parst den Text in Abschnitte und "injiziert" einfach die neue Version in eine Kopie der aktuellen Version, die er dann als NEUE Version speichert.
Ich gehe davon aus, dass mein Verständnis von MediaWiki stark vereinfacht ist, aber ich versuche nur eine ungefähre Vorstellung zu bekommen.
Danke!
Dies könnte ein Hinweis sein - von Ссылка . Die Abschnitte verwenden ein bestimmtes Markup als solches:
%Vor%Abschnitte können separat bearbeitet werden, indem Sie auf spezielle Bearbeitungsverknüpfungen mit der Bezeichnung "[Bearbeiten]" in der Kopfzeile klicken oder mit der rechten Maustaste auf die Abschnittsüberschrift klicken, je nachdem, welche Einstellungen vorgenommen wurden. Dies wird "Sektionsbearbeitungsfunktion" genannt (Voreinstellungen - & gt; Bearbeiten - & gt; "Sektionsbearbeitung über [Bearbeiten] -Links aktivieren"). Mit der Bereichsbearbeitungsfunktion gelangen Sie über eine URL wie
auf eine BearbeitungsseiteBeachten Sie, dass hier Abschnittsnummern verwendet werden, nicht Abschnittsüberschriften; Unterabschnitte haben eine einzelne Nummer, z. Abschnitt 2.1 kann mit 3 nummeriert sein, Abschnitt 3 ist mit 4 nummeriert usw. Sie können solche URLs auch direkt in die Adressleiste Ihres Browsers eingeben.
Es sieht also so aus, als hätte der Parser eine Anzahl von Abschnitten im Inhaltsverzeichnis und verwendet dann das Tag =, um den bestimmten Text in den Editor einzufügen.
Hier sind einige der verwendeten Tabellen:
Seitentabelle - ( Ссылка ) - Jede Seite in einer MediaWiki-Installation hat hier einen Eintrag, der sie identifiziert Titel
DieRevisionstabelle enthält Metadaten für jede Bearbeitung einer Seite innerhalb des Wikis. Bei jeder Bearbeitung einer Seite wird eine Revisionszeile erstellt, in der Informationen wie der Benutzer, der die Änderung vorgenommen hat, der Zeitpunkt, zu dem die Änderung vorgenommen wurde, und ein Verweis auf den neuen Wikitext in der Texttabelle enthalten sind.
Text Table - enthält den Wikitext einzelner Seitenüberarbeitungen.
Der Inhalt von Seiten wird als BLOBs gespeichert. Also muss es binär analysieren.
Hoffe, das hilft.
Tags und Links parsing php content-management-system mediawiki