Geradores de Sites Estáticos
Transcript of Geradores de Sites Estáticos
![Page 1: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/1.jpg)
Geradores de Sites EstáticosEscrever o seu ou usar um pronto?Nilo Menezes (parte I)Fábio C. Barrionuevo da Luz (parte II)
![Page 2: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/2.jpg)
Parte I
Sites estáticos
Geradores de Sites estáticos customizados
![Page 3: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/3.jpg)
Por quê?
● Sistes dinâmicos tem um custo maior de manutenção● Com uma visitação moderada, pode se tornar rapidamente caro● Precisam de banco de dados● Tempo de resposta muito maior● Difícil de fazer cache
![Page 4: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/4.jpg)
Vantagens
● Precisam apenas do servidor web para funcionar● Mudança fácil de todas as páginas● Fácil de fazer cache
![Page 5: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/5.jpg)
Desvantagens
● Precisa programar● Configuração com arquivos texto● Mudanças não aparecem instantaneamente● Não podem gerar páginas customizadas por usuários, salvo usando
javascript
![Page 6: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/6.jpg)
Fazer o seu gerador
Vantagens:
● Fica do jeito que você quiser● Às vezes é mais fácil fazer que aprender um framework
Desvantagens:
● Ninguém para resolver seus problemas● Mais programação
![Page 7: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/7.jpg)
Requisição - Site Dinâmico
browser servidor web djangouwsgi
servidor de banco de
dados
arquivos
![Page 8: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/8.jpg)
Como uma página dinâmica é gerada?
● O Browser passa a requisição para o uwsgi● O uwsgi ativa a aplicação django● A requisição é recebida e processada pelo Middleware (django):
○ Autenticação○ Sessões
● O código da view é ativado● Depois de acessar o banco● Uma série de arquivos é aberta para compor a página final● A página é retornada para o cliente (passando pelo uwsgi e servidor web
novamente)
![Page 9: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/9.jpg)
Requisição - Páginas estáticas
browser servidor web arquivosservidor web(cache)
![Page 10: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/10.jpg)
Como uma página estática é gerada?
Ela não é gerada a cada requisição
O servidor web recebe a requisição do browser e inicia a transferência do arquivo imediatamente
Beneficia-se do cache do Sistema Operacional
Permite o uso de caches externos (Ex.: Cloudfront)
![Page 11: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/11.jpg)
Todo site pode ser estático?
● Não, mas boa parte dos sites pode● Tentar separar a parte estática da dinâmica
![Page 12: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/12.jpg)
Site python.nilo.pro.br
● Solução customizada● Jinja2 para templates com localização● Scripts customizados para geração do site (python 3)● Arquivo de configuração centralizado● Integração com Disqus● Geração de Javascript (sites de venda)
![Page 13: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/13.jpg)
Partes principais
● Templates● Listagens e Exercícios● Arquivos de tradução● Scripts
○ Geração de páginas de primeiro nível○ Geração de listagens exercícios○ Atualização de cabeçalhos
![Page 14: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/14.jpg)
Parte II
Geradores de sites estáticos
![Page 15: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/15.jpg)
Como funciona
*Markdown (.md)*reStructuredText(.rst)
*outra linguagem de marcaçãoHTML
gera/compila/constroisaidaentrada
![Page 16: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/16.jpg)
Há várias opções
Lista enorme em:
http://www.staticgen.com/
https://staticsitegenerators.net/
![Page 17: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/17.jpg)
Em Python
Pelican
Mkdocs
Cactus
Sphinx
Lektor
Nikola
![Page 18: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/18.jpg)
Parte II
Pelican + Travis-ci + GitHub Pages
=
Seu site online sem custos de hospedagem
![Page 19: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/19.jpg)
http://docs.getpelican.com/
![Page 20: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/20.jpg)
https://travis-ci.org
![Page 21: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/21.jpg)
https://help.github.com/categories/github-pages-basics/
![Page 22: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/22.jpg)
www.github.com/seu_usuario/seu_usuario.github.io travis-ci
seu_usuario.github.io
github pages(branch master ou
gh-pages)
seu pc (repositorio local)
![Page 23: Geradores de Sites Estáticos](https://reader034.fdocumentos.tips/reader034/viewer/2022042605/589d9d001a28abf9498bc77e/html5/thumbnails/23.jpg)
Tutorial sobre pelican:http://pythonclub.com.br/criando-sites-estaticos-com-pelican.html
Tutorial sobre Pelican + travis-ci + github pageshttp://pythonclub.com.br/github-pages-com-pelican-e-travis-ci.html