2. Recommandations pour rédiger

En général, lors de la création de la documentation reST pour le projet QGIS, veuillez suivre les Consignes de style de documentation Python. Pour plus de commodité, nous fournissons ci-dessous un ensemble de règles générales sur lesquelles nous nous appuyons pour rédiger la documentation QGIS.

2.1. Rédiger la Documentation

2.1.1. Titres de chapitre

À chaque page web de la documentation correspond un fichier .rst.

Les différentes parties qui structurent le texte sont identifiées par leur titre qui est souligné (et surligné pour le premier niveau). Les titres de même niveau doivent utiliser le même caractère de soulignement. Dans la documentation QGIS, voici les styles à utiliser pour le chapitre, la section, la sous-section et la mini section.

********
Chapter
********

Section
=======

Subsection
----------

Minisec
.......

Subminisec
^^^^^^^^^^

2.1.2. Listes

Les listes sont utiles pour structurer le texte. Voici quelques règles simples communes à toutes les listes:

  • Démarrer tous les éléments de la liste avec une majuscule

  • N’utilisez pas de ponctuation après les éléments de liste qui ne contiennent qu’une seule phrase simple

  • Utilisez le point (.) Comme signe de ponctuation pour les éléments de liste qui se composent de plusieurs phrases ou d’une seule phrase composée

2.1.3. Balises en ligne

Vous pouvez utiliser des balises pour souligner les éléments.

  • Interface de menu : pour indiquer une séquence de sélections dans un menu, y compris la sélection de sous-menus et le choix d’une opération particulière, ou n’importe quelle sous-séquence d’une telle séquence.

    :menuselection:`menu --> submenu`
    
  • Boîtes de dialogue et titres d’onglet: étiquettes présentées dans le cadre d’une interface utilisateur interactive, y compris les titres de fenêtre, les titres d’onglet, les étiquettes de bouton et d’option.

    :guilabel:`title`
    
  • Noms de fichiers et répertoires

    :file:`README.rst`
    
  • Icônes avec texte contextuel

    |icon| :sup:`popup_text`
    

    (voir image ci-dessous).

  • Raccourcis clavier

    :kbd:`Ctrl+B`
    

    affichera Ctrl+B

    Lors de la description des raccourcis clavier, les conventions suivantes doivent être utilisées:

    • Les lettres sont affichées en majuscules: S

    • Les touches spéciales sont affichées avec une première lettre majuscule: Esc

    • Les combinaisons de touches sont affichées avec un signe + entre les touches, sans espaces: Shift+R

  • Texte utilisateur

    ``label``
    

2.1.4. Étiquettes / références

Les ancres à l’intérieur du texte peuvent être utilisées pour créer des hyperliens vers des sections ou des pages.

L’exemple ci-dessous crée la référence d’une section (e.g., Libellé/titre de la référence)

.. _my_anchor:

Label/reference
---------------

Pour appeler la référence dans la même page, utilisez

see my_anchor_ for more information.

qui renverra :

voir my_anchor pour plus d’informations.

Notez qu’il sautera à la ligne / chose qui suit «l’ancre». Vous n’avez pas besoin d’utiliser des apostrophes, mais vous devez avoir des lignes vides après l’ancre.

Une autre façon de créer un lien accessible depuis n’importe où dans la documentation est d’utiliser :ref:.

see :ref:`my_anchor` for more information.

ce qui créera un lien avec la légende à la place (dans ce cas le titre de cette section!):

voir Étiquettes / références pour plus d’informations.

Donc, référence 1 (my_anchor) et référence 2 (Étiquettes / références). Étant donné que la référence affiche souvent une légende complète, il n’est pas vraiment nécessaire d’utiliser le mot section. Notez que vous pouvez également utiliser une légende personnalisée pour décrire la référence:

see :ref:`Label and reference <my_anchor>` for more information.

qui renvoie:

voir Étiquette et référence pour d’avantage de détails.

2.1.5. Figures et images

2.1.5.1. Illustrations

Pour insérer une image, utilisez

.. figure:: /static/common/logo.png
   :width: 10 em

qui renvoie

../../_images/logo.png

2.1.5.2. Remplacement

Vous pouvez mettre une image dans du texte ou ajouter un alias à utiliser partout. Pour utiliser une image à l’intérieur d’un paragraphe, créez d’abord un alias dans le fichier source/substitutions.txt:

