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.
$github = new JGithub;
$result = $github->markdown->render('text here most likely the contents of a file');
echo $result; //will be html
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.
$cache = JCache::getInstance();
//data = rendered output, file is the path (dot separated is best) and extensionName is the custom extension
$cache->store($data,$file,$extensionName);
//then it can be called/checked like this
$cache->get($file,$extensionName);
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 :)
#__content