23
Geradores de Sites Estáticos Escrever o seu ou usar um pronto? Nilo Menezes (parte I) Fábio C. Barrionuevo da Luz (parte II)

Geradores de Sites Estáticos

  • Upload
    vucong

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Geradores de Sites Estáticos

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

Parte I

Sites estáticos

Geradores de Sites estáticos customizados

Page 3: Geradores de Sites Estáticos

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

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

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

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

Requisição - Site Dinâmico

browser servidor web djangouwsgi

servidor de banco de

dados

arquivos

Page 8: Geradores de Sites Estáticos

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

Requisição - Páginas estáticas

browser servidor web arquivosservidor web(cache)

Page 10: Geradores de Sites Estáticos

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

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

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

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

Parte II

Geradores de sites estáticos

Page 15: Geradores de Sites Estáticos

Como funciona

*Markdown (.md)*reStructuredText(.rst)

*outra linguagem de marcaçãoHTML

gera/compila/constroisaidaentrada

Page 16: Geradores de Sites Estáticos

Há várias opções

Lista enorme em:

http://www.staticgen.com/

https://staticsitegenerators.net/

Page 17: Geradores de Sites Estáticos

Em Python

Pelican

Mkdocs

Cactus

Sphinx

Lektor

Nikola

Page 18: Geradores de Sites Estáticos

Parte II

Pelican + Travis-ci + GitHub Pages

=

Seu site online sem custos de hospedagem

Page 19: Geradores de Sites Estáticos

http://docs.getpelican.com/

Page 20: Geradores de Sites Estáticos

https://travis-ci.org

Page 21: Geradores de Sites Estáticos

https://help.github.com/categories/github-pages-basics/

Page 22: Geradores de Sites Estáticos

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

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