Précédent: , Monter: Canaux   [Table des matières][Index]


7.11 Écrire des nouveautés de canaux

Les auteur.e.s de canaux peuvent occasionnellement vouloir communiquer à leurs utilisateur·rice·s des informations au sujet de changements importants dans le canal. Vous pourriez leur envoyer un courriel, mais ce n’est pas pratique.

Au lieu de cela, les canaux peuvent fournir un fichier de nouvelles ; lorsque les utilisateur·rice·s du canal exécutent guix pull, ce fichier de nouvelles est automatiquement lu et guix pull --news peut afficher les annonces qui correspondent aux nouveaux commits qui ont été récupérés, le cas échéant.

Pour cela, les auteur·e·s de canaux doivent en premier lieu déclarer le nom du fichier de nouvelles dans leur fichier .guix-channel :

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

Le fichier de nouvelles lui-même, etc/news.txt dans cet exemple, doit ressembler à quelque chose comme ceci :

(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!"))))

Tandis que le fichier de nouvelles utilise la syntaxe Scheme, évitez de le nommer avec une extension .scm, sinon il sera récupéré lors de la construction du canal et produira une erreur puisqu’il ne s’agit pas d’un module valide. Vous pouvez également déplacer le module du canal dans un sous-répertoire et stocker le fichier de nouvelles dans un autre répertoire.

Le fichier consiste en une liste de news entries. Chaque entrée est associée à un commit ou un tag : elle décrit les changements faits dans ce commit, éventuellement dans les commits précédents comme il faut. Les utilisateur·rice·s ne voient les entrées que la première fois qu’il·elle·s obtiennent le commit auquel l’entrée se réfère.

Le titre doit être un résumé d’une ligne tandis que body peut être arbitrairement long, et les deux peuvent contenir des balises Texinfo (voir Overview dans GNU Texinfo). Le titre et le corps sont tous deux une liste de tuples de balises/messages de langue, ce qui permet à guix pull d’afficher les nouvelles dans la langue qui correspond à la locale de l’utilisateur.

Si vous souhaitez traduire des actualités en utilisant un déroulement basé sur gettext, vous pouvez extraire des chaînes traduisibles avec xgettext (voir xgettext Invocation dans GNU Gettext Utilities). Par exemple, en supposant que vous écriviez d’abord les entrées de nouvelles en anglais, la commande ci-dessous crée un fichier PO contenant les chaînes à traduire :

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

Pour résumer, oui, vous pourriez utiliser votre chaîne comme un blog. Mais attention, ce n’est pas tout à fait ce à quoi vos utilisateur·rice·s pourraient s’attendre.


Précédent: URL primaire, Monter: Canaux   [Table des matières][Index]