Anterior: , Acima: Canais   [Conteúdo][Índice]


6.12 Escrevendo notícias do canal

Os autores do canal podem ocasionalmente querer comunicar aos seus usuários informações sobre mudanças importantes no canal. Você enviaria um e-mail para todos eles, mas isso não é conveniente.

Em vez disso, os canais podem fornecer um arquivo de notícias; quando os usuários do canal executam guix pull, esse arquivo de notícias é lido automaticamente e guix pull --news pode exibir os anúncios que correspondem aos novos commits que foram extraídos, se houver.

Para fazer isso, os autores do canal devem primeiro declarar o nome do arquivo de notícias em seu arquivo .guix-channel:

(channel
  (version 0)
  (news-file "etc/news.txt"))

O arquivo de notícias em si, etc/news.txt neste exemplo, deve ser parecido com isto:

(channel-news
  (version 0)
  (entry (tag "the-bug-fix")
         (title (en "Fixed terrible bug")
                (fr "Oh la la"))
         (body (en "@emph{Good news}!  It's fixed!")
               (eo "Certe ĝi pli bone funkcias nun!")))
  (entry (commit "bdcabe815cd28144a2d2b4bc3c5057b051fa9906")
         (title (en "Added a great package")
                (ca "Què vol dir guix?"))
         (body (en "Don't miss the @code{hello} package!"))))

Enquanto o arquivo de notícias estiver usando a sintaxe Scheme, evite nomeá-lo com uma extensão .scm ou então ele será pego ao construir o canal e gerará um erro, pois não é um módulo válido. Como alternativa, você pode mover o módulo do canal para um subdiretório e armazenar o arquivo de notícias em outro diretório.

O arquivo consiste em uma lista de entradas de notícias. Cada entrada é associada a um commit ou tag: ela descreve as alterações feitas neste commit, possivelmente em commits anteriores também. Os usuários veem as entradas somente na primeira vez que obtêm o commit ao qual a entrada se refere.

O campo title deve ser um resumo de uma linha, enquanto body pode ser arbitrariamente longo, e ambos podem conter marcação Texinfo (veja Overview em GNU Texinfo). Tanto o título quanto o corpo são uma lista de tuplas de tag/mensagem de idioma, o que permite que guix pull exiba notícias no idioma que corresponde à localidade do usuário.

Se você quiser traduzir notícias usando um fluxo de trabalho baseado em gettext, você pode extrair strings traduzíveis com xgettext (veja xgettext Invocation em GNU Gettext Utilities). Por exemplo, supondo que você escreva entradas de notícias em inglês primeiro, o comando abaixo cria um arquivo PO contendo as strings a serem traduzidas:

xgettext -o news.po -l scheme -ken etc/news.txt

Para resumir, sim, você pode usar seu canal como um blog. Mas cuidado, isso é não é bem o que seus usuários podem esperar.


Anterior: URL principal, Acima: Canais   [Conteúdo][Índice]