Rédiger une documentation efficace pour Discourse

:information_source: Discourse documentation is currently being reviewed and edited to align with this style guide. Not all documentation topics currently match up to this - we are working toward that as quickly as possible.

This is considered a living document that guides how Discourse documentation is written and formatted. This topic will be kept up to date as needed. If you are in doubt about any of the principles here, please post on the topic to discuss specifics.

The guiding principle behind this documentation style guide is to consider your readers and their needs when writing documentation - what do they want to accomplish? What is your goal for providing the content?

:eyes: Quick checklist when implementing the style guide:

  1. Meta block is present and correct
  2. Title is action-oriented
  3. All titles use sentence case
  4. Correct tags and categories are used
  5. Document is structured logically

When completing a document, review it to make sure all of those criteria are met.

Please take note of these text formatting guidelines:


Meta information

  • Document should belong to one and only one of the following categories:
    • Using Discourse
      • General user guides for non-administrative tasks
    • Site Management
      • Settings, plugins, content, and general site administration
    • Integrations
      • Guides for integrating other platforms with Discourse
    • Hosted Customers
      • Guides that are only relevant to hosted customers
    • Self-hosting
      • Guides that are only relevant to self-hosted sites
    • Developer Guides
      • Technical guides for developing on top of Discourse, including creating themes, theme components, and plugins
    • Contributing
      • Guides for contributing to the Discourse open-source project
  • Document should belong to one and only one of the following tags / document types:
    • #how-to
    • #explanation
    • #reference
    • #tutorial
  • Document may have any other applicable tags, with an absolute maximum of 5 tags on a single document

Meta block

All documents must have a block at the top that includes a short explanation of what the document is about as well as any additional relevant meta information, like what the user level requirements are, whether console access is required, or anything else. This will be formatted in a blockquote without a heading over it. Heres an example of what this must look like:

:bookmark: This is a guide for describing all available hidden site settings, how to enable them, and why you might want to adjust them.

:person_raising_hand: Required user level: Administrator

:computer: Console access required

Titles and headings

  • Make document titles action-oriented
    • Incorrect: “How to enable automatic titles for chat threads”
    • Correct: “Enabling automatic titles for chat threads”
  • Document titles should not be too long
  • For ‘how-to’ topics, make the title goal oriented
  • All titles must be specific and unique
  • Do not use punctuation or special characters in document titles, other than commas
  • Do not include emoji in document titles
  • Use sentence case for titles and headings - that means only the first word starts with a capital letter, along with proper nouns and any other words that would normally be capitalised
  • Do not use ampersands (&) in headings, rather use the full word (“and”)

General writing guidelines, tone, and grammar

  • Use second-person voice when referring to people reading the document - i.e. use “you”, not “we”
  • Use active voice as much as possible
    • Incorrect: “the button should be clicked”
    • Correct: “click the button”
  • Define acronyms and abbreviations when first used, if necessary provide an external link that provides more information
  • Use short sentences, and break up text using shorter paragraphs, headings, and lists
  • You can use **bold** and *italics* to emphasise key phrases or words, but don’t overuse them
  • Avoid using jargon or technical terms without explanations - if in doubt, err on the side of explaining
  • Use screenshots when describing a visual interface, such as a UI element
  • Don’t document or attempt to disclose future Discourse features, products, or services unless explicitly permitted
  • Use transition words such as therefore, although, and furthermore.
  • Use common contractions: it’s, you’ll, you’re, we’re, let’s
  • Infer timelessness in documentation - avoid words such as soon, new, now, latest, etc. that quickly become irrelevant
  • Don’t attribute human qualities to software or hardware
    • e.g. “If you pass an integer to this API, it will get angry and raise an error”
    • e.g. “Our friendly and ambitious AI bot will help solve all your problems”
  • When quoting text (including from the Discourse UI), use “quotation marks”
  • When quoting a URL, use backticks
  • When using an example domain use discourse.example.com
  • If it would be useful, you can use emojis at the start of a paragraph to highlight it. Do not use more than two or three of these in a single topic. Some example emojis you can use:
    • :information_source: - An informative note
    • :mega: - Announcement or notice
    • :warning: - A warning message
    • :exclamation: - Very important information
  • Avoid:
    • Unnecessary metaphors or humour
    • Cultural and regional references
    • Dictating or ordering procedures in a condescending tone - e.g. You must click Publish or You need to click Publish
    • Being overly polite. For example, Please click Publish
    • Using exclamation points unless absolutely needed
    • Capitalizing words where it is unnecessary
    • Excess use of the same phrases and pronouns

