dat-ssg adalah alat baris perintah yang menggunakan konfigurasi dalam folder untuk mengunduh situs web dengan wget dan mempublikasikan kontennya ke:
netlifydat Sebelum dat-ssg , untuk menghosting situs web di dat Anda dapat mengeditnya dengan tangan atau menyiapkan generator situs statis dan sistem CI untuk melakukan penerbitan. Namun hal ini mencegah penggunaan cms apa pun. Baik itu Ghost, Wordpress, Drupal atau sistem penerbitan dinamis lainnya. Dengan dat-ssg Anda akhirnya dapat mulai menggunakan sistem tersebut dan menghosting situs agar dapat diakses melalui dat .
Ini juga cukup berguna jika Anda ingin menggunakan hosting situs statis yang lebih murah dan dapat diterapkan dengan baik di cdn global.
Untuk dat-ssg Anda harus memiliki dua folder: _"folder-konfigurasi" dan "folder kerja" .
.out dan .error untuk proses setiap konfigurasi. dat-ssg membutuhkan wget dan git yang tersedia di baris perintah. wget digunakan untuk mendownload situs, git digunakan hanya untuk memicu publikasi jika situs telah berubah.
dat-ssg akan menulis ulang file yang diunduh (misalnya tag meta dan tautan) agar terlihat benar ketika dihosting di target.
dat-ssg adalah aplikasi node dan dapat dijalankan dengan cepat menggunakan
$ npx dat-ssg --work-folder ./work --configuration-folder ./configProsesnya akan mencari perubahan apa pun di folder konfigurasi dan memulai proses untuk setiap file.
Untuk konfigurasi Anda cukup menambahkan file dengan akhiran .js ke folder konfigurasi.
File tersebut perlu mengekspor objek javascript yang terlihat seperti ini:
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
}
}Setiap kali Anda mengubah file, proses akan dimulai ulang dan penerapan akan dipicu.
Beberapa CMS menambahkan parameter kueri ke tautan javascript atau css, misalnya: assets/main/css/main.css?v=25be6de7e6 File-file ini akan diubah dengan wget ke: assets/main/css/main.css@v=25be6de7e6.css .
Anda mungkin ingin menentukan pengaturan cache di netlify.config untuk menyimpan file "selamanya":
[[ headers ]]
for = " /*@v=* "
[ headers . values ]
cache-control = " public, max-age=31536000 " Pertama kali konfigurasi diambil akan membuat data baru di folder kerja. Data baru ini akan memiliki tautan baru, jadi setiap kali Anda menghapus folder tersebut, Anda perlu memperbarui tautan replikasi dan tautan yang Anda gunakan dalam pengaturan dat-dns Anda.
Proyek ini telah menerima pendanaan dari program penelitian dan inovasi Horizon 2020 Uni Eropa dalam kerangka Proyek LEDGER yang didanai berdasarkan perjanjian hibah No825268.
MIT