Escribir documentación efectiva para 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 Me gusta

@hugh / @SaraDev

Veo una pequeña inconsistencia aquí sobre los títulos.

Tenemos estos ejemplos:

Pero luego decimos esto:

Si paso el ejemplo “correcto” por el convertidor, obtengo esto en su lugar:

Habilitar Títulos Automáticos para Hilos de Chat

¿Deberíamos actualizar nuestro ejemplo para que coincida?

aparte

Si dependiera solo de mí, habría pensado que optaríamos por el caso de oración, y no estoy seguro de por qué tenemos “Hilos de Chat” en mayúsculas en el título del tema actual, así que personalmente preferiría ver esto:

Habilitar títulos automáticos para hilos de chat

Pero la consistencia es más importante al final y asumiré que todos ustedes tienen una buena razón para haber elegido la recomendación actual.

1 me gusta

Esa es una buena observación. No había hecho esa conexión, pero es fácil de actualizar. Sin embargo:

La especificación de mayúsculas de título fue mía, porque encuentro que generalmente se ve más limpio y profesional. Creo que es en gran medida mi opinión subjetiva, porque tanto Google como Microsoft dicen usar mayúsculas de oración en los títulos de la documentación. Otros sitios que he encontrado también dicen usar mayúsculas de oración, así que revertiré esto y actualizaré el requisito de mayúsculas allí.

3 Me gusta

También noto que dicen que se use el caso de oración para títulos y encabezados. (Estoy en el mismo equipo).

Parece que actualmente no estamos especificando nuestra preferencia para los encabezados. Añadamos eso también mientras estamos en ello.

1 me gusta

De acuerdo: lo añadiré aquí para especificarlo explícitamente.

1 me gusta

OK, ya que estoy en racha…

Me gusta que digamos esto:

Pero en la guía, tenemos este ejemplo, actualmente:

Mi opinión es que no es necesario capitalizar “Ajustes Ocultos del Sitio” aquí. (apelación a la autoridad)

2 Me gusta

Aprecio la apelación :smile:

Sí, este es un buen punto: ese ejemplo se extrajo de un documento real donde usamos el título del documento existente para describirlo, y como ese documento usaba mayúsculas iniciales, la referencia también lo hizo. Con el cambio de mayúsculas iniciales a oración, esa referencia también debería actualizarse.

1 me gusta

He realizado algunas ediciones en esta guía de estilo basándome en la conversación anterior.

  • Cambiado el título del tema a minúsculas de oración
  • Cambiado los encabezados a minúsculas de oración
  • Eliminada una capitalización innecesaria (Syntax)
  • Reemplazados los ampersands (&) en los encabezados por “and”
  • Reemplazadas las barras (/) en los encabezados por comas o conjunciones

Esos dos últimos cambios no se discutieron; hágame saber si parecen superfluos o si están en desacuerdo con la guía (o, alternativamente, si deberíamos capturar esas directrices en la guía).

2 Me gusta

Me gustan los dos últimos; definitivamente están en línea con el espíritu del resto de la guía y vale la pena incluirlos en la guía. Los añadiré ahora.

1 me gusta

Supongo que las banderas para etiquetar documentos en otros idiomas son una excepción.

1 me gusta

Además de evitar el lenguaje figurado, siempre evité usar contracciones en la documentación. Pensé que dificultaban la comprensión para lectores no angloparlantes/no occidentales. El inglés es un idioma extraño.

¿“Moreover”?

En algún momento, nosotros (posiblemente yo) empezamos a usar código en línea para referirnos a la configuración del sitio. Por ejemplo: “Habilita la configuración del sitio discourse connect”. Ese podría ser el enfoque correcto, pero se siente un poco técnico.

Podría valer la pena usar un nombre de marcador de posición consistente para referirse a los sitios de Discourse. ¿Quizás discourse.example.com? Hay algo de documentación aquí que se refiere al sitio de Discourse como sitename.com. Me confundió mucho.


Algunos consejos generales de escritura: lee lo que has escrito como si fueras un miembro de tu (mira qué complicadas son las contracciones) audiencia objetivo. Asegúrate de que tus suposiciones sobre el conocimiento previo de la audiencia sean razonables.

Por mucho que agradezca no tener ya una tonelada de temas de documentación atribuidos a mí, usar Discourse como autor de todos los temas de documentación del equipo se siente un poco frío.

Lo que ha hecho que escribir sea divertido para mí de nuevo fue el consejo de buscar maneras de poner un poco de ti mismo en lo que sea que estés escribiendo. Podría ser cualquier cosa, tu tono de voz, tus pasatiempos, lo que sea… Eso es lo opuesto a lo que se recomienda aquí.

6 Me gusta

Hola Simon! :blob_wave:

Iba a ver cómo resultaba esto, pero sí, yo también intento evitar las contracciones.

Jajaja, sí… No voy a usar ninguna de esas palabras en los documentos, no sea que revele mi :face_with_monocle:.

Definitivamente: Example Domains