For end user documentation:
Maintain a friendly, informal tone, with a focus on being clear and concise in a knowledgeable manner. Get to the point promptly. Explain technical terms, but be careful not to be condescending. To ensure clarity, start by briefly specifying the context of the current topic.

For developer and technical documentation:
Maintain a direct and precise tone. Use the same tone you would for user documentation, but you can assume a higher level of technical knowledge in your readers.

Structure

  • Get to the point fast - lead with what’s most important
  • Include important keywords early in the document
  • Make reader choices and next steps obvious
  • Always use light markup to write documentation (This is already built into Discourse with Markdown-it).
  • Organize your documentation in a logical flow - start with an overview, followed by detailed sections, and a summary or conclusion if applicable
  • Use headings and subheadings to structure your content, making it easier for readers to scan and find specific information - use descending hierarchy in headings, starting with h2, and don’t skip levels
  • Provide links to related topics or sections within your documentation - this helps users find additional information without unnecessary searches

Links

  • Use meaningful text in links
    • Incorrect: “Click here to read the guide”
    • Correct: “Read the guide
  • Unless the format of the URL is important or instructive, don’t use a URL as link text - instead, use the page title or a description of the page
  • Link to external sites and sources instead of quoting or rewriting existing documentation
  • Ensure that the sites you link to are of high standard and quality
  • If the link downloads a file, explicitly mention it - also indicate the type of file being downloaded and a rough estimate of the file size

Code in documentation

  • Use block code with language-specific syntax highlighting when possible for large code examples
  • If it is not already self-explanatory, introduce a code example with an introductory sentence that initiates the example that follows - when in doubt, err on the side of explaining
  • Code examples should follow the best practices for writing code for the relevant coding language
  • Use inline code for expressing basic code attributes or when a full code block is not necessary, such as:
    • Attribute names and values
    • Class names
    • Command-line utility names
    • Data types
    • Environment variable names
    • Filenames, filename extensions, and paths
    • Folders and directories
    • HTTP verbs, status codes, and content-type values
    • Query parameter names and values
    • Text input
  • When you use a placeholder in code examples, commands, or other text, including an explanation for what the placeholder represents
    • Write an explanation for the first time you use the placeholder; if there are multiple placeholders or steps after the first use of that placeholder, you can explain the placeholder again
  • Provide an easy way for users or developers to copy and run code.
    • Show expected output, either in a separate section after the code example or by using code comments within the code example
  • Write secure code - never hard-code passwords, API Keys, or secure information in code

Procedures and step-by-step guides

  • Format procedures consistently, so readers can find them easily by scanning
  • Use a separate numbered entry for each step
  • Include actions that finalize a step, such as OK or Apply buttons
  • If the instruction appears in the same UI where the action occurs, it’s usually not necessary to provide location details
  • If you need to make sure the reader begins in the right place, provide a brief phrase at the beginning of the step

