Como o www.debian.org é feito

A “árvore web” do Debian, uma coleção de diretórios e arquivos que compreendem nosso site, está localizada no diretório /org/www.debian.org/www em www-master.debian.org. A maioria das páginas são arquivos HTML normais e estáticos (não produzidos dinamicamente com CGI ou scripts PHP), para facilitar o espelhamento.

O site é gerado em um dos três processos:

Uma atualização automática (dos repositórios CVS e outras fontes) é feita seis vezes por dia.

Se você gostaria de contribuir para o site, não adicione ou edite simplesmente arquivos no diretório www/. Contate os webmasters primeiro.

Todos os arquivos e diretórios pertencem ao grupo debwww e podem ser escritos por este grupo, assim o time web pode modificar os arquivos. O modo 2775 nos diretórios significa que todos os arquivos criados naqueles diretórios vão herdar o grupo - neste caso debwww. Espera-se que todos no grupo debwww configurem 'umask 002' de modo que os arquivos sejam criados com permissões de escrita de grupo.


Aparência & comportamento

Nós damos às páginas a mesma aparência e comportamento através do uso do WML para todos os detalhes de adição de cabeçalhos e rodapés. Embora uma página .wml possa parecer HTML a primeira vista, HTML é somente um dos tipos de informação extra que podem ser usados em .wml. Depois que o WML termina de rodar seus vários filtros sobre um arquivo, o produto final é HTML puro. Para dar uma ideia do poder do WML, você pode incluir código Perl em uma página para permitir-lhe fazer quase qualquer coisa.

Note no entanto que o WML checa (e corrige automagicamente algumas vezes) apenas a validade mais básica de seu código HTML. Você deve instalar weblint e/ou tidy para validar seu código HTML.

Nossas páginas web atualmente seguem o padrão HTML 4.01 Strict. Nós pretendemos, no entanto, mudar para XHTML. Assim sendo, todos os editores web são fortemente encorajados a escrever as tags HTML em minúsculas, colocar tags de fechamento onde for apropriado, etc., para tornar a transição tão suave quanto for possível.

Todos que estejam trabalhando muito nas páginas deveriam instalar o WML de modo que possam testar para se certificarem que o resultado é aquele que desejam. Se você está rodando Debian, pode instalar o pacote wml facilmente. Leia as páginas em usando WML para mais informações.

Fontes

Os arquivos fonte para as páginas web estão armazenadas em CVS. O CVS é um sistema de controle de versões que nos permite manter um log de o que, quem, quando, e porque alterações ocorreram. Ele também é um jeito seguro de controlar a edição concorrente de arquivos fonte por muitos autores, o que é crucial para nós porque o time web do Debian é grande em tamanho,

Se você não é familiar com este software provavelmente desejará ler as páginas usando CVS.

O primeiro diretório webwml no repositório CVS contém diretórios nomeados segundo os idiomas nos quais o site está disponível, dois makefiles e vários scripts. Os nomes dos diretórios de traduções devem estar em inglês e minúsculas (ou seja, "german" ao invés de "Deutsch").

O mais importante dos dois makefiles é o Makefile.common, que, como o nome diz, contém algumas regras comuns que são aplicadas incluindo este arquivo nos outros makefiles.

Cada um dos diretórios de idioma contém makefiles, arquivos fonte WML e subdiretórios. Os nomes de arquivos e diretórios não são alterados, mantendo os links corretos para todos os idiomas. Os diretórios também podem conter arquivos .wmlrc que contém informações úteis para o WML.

O diretório webwml/english/template contém arquivos WML especiais que nós chamamos de templates, porque eles podem ser referenciados por todos os outros arquivos usando o comando #use.

Para que as alterações nos templates se propaguem para os arquivos que os utilizam, os arquivos têm dependências via makefile. Uma vez que a grande maioria dos arquivos usa o template "template", tendo a linha "#use wml::debian::template" no topo, a dependência genérica (aquela para todos os arquivos) é esse mesmo template. Claro que há exceções para essa regra.

Scripts

Os scripts são escritos principalmente em shell ou Perl. Alguns deles são avulsos, e alguns estão integrados em arquivos fonte WML.

Os fontes para os principais scripts de reconstrução do www-master estão no repositório Git debwww/cron.

Os fontes para os scripts de reconstrução do packages.debian.org estão no repositório Git webwml/packages.

Como ajudar

Nós convidamos todos os interessados em nos ajudar a fazer o site do Debian tão bom quanto ele possa ser. Se você têm informações valiosas relacionadas ao Debian que você acredita que estão faltando nas nossas páginas, compartilhe-as conosco e nós veremos se elas serão incluídas.

Nós sempre precisamos de ajuda com o design das páginas (a respeito de gráficos e layouts), e para manter nosso HTML limpo, também. Nós rodamos os seguintes testes em todo o site regularmente:

A ajuda é sempre bem vinda na leitura dos logs acima e correção dos problemas.

Os logs de construção do site podem ser encontrados em http://www-master.debian.org/build-logs/.

Se você é fluente em inglês, nós gostaríamos que você revisse as nossas páginas e nos relatasse todos os erros.

Se você fala outro idioma, você pode nos ajudar a traduzir as páginas para o seu idioma. Se alguma tradução já foi feita, mas tem algum problema, olhe a lista de coordenadores de tradução e fale com o líder do seu idioma sobre corrigi-lo. Se você gostaria de traduzir páginas, veja a página sobre esse tópico para mais informações.

Há também um arquivo TODO, cheque-o.

Como não ajudar

[Q] Eu quero por um recurso web extravagante em www.debian.org, eu posso?

[R] Não. Nós queremos que o www.debian.org seja tão acessível quanto possível, assim sendo:

[Q] Eu tenho esta ideia legal. Você pode habilitar FOO no HTTPD do www.debian.org, por favor?

[R] Não. Nós queremos fazer a vida dos administradores que espelham www.debian.org fácil, assim sendo, sem recursos especiais do HTTPD. Não, nem mesmo SSI. Uma exceção foi feita para a negociação de conteúdo, porque ela é a única maneira robusta de servir múltiplos idiomas.