¡Este es el punto que vine a discutir! :smiley:

Hemos tenido muchas idas y venidas sobre esto, y me alegró ver que se incluyera en la guía de estilo por defecto.

Aquí explico por qué creo que es importante: producir documentación debe ser accesible para tantos miembros de nuestra comunidad como sea posible, incluidos (¿especialmente?) nuestros miembros del equipo de Discourse.

Discourse es un software de discusión social. Y parte de la documentación es realmente una conversación continua. Si estoy compartiendo una práctica sobre cómo incorporo miembros a mi comunidad, querría que se me presentara como el “propietario” de ese tema, para poder responder preguntas y ampliar el tema.

Por otro lado, si un cliente pregunta sobre una característica que nunca llegamos a explicar, me gustaría poder usar la guía de estilo y producir documentación útil y general, lo que siento que ser el propietario del tema presenta más inercia para publicar.

Además, si producimos documentación fuera de Discourse (una integración o producción a partir de comentarios de código o lo que sea), tener un “usuario de documentación” es probablemente más fácil como detalle de implementación. :thinking:

No creo que esta guía impida que la gente inyecte su voz y personalidad, y organice la discusión. ¡Pero sería genial si ayudara a más personas a practicar la documentación, que de otro modo no lo harían (¡y luego podemos animarlos a ser más personales!) :smiley:

3 Me gusta

Hasta que tengamos una forma nativa de manejar documentos localizados, creo que anteponer las banderas al título es la forma más práctica de hacerlo, y una excepción razonable a esta directriz.

Creo que este tipo de cosas tiene diferentes opiniones y preferencias en ambos sentidos, pero para esta guía de estilo, nos ceñimos a las normas aceptadas en la industria. Una vez más, las directrices de Google y Microsoft coinciden en que es mejor usar contracciones comunes.

Dicho esto, he leído algunas publicaciones que sugieren que el uso de contracciones negativas (como “can’t”) podría dificultar la comprensión para los hablantes no nativos de inglés. Profundizaremos un poco más en esto y, si es necesario, actualizaremos la guía de estilo en consecuencia.

¡He eliminado ese ejemplo! :smile:

Sí, eso es muy común (no solo en Discourse), pero estoy de acuerdo en que no es del todo correcto. Sería mejor usar comillas, así que creo que lo haré explícito en la guía de estilo.

Ese es un gran punto. ¡Lo añadiré a la guía de estilo!

¡Gracias por tus comentarios! @maiki hizo algunos buenos puntos anteriormente, y estoy de acuerdo con lo que dice allí. Para añadir a eso, diré que una de las razones por las que hemos cambiado la documentación oficial para que @Discourse sea el autor es para darles un mayor sentido de autoridad a los lectores, especialmente a las personas que visitan la documentación por primera vez. Este es también el ímpetu detrás de toda la guía de estilo en primer lugar.

Cualquiera que escriba documentación definitivamente puede inyectar su personalidad en su escritura, y la discusión sobre temas de documentación individuales no va a ninguna parte, así que ese es siempre un buen lugar para hacer las cosas más personales también.

Todos estos comentarios son muy apreciados :slight_smile:

2 Me gusta

Con respecto a la parte del metablock de la guía. Aunque los temas de documentación necesitan uno según la guía anterior, no todos los temas tienen uno [1] y no siempre son consistentes, aquí hay algunos ejemplos de algunas guías que he encontrado.

Personalmente, me gusta ‘Todos los usuarios’.

No quería cambiar esto en los temas antes de recopilar algunos comentarios :smiley:


  1. ¿tal vez depende del contexto del tema? ↩︎

4 Me gusta

Todos los documentos de @Discourse están en proceso y se espera que todos tengan uno en algún momento (:crossed_fingers:). Buen punto sobre la inconsistencia. No estoy seguro de cuál adoptaremos, pero definitivamente nos aseguraremos de elegir uno y ceñirnos a él. :slight_smile:

4 Me gusta

También debo añadir que, para cualquiera que veas con el nuevo bloque de información incluido, significa que han pasado por la ‘fase 1’ y están en la fase de revisión. Así que, si lees uno y piensas ‘eso no está bien’ o ‘falta información’ y te sientes lo suficientemente generoso como para dejar comentarios, por favor, añade tus pensamientos en una publicación. :heart: :slight_smile:

5 Me gusta

¿Cuál es el propósito de la información del nivel de usuario requerido en la parte superior? Pensé que proporcionaría información sobre si el documento es relevante para mí o no. Así podría leerlo y decidir “No soy xxx, así que no es relevante”.
Pero parece que se usa de manera diferente, porque, por ejemplo, los usuarios por debajo de TL3 pueden editar wikis, por lo que también es relevante para otros.

3 Me gusta

Gracias por señalarlo @Moin: ese tema se ha actualizado para rectificar el nivel de usuario requerido.

Tu comprensión de para qué sirve esa información es correcta: debería indicar qué nivel o tipo de usuario puede realizar las acciones explicadas en el documento.

1 me gusta