Accessibility and inclusivity

  • Use screenshots, diagrams, or videos where they add value, particularly for explaining complex steps or showing parts of an interface
  • Images should be used to back up text information, not replace it
  • Always use alt attributes for images
  • Always provide captions or transcripts for videos
  • Only use GIFs if you can fully explain the content in text
  • Choose simple images and crop extraneous detail
  • Use plain language and avoid figures of speech or idioms that might not be universally understood
  • Consider that your document will be used on a multitude of devices
  • Use gender-neutral language. Don’t use he, him, his, she, her, or hers while referencing people - to write around pronouns, you can:
    • Rewrite using the second person (you)
    • Rewrite the sentence to have a plural noun and pronoun
    • Use the words person or individual
    • Use articles the, an, or a instead of a pronoun
    • Use a plural pronoun such as they, their, or them, even if it references a single individual
  • When you’re writing about a real person, use the pronouns that person prefers
  • Be inclusive of gender identity, race, culture, religion, ability, age, sexual orientation, and socioeconomic class - include a wide variety of professions, cultures, educational settings, locales, and economic settings in examples
  • Avoid politicised content - in cases where political content needs to be included, remain neutral
  • Don’t make any generalisations about people, countries, and cultures, not even positive or neutral generalisations
  • Don’t write prejudiced and discriminatory content against any communities, especially minorities
  • Avoid qualitative terms related to historical events
  • Avoid using terms and metaphors associated with violence and military actions

Last edited by @hugh 2024-09-03T11:02:51Z

Last checked by @hugh 2025-03-10T03:50:30Z

Check documentPerform check on document:
8 « J'aime »

@hugh / @SaraDev
Je constate une légère incohérence ici concernant les titres.

Nous avons ces exemples :

Mais ensuite, nous disons ceci :

Si je soumets l’exemple « correct » au convertisseur, j’obtiens ceci à la place :

Enable Automatic Titles for Chat Threads

Devrions-nous mettre à jour notre exemple pour qu’il corresponde ?

aside

Si cela ne tenait qu’à moi, j’aurais pensé que nous opterions pour la casse de phrase, et je ne suis pas sûr de la raison pour laquelle nous avons « Chat Threads » en majuscules dans le titre du sujet actuel, donc je préférerais personnellement voir ceci :

Enable automatic titles for chat threads

Mais la cohérence est plus importante au final et je suppose que vous avez une bonne raison d’avoir choisi la recommandation actuelle.

1 « J'aime »

C’est une bonne remarque - je n’avais pas fait ce lien, mais c’est facile à mettre à jour. Cependant :

La spécification de la casse de titre était la mienne, car je trouve qu’elle est généralement plus propre et plus professionnelle. Je pense que c’est très subjectif, car Google et Microsoft disent tous deux d’utiliser la casse de phrase dans les titres de documentation. D’autres sites que j’ai trouvés disent également d’utiliser la casse de phrase, je vais donc revenir en arrière et mettre à jour l’exigence de casse là-bas.

3 « J'aime »

Je remarque également qu’ils disent d’utiliser la casse de phrase pour les titres et les en-têtes. (Je suis dans la même équipe).

Il semble que nous ne spécifions pas actuellement notre préférence pour les en-têtes. Ajoutons cela également pendant que nous y sommes.

1 « J'aime »

D’accord - Je vais l’ajouter ici pour le spécifier explicitement.

1 « J'aime »

OK, puisque je suis sur une lancée…

J’aime bien que nous disions ceci :

Mais dans le guide, nous avons cet exemple, actuellement :

Mon avis est qu’il est inutile de mettre une majuscule à “paramètres de site cachés” ici. (appel à l’autorité)

2 « J'aime »

J’apprécie l’appel :smile:

Oui, c’est un bon point - cet exemple a été tiré d’un document réel où nous avons utilisé le titre du document existant pour le décrire, et comme ce document utilisait la casse des titres, la référence l’a fait aussi. Avec le passage de la casse des titres à la casse des phrases, cette référence devrait également être mise à jour.

1 « J'aime »

J’ai apporté quelques modifications à ce guide de style suite à la conversation ci-dessus.

  • Titre du sujet modifié en casse de phrase
  • Titres modifiés en casse de phrase
  • Suppression d’une capitalisation inutile (Syntax)
  • Remplacement des esperluettes (&) dans les titres par « and »
  • Remplacement des barres obliques (/) dans les titres par des virgules ou des conjonctions

