Ich mag Markdown sehr und möchte Github verwenden, um den Inhalt dort zu speichern (auch mit dem zusätzlichen Vorteil, dass jeder eine PR einreichen kann).
Ich bin nicht an einem Markdown-Editor für Joomla interessiert, nur an einer Erweiterung, mit der Markdown-Dateien von Github abgerufen und in HTML umgewandelt werden können (zusätzlich, um sie für einen bestimmten Zeitraum zwischenzuspeichern).
Ähnlich wie bei JoomlaTools.
#__content
onContentPrepare
. Ich bin mir nicht sicher, ob das das richtige Ereignis wäre, aber du bekommst das Wesentliche :)onContentPrepare
Arbeiten, aber es muss jedes Mal eine Verbindung zu Github hergestellt werden. Ich habe eine andere Idee.Antworten:
Soweit ich sehen kann, ist die einzige Möglichkeit, die Informationen in einem Repository wirklich abzurufen, manuell, es sei denn, Sie möchten die Commits und alles durchsehen und herausfinden, was wohin geht. In beiden Fällen ist es am besten, irgendwo eine Kopie des Repos zu haben (automatische Pull-Updates und all das, damit lokale Dateien im Rohformat vorliegen).
Der beste Weg ist also, einen Cronjob zu haben, der von Zeit zu Zeit versucht, Updates in ein bestimmtes Verzeichnis zu ziehen, und die Verzeichnisstruktur für Ihr Menü zu verwenden und die Dateien anzuzeigen. Um sie zu analysieren, verwenden Sie am besten Ihre eigene Bibliothek. Mit Joomla haben Sie jedoch die JGithub-Klasse, die so verwendet werden kann.
Eine kleine Warnung, die die API zum Rendern verwendet, sodass Probleme beim Einlaufen der API-Grenzwerte auftreten können. Sie können auch oauth verwenden, um es zu umgehen, aber für einen so einfachen Bedarf ist es am besten, eine Bibliothek zu verwenden.
Wenn die Dateien im Rohformat lokal sind, ist es weitaus weniger ein Leistungsproblem, sie auch im laufenden Betrieb zu analysieren, sodass weniger Caching erforderlich ist, da alles, was wirklich passiert, darin besteht, dass Sie eine Datei trotzdem lesen, wenn dies erforderlich ist um es dann noch zwischenzuspeichern, denn zu diesem Zeitpunkt wäre es sowieso eine angepasste Erweiterung für Joomla, die Sie in Joomlas Caching einbinden könnten.
Ich lasse nur
JModel
Dinge automatisch für mich zwischenspeichern, daher ist mein Beispiel oben möglicherweise nicht ganz korrekt, aber es sollte nah genug sein, um irgendwohin zu gelangen.Meine Beispiele hier sind sehr vage, nur ein paar Anmerkungen dazu, wie ich damit umgehen würde. Habe es einfach gehalten, da ich nicht 100% sicher bin, dass ich die Frage vollständig verstehe, obwohl dies zumindest jemandem helfen sollte :)
quelle
Aktueller Status: Proof of Concept, nicht öffentlich veröffentlicht.
Geschichte
Ich begann an meiner eigenen Lösung mit dem temporären Namen gitcms zu arbeiten . Hier ist die Architektur auf den Punkt gebracht:
So funktioniert es:
Github-Repository
Jedes Mal, wenn ein Commit auf das Repository übertragen wird, wird ein Ereignis ausgelöst. Es ist möglich, dieses Ereignis mit einem Webhook abzufangen, mit dem grundsätzlich einige Metadaten im JSON-Format zur weiteren Verarbeitung an eine Adresse gesendet werden können.
Gitcms
Als Middleware-Lösung implementiert, ist sie nicht CMS-spezifisch. Es empfängt das Push-Ereignis von Github, ermittelt, welche Dateien geändert wurden, ruft die Dateien von Github im Rohformat ab und konvertiert sie in HTML. Nach Abschluss der Konvertierung wird eine Nachricht an die registrierten Adapter gesendet.
Adapter
Dies ist CMS-spezifisch und kann die Nachricht von der Middleware interpretieren. Am Ende muss es Artikel erstellen, aktualisieren und löschen.
Noch offenen Fragen
quelle
Wenn ich es wäre, würde ich mit der für Sie geeigneten Methode abrufen (file_get_contents vielleicht, ich mag Curl, aber was auch immer) und dann die Parsedown-Klasse verwenden, um es in HTML umzuwandeln.
http://parsedown.org/
Joomla hat eine eigene Github-Klasse, aber ich habe nicht nachgesehen, was sie tatsächlich tut.
quelle