Previous: , Up: Каналы   [Contents][Index]


6.11 Написание новостей канала

Авторы канала могут захотеть сообщить своим пользователям информацию о важных изменениях в канале. Вы можете отправить им письмо по электронной почте, но это не удобно.

Вместо этого каналы могут предоставлять файл новостей; когда пользователи канала запускают guix pull, этот файл новостей автоматически читается, и guix pull --news может отображать объявления, которые соответствуют новым зафиксированным коммитам, если таковые имеются.

Для этого авторы каналов должны сначала объявить имя файла новостей в своем файле .guix-channel:

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

Сам файл новостей, etc/news.txt в этом примере, должен выглядеть примерно так:

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

В то время как файл новостей использует синтаксис Scheme, избегайте называть его расширением .scm, иначе он будет выбран при построении канала и выдаст ошибку, поскольку это недопустимый модуль. Кроме того, вы можете переместить модуль канала в подкаталог и сохранить файл новостей в другом каталоге.

Файл состоит из списка news entries. Каждая запись связана с коммитом или тегом: она описывает изменения, сделанные в этом коммите, возможно, также и в предыдущих коммитах. Пользователи видят записи только при первом получении коммита, на который ссылается запись.

Поле title должно быть однострочным, а body может быть произвольно длинным, и оба могут содержать Texinfo разметку (see Overview in GNU Texinfo). И заголовок, и тело являются списком языковых тегов/кортежей сообщений, что позволяет комманде guix pull отображать новости на языке, соответствующем языку пользователя.

Если вы хотите перевести новости, используя рабочий процесс на основе gettext, вы можете извлечь переводимые строки с помощью xgettext (see xgettext Invocation in GNU Gettext Utilities). Например, если вы сначала пишете новости на английском языке, команда ниже создает PO-файл, содержащий строки для перевода:

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

Подводя итог, да, вы можете использовать свой канал в качестве блога. Но будьте осторожны, это не совсем то, что могут ожидать ваши пользователи.


Previous: , Up: Каналы   [Contents][Index]