Les nouvelles sur Linux-France

vendredi 2 novembre 2001


Comment publier une nouvelle sur Linux-France ?

(pour tout le monde)

Pour publier une nouvelle, vous devez disposer d'un compte Unix sur Linux-France. Toutes vos nouvelles se trouvent dans un fichier "niouzes.xml" dans votre répertoire $HOME/html/ sur lfo.

Exemple de fichier "niouzes.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>
<nouvelles>
    <news date="20011007">
        Nouvelle version de ma <a href="qqpart.html">documentation</a>.
    </news>
    <news date="20010910">
        Première publication de ma <a href="qqpart.html">documentation</a>.
    </news>
</nouvelles>

Explications.

"niouzes.xml" est au format XML. Il doit toujours commencer par cette déclaration :

<?xml version="1.0" encoding="ISO-8859-1"?>

Le fichier doit être encodé en ISO-8859-1. Les textes que vous tapez suivent normalement cet encodage par défaut. N'utilisez pas d'autre encodage pour le moment, puisque le script de génération ne fait aucune vérification, aucune conversion.

La balise "<nouvelles>" ne sert qu'à contenir toutes les nouvelles, elle doit être ouverte en première et fermée en dernière.

Vient ensuite l'élément le plus intéressant : "<news>". Leur nombre n'est pas limité. Chaque élément "<news>" correspond à une nouvelle.

Cette balise possède un attribut "date" obligatoire au format "AAAAMMJJ" (A = année, M = mois, J = jour) qui correspond à la date de la nouvelle et sert à trier les nouvelles.

Faites attention au format ! L'année, le mois puis le jour. S'il est écrit "20012309" au lieu de "20010923", alors la nouvelle n'apparaîtra pas.

Le texte entre <news> et </news> est en HTML. Ce texte est recopié tel quel dans les pages générées, dans une balise <TD> (cas de "nouvelles.html"), dans une balise <LI> (cas de la section "Quoi d'neuf" de la page d'accueil), ou dans d'autres balises si certains contributeurs utilisent le méchanisme dans leurs sections. Presque toutes les balises sont autorisées, mais je pense qu'il est préférable de se contenter des balises suivantes du HTML 4.01 : <TT> <I> <B> <BIG> <SMALL> <EM> <STRONG> <DFN> <CODE> <SAMP> <KBD> <VAR> <CITE> <ABBR> <ACRONYM> <A> <BR> <Q> <SUB> <SUP> <BDO>

N'utilisez pas les appels de caractères du HTML (ex. &eacute;) car ils ne sont pas reconnus par XML. Entrez directement les caractères puisque le fichier est codé en ISO-8859-1, qui définit les caractères accentués.

Ne mettez pas de balise <P> au début de votre texte, le script de génération s'en charge.

Le fichier "niouzes.xml" est au format XML, donc sensible aux différences majuscules/minscules. Les exemples suivants retournent une erreur (valable avec n'importe quel autre balise) :

<A HREF="qqpart.html">test</a>
<a HREF="qqpart.html">test</A>

Il faut écrire :

<A HREF="qqpart.html">test</A>
<a HREF="qqpart.html">test</a>

Que vous écriviez les attributs (ex. "href") en majuscules ou en minuscules n'a en revanche pas d'importante.

Il est inutile de supprimer les nouvelles du fichier, le roulement est automatique. Il sera peut-être conseillé de supprimer les nouvelles du fichier XML au bout d'un certain temps, mais n'en faites rien pour le moment.

L'ordre d'apparition des nouvelles dans le fichier n'est pas important puisqu'elles sont triées avec l'attribut "date".

Si vous changez le texte d'une nouvelle, la modification sera répercutée à la génération suivante. Si vous la supprimez, elle disparaîtra des autres pages.

Comment mettre en place un système de nouvelles pour votre rubrique ?

(pour ceux qui veulent jouer avec le script dans leur rubrique)

Les nouvelles sont lues et regroupées par le script "getmynews.py".

$ ./getmynews.py --help
Ce script est libre, voir la source pour plus d'informations
Usage: getmynews [options] fichier1 fichier2 ...
Options:
  --xml | --html | --neuf         format des données générées par le script
  -v,     --debug                 mode "debug", le script est plus bavard
  -a age, --max-news-age=age      définit l'âge maximal des nouvelles à afficher
  -d num, --max-news-display=num  nombre maximum de nouvelles à afficher
  -h,     --help                  affiche ce message

Les fichiers passés en arguments sont les fichiers XML à lire. Le résultat est affiché sur la sortie standard. Une simple redirection le place dans un fichier.

Le format "--neuf" peut-être utilisé pour obtenir une sortie du type "Quoi d'neuf" de la page d'accueil de Linux-France. Le format "--html" donne un fichier complet en HTML 4.01. Le format "--xml" donne un fichier complet en XML, suivant le même format que les fichiers "niouzes.xml". Dans tous les cas, les nouvelles sont triées par date, la plus récente en haut.

Voici comment vous pouvez utiliser les nouvelles dans votre rubrique, mais n'oubliez pas qu'il existe d'autres manières de procéder :

La génération de "nouvelles.xml" et "nouvelles.html" (ou n'importe quel autre nom qui vous plaît) n'est pas obligatoire. Vous pourriez n'utiliser que :

  <!--#exec cmd="getmynews.py --neuf file1.xml file2.xml"-->

Dans ce cas, il n'y aurait pas d'historique.

Si vous voulez générer l'historique à chaque consultation de la page, créez un fichier "nouvelles.html" HTML qui ne contient que la ligne :

  <!--#exec cmd="getmynews.py --html file1.xml file2.xml"-->