Como o www.debian.org é feito
Aparência & comportamento
O site web do Debian é uma coleção de diretórios e arquivos localizados em
/org/www.debian.org/www
em www-master.debian.org. A maioria das páginas são arquivos HTML
estáticos. Eles não contêm elementos dinâmicos como scripts CGI ou PHP porque
o site é espelhado.
O site web do Debian usa o Website Meta Language
(WML) para gerar as
páginas HTML, incluindo cabeçalhos e rodapés, títulos, índice de conteúdos, etc.
Embora um arquivo .wml
possa parecer HTML à primeira vista, o HTML
é apenas um dos tipos de informações extras que podem ser usadas em WML. Você
também pode incluir código Perl dentro de uma página e, portanto, fazer quase
tudo.
Depois que o WML termina de executar seus vários filtros em um arquivo, o produto final é o verdadeiro HTML. Por favor observe que, embora o WML verifique (e às vezes corrija automaticamente) a validade básica do seu código HTML, você deve instalar uma ferramenta como weblint e/ou tidy como verificador de sintaxe e de estilo mínimo.
Qualquer pessoa que esteja contribuindo regularmente para o site web do Debian
deve instalar o WML para testar o código e certificar-se de que as páginas
HTML resultantes pareçam corretas. Se você estiver executando o Debian,
simplesmente instale o pacote wml
.
Para obter mais informações, consulte a página usando WML.
Fontes
Usamos Git para armazenar os fontes do site web do Debian. O sistema de controle de versão nos permite acompanhar todas as alterações e podemos ver quem fez o commit do quê e quando, e até porque. O Git oferece uma maneira segura de controlar a edição simultânea de arquivos-fonte por vários(as) autores(as) — uma tarefa crucial para a equipe web do Debian, porque ela tem muitos(as) participantes.
Aqui estão algumas informações básicas sobre como os fontes são estruturados:
- O diretório mais superior no repositório Git (
webwml
) contém diretórios nomeados de acordo com o idioma das respectivas páginas, dois Makefiles e vários scripts. Os nomes de diretório para páginas traduzidas devem estar em inglês e usar letras minúsculas, por exemplogerman
e nãoDeutsch
. - O arquivo
Makefile.common
é especialmente importante, pois contém algumas regras comuns que são aplicadas incluindo este arquivo em outros Makefiles. - Todos os subdiretórios para os diferentes idiomas também contêm Makefiles,
vários arquivos-fonte
.wml
e subdiretórios adicionais. Todos os nomes de arquivos e diretórios seguem um certo padrão, para que cada link funcione para todas as páginas traduzidas. Alguns diretórios também contêm um arquivo de configuração.wmlrc
com comandos e preferências adicionais para WML. - O diretório
webwml/english/template
contém arquivos WML especiais que funcionam como modelos. Eles podem ser referenciados a partir de todos os outros arquivos com o comando#use
.
Por favor, observe: para garantir que as alterações nos templates sejam
propagadas para os arquivos que os incluem, os arquivos têm dependências de
Makefile neles.
A grande maioria dos arquivos usa o modelo template
,
a dependência genérica, então eles contêm a seguinte linha na parte superior:
#use wml::debian::template
Claro, há exceções a essa regra.
Scripts
Os scripts são escritos principalmente em shell ou Perl. Alguns deles não funcionam sozinhos, e alguns estão integrados dentro de arquivos-fonte WML.
- webmaster-team/cron:
Este repositório Git contém todos os scripts usados para atualizar o site web do
Debian, ou seja, os fontes para os scripts de reconstrução.
www-master
. - webmaster-team/packages:
Este repositório Git contém os fontes para os scripts de reconstrução do
packages.debian.org
.
Gerando o site web
WML, templates e scripts shell ou Perl são todos os ingredientes que você precisa para gerar o site web do Debian:
- A maioria é gerada usando WML (do repositório Git).
- A documentação é gerada com DocBook XML (repositório Git
ddp
) ou com scripts cron dos pacotes Debian correspondentes. - Algumas partes do site web são geradas com scripts usando outras fontes, por exemplo, as páginas de (des)assinatura da lista de discussão.
Uma atualização automática (do repositório Git e outras fontes para a webtree) está sendo executada seis vezes por dia. Além disso, realizamos regularmente as seguintes verificações em todo o site:
Os logs atualizados de construção do site web podem ser encontrados em https://www-master.debian.org/build-logs/.
Se você quiser contribuir com o site, simplesmente não edite
arquivos no diretório www/
ou adicione novos itens. Em vez disso,
por favor primeiro entre em contato com os(as)
webmasters.
Como ajudar
Encorajamos qualquer pessoa a ajudar com o site web do Debian. Se você tem informações valiosas relacionadas ao Debian que acha que estão faltando, por favor entre em contato — veremos se poderão ser incluídas. Além disso, por favor, dê uma olhada no mencionado acima sobre logs de construção e veja se você tem sugestões para corrigir um problema.
Também estamos procurando pessoas que possam ajudar com o design (gráficos, layouts, etc). Se você é um(a) falante fluente de inglês, por favor considere revisar nossas páginas e relatar erros. Se fala outro idioma, talvez queira ajudar a traduzir páginas existentes ou corrigir bugs em páginas já traduzidas. Em ambos os casos, por favor consulte a lista de coordenadores(as) de tradução e entre em contato com a pessoa responsável. Para obter mais informações, consulte nossa página para tradutores(as).
Como não ajudar... (FAQ)
[P] Quero incluir este recurso sofisticado no site do Debian, posso?
[R] Não. Queremos que www.debian.org seja o mais acessível possível, então
- sem "extensões" específicas para navegador web,
- sem depender apenas de imagens. As imagens podem ser usadas para esclarecer, mas as informações em www.debian.org devem permanecer acessíveis através de um navegador web de modo texto, como o lynx.
[P] Tenho essa ideia legal que quero enviar. Você pode ativar foo ou bar no servidor HTTP de www.debian.org, por favor?
[A] Não. Queremos facilitar a vida dos(as) administradores(as) para espelhar o www.debian.org, então sem recursos HTTPD especiais, por favor. Não, nem mesmo SSI (Server Side Include). Uma exceção foi feita para negociação de conteúdo, porque essa é a única maneira robusta de atender a vários idiomas.