dat-ssg
ist ein Befehlszeilentool, das die Konfiguration in einem Ordner verwendet, um Websites mit wget
herunterzuladen und den Inhalt zu veröffentlichen:
netlify
dat
Vor dat-ssg
können Sie zum Hosten einer Website auf dat diese entweder manuell bearbeiten oder einen statischen Site-Generator und ein CI-System für die Veröffentlichung einrichten. Dies verhindert jedoch die Verwendung jeglicher cms. Sei es Ghost, Wordpress, Drupal oder ein anderes dynamisches Publishing-System. Mit dat-ssg
können Sie diese Systeme endlich nutzen und die Site so hosten, dass sie über dat
zugänglich ist.
Es ist auch sehr nützlich, wenn Sie günstigeres statisches Site-Hosting verwenden möchten, das sich gut in einem globalen CDN bereitstellen lässt.
Für dat-ssg
benötigen Sie zwei Ordner: den _"configuration-folder" und den "work-folder" .
.out
und .error
Dateien für den Prozess jeder Konfiguration. dat-ssg
benötigt wget
und git
in der Befehlszeile. wget
wird zum Herunterladen der Site verwendet, git
wird verwendet, um eine Veröffentlichung nur dann auszulösen, wenn sich die Site geändert hat.
dat-ssg
schreibt die heruntergeladenen Dateien (z. B. die Meta-Tags und Links) neu, damit sie korrekt aussehen, wenn sie auf dem Ziel gehostet werden.
dat-ssg
ist eine Knotenanwendung und kann mit schnell ausgeführt werden
$ npx dat-ssg --work-folder ./work --configuration-folder ./config
Der Prozess sucht nach Änderungen im Konfigurationsordner und startet einen Prozess für jede Datei.
Zur Konfiguration können Sie einfach eine Datei mit der Endung .js
zum Konfigurationsordner hinzufügen.
Die Datei muss ein Javascript-Objekt exportieren, das wie folgt aussieht:
module . exports = {
title : "My Site" , // Title to be used in the process, e.g. for the dat config file
description : "This is my homepage" , // Description used for the process, e.g. for the dat config file
domain : "mydomain.com" , // domain to download data from
https : true , // The domain support https
newDomain : "https://targetdomain.org" , // domain of the new site (needed for content-rewrites)
/*
* wget will download all files that are found at the domain's root but there may be extra roots to look for content.
* You need to specify all the roots
*/
roots : [
"/" ,
"/b.html" ,
"/c.html"
] ,
notFound : '/404/' , // Adds '/404/ to the roots and adds 404 configuration to the deployments (netlify, dat,...)
// Interval to look for updates
update : 1000 * 60 * 20 , // Update every 10 minutes
// The process will use following user name to make commits
git : {
email : "[email protected]" ,
name : "The Name"
} ,
// If you want to publish the page to netlify you need to specify this property, else you can skip it!
netlify : {
siteId : "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" , // Id, provided in the netlify setup
production : false , // Publish as production = true, else = false
/*
* Auth token as provided through the netlify user interface, can be also loaded through `process.env`
*/
authToken : "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
config : `# Optional configuration, see https://docs.netlify.com/configure-builds/file-based-configuration/#sample-file`
} ,
dat : {
// Time to push after changes, in which a hosting service can connect and download the latest update.
pushTime : 1000 * 60 * 2 // 2 minutes
}
}
Jedes Mal, wenn Sie die Datei ändern, wird der Prozess neu gestartet und eine Bereitstellung ausgelöst.
Einige CMS fügen Abfrageparameter zu Javascript- oder CSS-Links hinzu, z. B.: assets/main/css/main.css?v=25be6de7e6
Diese Dateien werden mit wget in Folgendes umgewandelt: assets/main/css/main.css@v=25be6de7e6.css
.
Möglicherweise möchten Sie die Cache-Einstellungen in netlify.config
festlegen, um die Dateien „für immer“ zwischenzuspeichern:
[[ headers ]]
for = " /*@v=* "
[ headers . values ]
cache-control = " public, max-age=31536000 "
Wenn eine Konfiguration zum ersten Mal abgerufen wird, wird ein neues Datum im Arbeitsordner erstellt. Dieses neue DAT verfügt über einen neuen Link. Daher müssen Sie jedes Mal, wenn Sie den Ordner löschen, die Replikationslinks und die Links, die Sie in Ihren DAT-DNS-Einstellungen verwendet haben, aktualisieren.
Dieses Projekt wurde aus dem Forschungs- und Innovationsprogramm Horizon 2020 der Europäischen Union im Rahmen des LEDGER-Projekts finanziert, das im Rahmen der Fördervereinbarung Nr. 825268 finanziert wird.
MIT