.. |nice_logo| image:: /static/common/logo.png
               :width: 1 em

puis appelez-le dans votre paragraphe:

My paragraph begins here with a nice logo |nice_logo|.

Voici comment l’exemple sera affiché:

Mon paragraphe commence ici par un joli logo nice_logo.

Pour permettre un aperçu de rendu dans GitHub aussi proche que possible du rendu HTML, vous devrez également ajouter l’appel de remplacement d’image à la fin du fichier que vous avez modifié. Cela peut être fait en le copiant-collant depuis substitutions.txt ou en exécutant le script scripts/find_set_subst.py.

Note

Actuellement, pour assurer la cohérence et aider à l’utilisation des icônes QGIS, une liste d’alias est construite et disponible dans le chapitre Substitutions.

2.1.5.3. Figure

.. _figure_logo:

.. figure:: /static/common/logo.png
   :width: 20 em
   :align: center

   A caption: A logo I like

Le résultat ressemble à ceci :

../../_images/logo.png

Fig. 2.17 Un titre : Un logo que j’aime

Pour éviter les conflits avec d’autres références, commencez toujours les ancres de figures par _figure_ et utilisez des termes qui se connectent facilement à la légende de la figure. Bien que seul l’alignement centré soit obligatoire pour l’image, n’hésitez pas à utiliser d’autres options pour les figures (telles que width, height, scale …) si nécessaire.

The scripts will insert an automatically generated number before the caption of the figure in the generated HTML and PDF versions of the documentation.

Pour utiliser un titre (voir Mon titre) insérez juste un texte indenté après une ligne blanche dans le bloc de la figure.

Une figure peut être référencée à l’aide de l’étiquette de référence comme ceci:

see :numref:`figure_logo`

renders like this:

voir Fig. 2.17

This is the preferred way of referencing figures.

Note

For :numref: to work, the figure must have a caption.

It is possible to use :ref: instead of :numref: for reference, but this returns the full caption of the image.

see :ref:`figure_logo`

renders like this:

voir Un titre : Un logo que j’aime

It is also possible (but not recommended) to use the following mechanism:

(see Figure_logo_).

It will render like this:

(voir Figure_logo).

You can use uppercase if you want. This mechanism can only be used in the same .rst file.

2.1.5.4. Tables

A simple table can be coded like this

=======  =======  =======
x        y        z
=======  =======  =======
1        2        3
4                 5
=======  =======  =======

It will render like this:

x

y

z

1

2

3

4

5

Use a \ (backslash) followed by an empty space to leave an empty space.

You can also make more complicated tables and reference them:

.. _my_drawn_table:

+---------------+--------------------+
| Windows       | macOS              |
+---------------+--------------------+
| |win|         | |osx|              |
+---------------+--------------------+
| and of course not to forget |nix|  |
+------------------------------------+

My drawn table, mind you this is unfortunately not regarded as a caption

You can reference it like this: my_drawn_table_.

Le résultat :

Windows

macOS

win

osx

et bien sûr, ne pas oublier nix

Ma table dessinée, remarquez que ce n’est malheureusement pas considéré comme une légende

Vous pouvez le référencer comme ceci my_drawn_table.

Pour des tables encore plus complexes, il est plus simple d’utiliser list-table:

.. list-table::
   :header-rows: 1
   :widths: 20 20 20 40

   * - What
     - Purpose
     - Key word
     - Description
   * - **Test**
     - ``Useful test``
     - complexity
     - Geometry.  One of:

       * Point
       * Line

Le résultat :

Quoi

Fonction

Mot-clé

Description

Test

test utile

complexité

Géométrie. Un des:

  • Point

  • Ligne

2.1.6. Index

Un index est un moyen pratique pour aider le lecteur à trouver des informations dans un document. La documentation QGIS fournit quelques indices essentiels. Il existe quelques règles qui nous aident à fournir un ensemble d’indices vraiment utiles (cohérents, consistant et vraiment connectés les uns aux autres):

  • Un index doit être lisible par l’homme, compréhensible et traduisible; un index peut être créé à partir de nombreux mots, mais vous devez éviter tout caractère inutile _, ``- … pour les lier, c’est-à-dire Chargement des couches au lieu de chargement_couches ou chargementCouches.

  • Ne mettez en majuscule que la première lettre de l’index, sauf si le mot a une orthographe particulière. Par exemple, Chargement des couches, Génération Atlas, WMS, pgsql2shp.

  • Gardez un œil sur la Liste d’index existante afin de réutiliser l’expression la plus pratique avec l’orthographe correcte et d’éviter les doublons inutiles.

