Ein Tool zum Abrufen von Daten von der Trello-API und zum lokalen Speichern als statische JSON-Dateien.
Mit Tresor können Sie Trello als redaktionelles UI- und Content-Management-System nutzen. Dadurch wird eine Trello-Liste in einen Satz statischer JSON-Dateien umgewandelt, die als API für eine statische Website bereitgestellt werden können.
Dies ist ein Tool zum Erstellen Ihres nächsten JAMstack-Projekts, das es Ihrer Codebasis ermöglicht, vollständig statisch und serverlos zu sein, aber auch die Vorteile eines Content-Management-Systems bietet, da Ihre Website automatisch aktualisiert wird, wenn sich der Inhalt ändert. Eine Codebasis für statische Dateien kann vollständig auf einem CDN gehostet werden, wodurch die Infrastrukturkosten gesenkt und Leistung und Verfügbarkeit erhöht werden.
Trello bietet eine sehr einfache Benutzeroberfläche und eine gut gestaltete API mit allen notwendigen Funktionen, um den Inhalt hinter einer kleinen statischen Website, einem Blog oder einer Einzelseitenanwendung zu verwalten:
Tresor liest die Trello-API und speichert die Ergebnisse lokal als statische JSON-Dateien in einer Ordnerstruktur, die die Nutzung der Daten als HTTP-API-Endpunkte ermöglicht. Die statischen Dateien können entweder in den Client-Build-Ordner kopiert oder an anderer Stelle (CDNs, Github Pages, Netlify, ...) gehostet werden, sodass der Client die Daten dann auf RESTful-Weise nutzen kann.
Durch das Einrichten von Continous Delivery ist es dann möglich, einen Webhook zu konfigurieren, um einen neuen Build auszulösen, wenn der von Ihrer API bereitgestellte Inhalt geändert wird.
(Überspringen Sie dies mit npx)
Anforderungen:
Laufen:
npm install tresor
Anforderungen:
{"name":"Public","id":"5b193b1a8a23ebb893ab7a02"}
Sie können den API-Schlüssel, das API-Token, die Listen-ID und jede andere Option wie folgt übergeben:
config.json
Führen Sie den folgenden Befehl aus, um die JSON-Dateien herunterzuladen :
tresor
Übergabe der Konfigurationsoptionen als Umgebungsvariablen:
API__KEY=asenoiuwqeWNEUfnewoeFNWQetr3295023rer API__TOKEN=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 API__LIST=124f9hue2983232rj32052s tresor
oder als Befehlszeilenargumente:
tresor --api.key=asenoiuwqeWNEUfnewoeFNWQetr3295023rer --api.token=ASnqoiwqenmNEWOIWNrffnklef3io2r032rnewfoid3T439543 --api.list=124f9hue2983232rj32052s
Die Optionen, die Sie zur Datei config.json
hinzufügen oder über Befehlszeilen-/Umgebungsvariablen übergeben können, sind:
Name | Beschreibung | Standard |
---|---|---|
api.url | Die Basis-API-URL | "https://api.trello.com/1/" |
api.key | Der API-Schlüssel ( erforderlich ) | |
api.token | Das API-Token ( erforderlich ) | |
api.list | Die IDs (als Array) der zu beobachtenden Trello-Listen ( erforderlich ) | |
dest.root | Der Ordner, in dem alle JSON-Dateien gespeichert werden | "static/" |
dest.alle | Der Dateiname des JSON, der alle Einträge enthält | "all.json" |
Zieltags | Der Dateiname des JSON, der alle Tags enthält | "tags.json" |
Zielpost | Der Ordnername, in dem alle einzelnen Beiträge gespeichert werden | "post" |
Zieltag | Der Ordnername, in dem alle einzelnen Tags gespeichert werden | "tag" |
Zielbilder | Der Ordnername, in dem alle Bilder gespeichert werden | false (keine Bilder herunterladen) |
Felder.Felder | Die anzuzeigenden Beitragsfelder | ["id", "name", "dateLastActivity", "desc", "idList", "labels"] |
Felder.Mitglieder | Benutzerinformationen anzeigen oder nicht (wahr oder falsch) | true |
Felder.member_fields | Die anzuzeigenden Benutzerfelder | ["fullName", "bio"] |
Felder.Anhänge | Informationen zu Anhängen anzeigen oder nicht (wahr oder falsch) | true |
Felder.attachment_fields | Die anzuzeigenden Anhangsfelder | ["previews", "url"] |
pagination.entriesPerPage | Die Anzahl der Einträge in einem einzelnen JSON | 20 |
Die Standarddatei config.json
sieht wie folgt aus:
{
"api" : {
"url" : " https://api.trello.com/1/ "
},
"dest" : {
"root" : " static " ,
"all" : " pages " ,
"tags" : " tags " ,
"tagList" : " tags.json " ,
"post" : " post " ,
"tag" : " tag " ,
"images" : false
},
"fields" : {
"fields" : [ " id " , " name " , " dateLastActivity " , " desc " , " idList " , " labels " ],
"members" : true ,
"member_fields" : [ " fullName " , " bio " ],
"attachments" : true ,
"attachment_fields" : [ " previews " , " url " ]
},
"pagination" : {
"entriesPerPage" : 20
}
}
Weitere Informationen zu den auswählbaren Feldern finden Sie in der Karte, im Anhang und in der Benutzerdokumentation.
Dieses Modul ist für die Verwendung mit npx
geeignet, sodass Sie das Modul nicht installieren und zu Ihren Paketabhängigkeiten hinzufügen müssen. Fügen Sie einfach npx tresor
zu Ihrem prebuild
Hook in der package.json
Ihres Moduls hinzu:
{
[ ... ]
"scripts" : {
"prebuild" : " npx tresor " ,
[ ... ]
}
}
Erledigt!
Wenn Sie tresor --help
ausführen, wird das folgende Benutzerhandbuch gedruckt:
$ tresor --help
A tool to fetch remote API data and store them locally as static JSON files
Usage
$ tresor
Run tresor
$ tresor --help
Print this help message
$ tresor --version
Print the current version
Examples
$ tresor --api.key=XXX --api.token=XXX --api.list=XXX
Run the script to request the remote JSON files and save
them locally.
You can alternatively pass the configuration options as
environment variables or writing them to config.json.
See the online documentation for further information