Ces deux dernières modifications n’ont pas été discutées — faites-moi savoir si elles semblent superflues ou en contradiction avec le guide (ou, alternativement, si nous devrions inclure ces directives dans le guide).

2 « J'aime »

J’aime les deux derniers - ils correspondent vraiment à l’esprit du reste du guide, et ils méritent d’être inclus dans le guide lui-même. Je vais les ajouter maintenant.

1 « J'aime »

Je suppose que les drapeaux pour étiqueter les documents dans d’autres langues font exception.

1 « J'aime »

En plus d’éviter les idiomes, j’ai toujours évité d’utiliser des contractions dans la documentation. Je pensais qu’elles rendaient la compréhension plus difficile pour les lecteurs non anglophones/non occidentaux. L’anglais est une langue étrange.

De plus ?

À un moment donné, nous (peut-être moi) avons commencé à utiliser du code en ligne pour faire référence aux paramètres du site. Par exemple : « Activez le paramètre de site discourse connect ». C’est peut-être la bonne approche, mais cela semble un peu orienté développeur.

Il pourrait être utile d’utiliser un nom de placeholder cohérent pour faire référence aux sites Discourse. Peut-être discourse.example.com ? Il y a une documentation qui fait référence au site Discourse comme sitename.com. Cela m’a vraiment dérouté.


Quelques conseils généraux d’écriture : lisez ce que vous avez écrit comme si vous étiez un membre de votre public cible (voyez comme les contractions sont délicates). Assurez-vous que vos hypothèses sur les connaissances préalables du public sont raisonnables.

Bien que j’apprécie de ne plus avoir une tonne de sujets de documentation qui me sont attribués, utiliser Discourse comme auteur de tous les sujets de documentation de l’équipe semble un peu froid.

Ce qui a rendu l’écriture amusante pour moi à nouveau, c’est le conseil de chercher des moyens de mettre un peu de soi dans tout ce que l’on écrit. Cela pourrait être n’importe quoi, votre ton de voix, vos hobbies, n’importe quoi… C’est un peu le contraire de ce qui est recommandé ici.

6 « J'aime »

Salut Simon ! :blob_wave:

J’allais voir comment cela se passerait, mais oui, je suis pareil, j’essaie d’éviter les contractions.

Hahaha, ouais… Je n’utiliserai aucun de ces mots dans la documentation, de peur de révéler mon :face_with_monocle:.

Absolument : Example Domains

C’est le point que je suis venu discuter ici ! :smiley:

Nous avons eu beaucoup d’échanges à ce sujet, et j’ai été ravi de voir cela inclus dans le guide de style par défaut.

Voici pourquoi je pense que c’est important : la production de documentation doit être accessible au plus grand nombre de membres de notre communauté que possible, y compris (surtout ?) nos membres de l’équipe Discourse.

Discourse est un logiciel de discussion sociale. Et une partie de la documentation est vraiment une conversation continue. Si je partage une pratique sur la façon dont j’intègre les membres dans ma communauté, je voudrais être présenté comme le « propriétaire » de ce sujet, afin de pouvoir répondre aux questions et développer le sujet.

D’un autre côté, si un client pose une question sur une fonctionnalité que nous n’avons jamais expliquée, j’aimerais pouvoir utiliser le guide de style et produire une documentation utile et générale, ce que je pense que le fait d’être le propriétaire du sujet rend plus difficile à publier.

De plus, si nous produisons de la documentation en dehors de Discourse (une intégration ou une production à partir de commentaires de code ou autre), avoir un « utilisateur de documentation » est probablement plus facile en tant que détail d’implémentation. :thinking:

Je ne pense pas que ce guide empêchera les gens d’injecter leur voix et leur personnalité, et d’héberger la discussion. Mais ce serait formidable si cela aidait plus de gens à prendre l’habitude de documenter, qui autrement ne le feraient pas (et nous pourrons alors les encourager à être plus personnels !) :smiley:

3 « J'aime »