Plusieurs balises d’index existent dans RST. Vous pouvez utiliser la balise inline :index: dans le texte normal:

QGIS can load several :index:`Vector formats` supported by GDAL/OGR ...

Ou vous pouvez utiliser le balisage de niveau bloc .. index:: qui renvoie au début du paragraphe suivant. En raison des règles mentionnées ci-dessus, il est recommandé d’utiliser la balise de niveau bloc:

.. index:: WMS, WFS, Loading layers

Il est également recommandé d’utiliser des paramètres d’index tels que single, pair et see, afin de construire une table d’index plus structurée et interconnectée. Voir Génération d’index pour plus d’informations sur la création d’index.

2.1.7. Commentaires Spéciaux

Parfois, vous souhaiterez peut-être mettre l’accent sur certains points de la description, soit pour avertir, rappeler ou donner des conseils à l’utilisateur. Dans la documentation QGIS, nous utilisons des directives spéciales reST telles que .. warning::, .. seealso::`,`​​`.. note:: et .. tip::. Ces directives génèrent des cadres qui mettent en valeur vos commentaires. Voir Balisage de niveau de paragraphe pour plus d’informations. Un titre clair et approprié est requis pour les avertissements et les conseils.

.. tip:: **Always use a meaningful title for tips**

   Begin tips with a title that summarizes what it is about. This helps
   users to quickly overview the message you want to give them, and
   decide on its relevance.

2.1.8. Extraits de code

Vous pouvez également donner des exemples et insérer des extraits de code. Dans ce cas, écrivez le commentaire sous une ligne avec la directive :: insérée. Pour un meilleur rendu, en particulier pour appliquer une surbrillance des couleurs au code en fonction de son langage, utilisez la directive de bloc de code, par ex. .. code-block:: xml. Plus de détails sur Affichage du code.

Note

Bien que les textes des cadres de notes, de conseils et d’avertissement soient traduisibles, sachez que les cadres de blocs de code ne permettent pas la traduction. Évitez donc les commentaires non liés au code et gardez les commentaires aussi courts que possible.

2.1.9. Notes de pied de page

Remarque: les notes de bas de page ne sont reconnues par aucun logiciel de traduction et elles ne sont pas non plus correctement converties au format PDF. Donc, si possible, n’utilisez pas de notes de bas de page dans la documentation.

C’est pour créer une note de bas de page (montrant comme exemple [1] _)

blabla [1]_

qui pointera vers :

1

Mise à jour des extensions principales

2.2. Les Captures d’écrans

2.2.1. Ajouter de nouvelles captures d’écran

Voici quelques conseils pour créer de nouvelles captures d’écran attrayantes. Les images doivent être placées dans un dossier image (img/) qui se trouve dans le même dossier que le fichier de référence .rst.

  • Vous pouvez trouver des projets QGIS préparés qui sont utilisés pour créer des captures d’écran dans le dossier ./Qgis-projects de ce référentiel. Cela facilite la reproduction de captures d’écran pour la prochaine version de QGIS. Ces projets utilisent le QGIS Sample Data (alias Alaska Dataset), qui doit être placé dans le même dossier que le référentiel de documentation QGIS.

  • Réduisez la fenêtre à l’espace minimal nécessaire pour afficher la fonctionnalité (prendre tout l’écran pour une petite fenêtre modale est exagéré)

  • Moins d’encombrement, mieux c’est (pas besoin d’activer toutes les barres d’outils)

  • Ne les redimensionnez pas dans un éditeur d’images; la taille sera définie dans les fichiers .rst si nécessaire (réduction des dimensions sans augmenter correctement la résolution)

  • Coupez l’arrière-plan

  • Rendre les coins supérieurs transparents si l’arrière-plan n’est pas blanc

  • Réglez la résolution de la taille d’impression sur 135 dpi (par exemple, dans Gimp, définissez la résolution d’impression Image ▶ Taille d’impression et enregistrez). De cette façon, les images seront à leur taille d’origine en html et à une bonne résolution d’impression dans le PDF. Vous pouvez également utiliser la commande ImageMagick convert pour faire un lot d’images:

    convert -units PixelsPerInch input.png -density 135 output.png
    
  • Enregistrez-les sous .png (pour éviter les artefacts .jpeg)

  • La capture d’écran doit montrer le contenu selon ce qui est décrit dans le texte

Astuce

Si vous utilisez Ubuntu, vous pouvez utiliser la commande suivante pour supprimer la fonction de menu global et créer des écrans d’application plus petits avec des menus:

sudo apt autoremove appmenu-gtk appmenu-gtk3 appmenu-qt

2.2.2. Captures d’écran traduites

Voici quelques conseils supplémentaires pour ceux qui souhaitent créer des captures d’écran pour un guide d’utilisateur traduit:

Les images traduites doivent être placées dans un dossier img/<your_language>/. Utilisez le même nom de fichier que la capture d’écran «originale» en anglais.

2.3. Documenter les algorithmes de traitement

Si vous souhaitez écrire de la documentation sur les algorithmes de traitement, tenez compte des recommandations suivantes:

  • Les fichiers d’aide de l’algorithme de traitement font partie du Guide de l’utilisateur de QGIS, utilisez donc le même formatage que le Guide de l’utilisateur et toute autre documentation.

  • Chaque documentation d’algorithme doit être placée dans le dossier provider et le fichier group correspondants, par ex. l’algorithme Voronoi polygon appartient au fournisseur QGIS et au groupe vectorgeometry. Le fichier correct pour ajouter la description est donc: source/docs/user_manual/processing_algs/qgis/vectorgeometry.rst.

    Note

    Avant de commencer à rédiger le guide, vérifiez si l’algorithme est déjà décrit. Dans ce cas, vous pouvez améliorer la description existante.

  • Il est extrêmement important que chaque algorithme ait une ancre qui correspond au nom du fournisseur + le nom unique de l’algorithme lui-même. Cela permet au bouton Aide d’ouvrir la page d’aide de la bonne section. L’ancre doit être placée au-dessus du titre, par ex. (voir aussi la section Étiquettes / références)

    .. _qgisvoronoipolygons:
    
    Voronoi polygons
    ----------------
    

    Pour connaître le nom de l’algorithme, vous pouvez simplement passer la souris sur l’algorithme dans la boîte à outils Traitement.

  • Évitez d’utiliser « Cet algorithme fait ceci et cela … » comme première phrase de la description de l’algorithme. Essayez d’utiliser des expressions plus générales comme

    Takes a point layer and generates a polygon layer containing the...
    
  • Évitez de décrire ce que fait l’algorithme en répliquant son nom et veuillez ne pas répliquer le nom du paramètre dans la description du paramètre lui-même. Par exemple, si l’algorithme est un polygone de Voronoï, envisagez de décrire la couche d'entrée comme une couche à partir de laquelle calculer le polygone.

  • Indiquez dans la description si l’algorithme a un raccourci par défaut dans QGIS ou prend en charge l’édition sur place.

  • Ajouter des images ! Une image vaut mieux que mille mots ! Utilisez le format .png et suivez les instructions générales pour la documentation (voir la section Figures et images pour plus d’informations). Placez le fichier image dans le dossier correct, c’est-à-dire le dossier img à côté du fichier .rst que vous modifiez.

  • Si nécessaire, ajoutez des liens dans la section « Voir aussi » qui fournissent des informations supplémentaires sur l’algorithme (par exemple, des publications ou des pages Web). N’ajoutez la section « Voir aussi » que s’il y a vraiment quelque chose à voir. Comme bonne pratique, la section « Voir aussi » peut être remplie de liens vers des algorithmes similaires.

  • Expliquez clairement les paramètres et les sorties des algorithmes: inspirez-vous des algorithmes existants.

  • Évitez de dupliquer la description détaillée des options de l’algorithme. Ajoutez ces informations dans la description du paramètre.

  • Évitez d’ajouter des informations sur le type de géométrie vectorielle dans l’algorithme ou la description des paramètres, car ces informations sont déjà disponibles dans les descriptions des paramètres.

  • Ajoutez la valeur par défaut du paramètre, par exemple:

    * - **Number of points**
      - ``NUMBER_OF_POINTS``
      - [number]
    
        Default: 1
      - Number of points to create
    
  • Décrivez le type d’entrée pris en charge par les paramètres. Il existe plusieurs types disponibles, vous pouvez en choisir un:

    Paramètre/type de sortie

    Description

    Indicateur visuel

    Couche vecteur de points

    vecteur : point

    pointLayer

    Couche vecteur de lignes

    vecteur : ligne

    lineLayer

    Couche vecteur de polygones

    vecteur : polygone

    polygonLayer

    Couche vectorielle générique

    vector: any

    Champ vecteur numérique

    tablefield: numeric

    fieldFloat

    Champ vecteur texte

    tablefield: string

    fieldText

    Champ générique de vecteur

    tablefield: any

    Couche raster

    raster

    rasterLayer

    Bande raster

    raster band

    Fichier HTML

    html

    Couche de table

    table

    tableLayer

    Expression

    expression

    expression

    Géométrie de point

    coordinates

    Etendue

    extent

    SCR

    crs

    setProjection

    Enumeration

    enumeration

    selectString

    Liste

    liste

    Nombre

    number

    selectNumber

    Caractère

    string

    inputText

    Booléen

    boolean

    checkbox

    Chemin d’accès au dossier

    folder

    Fichier

    file

    Table

    matrix

    Couche

    layer

    Même type de sortie que le type d’entrée

    same as input

    Definition

    definition

    Point

    point

    MultipleLayers

    multipleLayers

    Plage

    range

    AuthConfig

    authconfig

    Mesh

    mesh

    Mise en pagef

    layout

    Element mise en page

    layoutitem

    Couleur

    color

    Échelle

    scale

  • Étudiez un algorithme existant et bien documenté, et copiez toutes les dispositions utiles.

  • Lorsque vous avez terminé, suivez simplement les instructions décrites dans Contribuer étape par étape pour valider vos modifications et effectuer une requete d’amelioration

Voici l’exemple d’un algorithme pour vous aider dans la mise en forme et la description

.. _qgiscountpointsinpolygon:

Count points in polygon
-----------------------
Takes a point and a polygon layer and counts the number of points from the
point layer in each of the polygons of the polygon layer.
A new polygon layer is generated, with the exact same content as the input
polygon layer, but containing an additional field with the points count
corresponding to each polygon.

.. figure:: img/count_points_polygon.png
  :align: center

  The labels in the polygons show the point count

An optional weight field can be used to assign weights to each point.
Alternatively, a unique class field can be specified. If both options
are used, the weight field will take precedence and the unique class field
will be ignored.

``Default menu``: :menuselection:`Vector --> Analysis Tools`

Parameters
..........

.. list-table::
   :header-rows: 1
   :widths: 20 20 20 40

   * - Label
     - Name
     - Type
     - Description
   * - **Polygons**
     - ``POLYGONS``
     - [vector: polygon]
     - Polygon layer whose features are associated with the count of
       points they contain
   * - **Points**
     - ``POINTS``
     - [vector: point]
     - Point layer with features to count
   * - **Weight field**

       Optional
     - ``WEIGHT``
     - [tablefield: numeric]
     - A field from the point layer.
       The count generated will be the sum of the weight field of the
       points contained by the polygon.
   * - **Class field**

       Optional
     - ``CLASSFIELD``
     - [tablefield: any]
     - Points are classified based on the selected attribute and if
       several points with the same attribute value are within the
       polygon, only one of them is counted.
       The final count of the points in a polygon is, therefore, the
       count of different classes that are found in it.
   * - **Count field name**
     - ``FIELD``
     - [string]

       Default: 'NUMPOINTS'
     - The name of the field to store the count of points
   * - **Count**
     - ``OUTPUT``
     - [vector: polygon]

       Default: [Create temporary layer]
     - Specification of the output layer type (temporary, file,
       GeoPackage or PostGIS table).
       Encoding can also be specified.

Outputs
.......

.. list-table::
   :header-rows: 1
   :widths: 20 20 20 40

   * - Label
     - Name
     - Type
     - Description
   * - **Count**
     - ``OUTPUT``
     - [vector: polygon]
     - Resulting layer with the attribute table containing the
       new column with the points count