dat-ssg
adalah alat baris perintah yang menggunakan konfigurasi dalam folder untuk mengunduh situs web dengan wget
dan mempublikasikan kontennya ke:
netlify
dat
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 ./config
Prosesnya 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