dat-ssg é uma ferramenta de linha de comando que usa configuração em uma pasta para baixar sites com wget e publicar o conteúdo em:
netlifydat Antes do dat-ssg , para hospedar um site no dat você pode editá-lo manualmente ou configurar um gerador de site estático e um sistema de CI para fazer a publicação. Isto, no entanto, impede o uso de qualquer cms. Seja Ghost, Wordpress, Drupal ou qualquer outro sistema de publicação dinâmico. Com dat-ssg você pode finalmente começar a usar esses sistemas e hospedar o site para ser acessível através de dat .
Também é bastante útil se você quiser usar hospedagem de site estático mais barata que seja bem implantada em um CDN global.
Para dat-ssg você precisa ter duas pastas: a _"configuration-folder" e a "work-folder" .
.out e .error para o processo de cada configuração. dat-ssg precisa wget e git disponíveis na linha de comando. wget é usado para baixar o site, git é usado para acionar uma publicação apenas se o site tiver mudado.
dat-ssg reescreverá os arquivos baixados (por exemplo, meta tags e links) para parecerem corretos quando hospedados no destino.
dat-ssg é um aplicativo de nó e pode ser executado rapidamente usando
$ npx dat-ssg --work-folder ./work --configuration-folder ./configO processo procurará quaisquer alterações na pasta de configuração e iniciará um processo para cada arquivo.
Para configuração você pode simplesmente adicionar um arquivo com final .js à pasta de configuração.
O arquivo precisa exportar um objeto javascript parecido com este:
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
}
}Cada vez que você alterar o arquivo, o processo será reiniciado e uma implantação será acionada.
Alguns CMS adicionam parâmetros de consulta a links javascript ou css, por exemplo: assets/main/css/main.css?v=25be6de7e6 Esses arquivos serão transformados com wget para: assets/main/css/main.css@v=25be6de7e6.css .
Você pode especificar as configurações de cache em netlify.config para armazenar os arquivos em cache "para sempre":
[[ headers ]]
for = " /*@v=* "
[ headers . values ]
cache-control = " public, max-age=31536000 " A primeira vez que uma configuração é buscada criará um novo dat na pasta de trabalho. Este novo dat terá um novo link, portanto, toda vez que você excluir a pasta, será necessário atualizar os links de replicação e os links usados nas configurações do dat-dns.
Este projeto recebeu financiamento do programa de investigação e inovação Horizonte 2020 da União Europeia no âmbito do Projeto LEDGER financiado ao abrigo do acordo de subvenção n.º 825268.
MIT