Jusqu’à ce que nous ayons un moyen natif de gérer les documents localisés, je pense que préfixer le titre avec des drapeaux est le moyen le plus pratique de le faire, et une exception raisonnable à cette directive.

Je pense que ce genre de chose suscite des opinions et des préférences différentes, mais pour ce guide de style, nous nous en tenons aux normes industrielles acceptées. Encore une fois, les directives de Google et de Microsoft s’accordent toutes deux sur le fait qu’il est préférable d’utiliser des contractions courantes.

Cela dit, j’ai lu certains articles suggérant que l’utilisation de contractions négatives (comme “can’t”) pourrait rendre la compréhension plus difficile pour les non-anglophones. Nous allons examiner cela plus en détail et, si nécessaire, mettre à jour le guide de style en conséquence.

J’ai supprimé cet exemple ! :smile:

Oui, c’est très courant (pas seulement sur Discourse), mais je suis d’accord que ce n’est pas tout à fait correct. L’utilisation de guillemets serait préférable, je pense donc que je vais le préciser dans le guide de style.

C’est un excellent point - je vais l’ajouter au guide de style !

Merci pour ce retour ! @maiki a fait de bons commentaires ci-dessus, et je suis d’accord avec ce qu’il dit là. Pour ajouter à cela, je dirai que l’une des raisons pour lesquelles nous avons fait passer les documents officiels à @Discourse comme auteur est de leur donner un plus grand sentiment d’autorité pour les lecteurs, en particulier pour les personnes qui découvrent la documentation pour la première fois. C’est aussi l’impulsion derrière tout le guide de style en premier lieu.

Toute personne rédigeant de la documentation peut tout à fait injecter sa personnalité dans son écriture, et la discussion sur les sujets de documentation individuels ne disparaît pas, c’est donc toujours un bon endroit pour rendre les choses plus personnelles.

Tous ces commentaires sont grandement appréciés :slight_smile:

2 « J'aime »

Concernant la partie metablock du guide. Bien que les sujets de documentation en aient besoin selon le guide ci-dessus, tous les sujets n’en ont pas [1] et ils ne sont pas toujours cohérents, voici quelques exemples tirés de quelques guides que j’ai trouvés.

Personnellement, j’aime bien « Tous les utilisateurs ».

Je ne voulais pas changer cela sur les sujets avant de recueillir des commentaires :smiley:


  1. peut-être que cela dépend du contexte du sujet ? ↩︎

4 « J'aime »

Tous les documents @Discourse sont en cours de traitement et, espérons-le, tous auront un jour (:crossed_fingers:). Bonne remarque sur l’incohérence cependant. Je ne suis pas sûr de celui que nous choisirons, mais nous nous assurerons certainement d’en choisir un et de nous y tenir. :slight_smile:

4 « J'aime »

J’ajouterais également que pour ceux que vous verrez avec le nouveau bloc d’informations inclus, cela signifie qu’ils ont traversé la « phase 1 » et sont entrés dans la phase de révision. Donc, si vous en lisez un et pensez « ce n’est pas correct » ou « il manque des informations » et que vous vous sentez assez généreux pour laisser un commentaire, veuillez ajouter vos réflexions à une publication. :heart: :slight_smile:

5 « J'aime »

Quel est le but des informations sur le niveau d’utilisateur requis en haut ? Je pensais que cela fournirait des informations sur la pertinence du document pour moi ou non. Ainsi, je pourrais le lire et décider « Je ne suis pas xxx, donc ce n’est pas pertinent ».
Mais il semble qu’il soit utilisé différemment, car par exemple, les utilisateurs en dessous du niveau TL3 peuvent modifier les wikis, donc c’est pertinent pour d’autres aussi.

3 « J'aime »

Merci d’avoir soulevé ce point @Moin - ce sujet a été mis à jour pour rectifier le niveau d’utilisateur requis.

Votre compréhension de l’utilité de ces informations est correcte - il devrait indiquer quel niveau ou type d’utilisateur est capable d’effectuer les actions expliquées dans le document.

1 « J'aime »