Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions documentation/guidelines/docs_writing_guidelines.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,53 @@ There are 3 rules to describe classes:
See the :ref:`content guidelines <doc_content_guidelines>` for information
on the types of documentation you can write in the official documentation.

English language quirks to be aware of
--------------------------------------

English has a few quirks that even experienced users of English slip up on,
so they are listed here to help avoiding these common mistakes.

The noun adjunct
~~~~~~~~~~~~~~~~

When you use a noun to modify another noun, as if it was an adjective, it is called
a "noun adjunct". In most cases this first noun should be singular, so for example
"a list of nodes" is also a "node list", not a "nodes list". This also applies even if
the modified noun is plural, so "the lists of nodes" is also the "node lists",
not the "nodes lists".
Comment on lines +49 to +53
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to know the name of these.

We may want to genuinely discourage noun adjuncts in the near future. We contributors use it a lot. As programmers, we write the docs most similarly to how we speak, via shorthands. The problem is, this results in some combination of words that are genuinely incomprehensible for first-time readers, or worse, completely unreadable for localization purposes.
Of course, you know as well as me that there's plenty of situations where they make text easier to digest, if used appropriately.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be a very odd restriction, very unnatural use of English IMO, and having "list of nodes" might not be very cumbersome there would be far more awkward constructions otherwise

If you have any good examples of cases where it hurts readability that would be good to look into, but I can't think of any, you'd have "the transforms of nodes that are children of this node" instead of "the child node transforms"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Node adjuncts are common in various languages as well, it's not just a thing in English

Copy link
Member

@Mickeon Mickeon Oct 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be honest, finding actual examples for me is difficult, because I've gone through many of them and attempted to fix them manually in my language, personally.

But I guess as short examples (albeit weak ones, as the topic is very advanced), here's the following from RDFramebufferPass and RenderingDevice's documentation

"Framebuffer pass attachment description"
"Pipeline color blend state attachment"
"Maximum vertex input attribute offset"

In these descriptions, the most layman way to decompose this series of words would be, for example, "Description of attachment of pass of the framebuffer". There is no exact correlation or way to infer how exactly these terms are related with one another, they just are. Of course, it may be possible to infer it from the surrounding context, but not always, let alone for any reader outside of the field of expertise.
To be clearer, potentially stacking multiple noun adjuncts is what is particularly problematic here. They make the relationship between words vague and way too up to interpretation.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be a good example of ones to break up a bit, but they are few and far between, each could be fixed by replacing one of the steps, I don't think "Description of the framebuffer pass attachment" is a problem, "description of the attachment of the pass of the framebuffer" is far too verbose IMO (skipping the definite article is ungrammatical here)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, fine. Receipts, albeit opinionated ones. Keep in mind that these, by themselves, are not necessarily a problem, but when compounded by the aforementioned readability issues, they most certainly can be.
For example, I've seen both French and Spanish mistranslating some words because they're written this way. Again, finding concrete examples is very difficult after casually dealing with them manually.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these can absolutely be improved, but translations are probably more an expression of translations being done by people who don't know English well enough to perform translations in some cases, but still relevant to aid in that process as we can't assume high proficiency of translators necessarily


Deverbals
~~~~~~~~~

English has many words called deverbals, where two words in a phrase are combined into
one noun. Examples of this are a "cleanup" from "to clean up", a "setup" from "to set up", etc.
The combined word is not a replacement for the original phrase, so it's "Clean up the nodes",
not "Cleanup the nodes", and "Performs a cleanup", not "Performs a clean up".

Initialisms and a/an
~~~~~~~~~~~~~~~~~~~~

Many words that are used in the documentation are initialisms, formed by taking the first letter of each word
in a phrase like "Frames Per Second" becoming "FPS". In most cases these are pronounced by just saying each letter
instead of blending the sounds together like a normal word. This, combined with how English letters are
pronounced, means that many of these words should use "an" and not "a" like you might expect.

So it's "an RID", not "a RID", because "RID" is pronounced like "aR-I-Dee". The English letters that are
pronounced with a vowel before the consonant, and should use "an" and not "a" are: `F`, `H`, `L`, `M`, `N`, `R`,
`S`, and `X`.

There are some exceptions to this, like "MIDI", where the word comes from the letters of a phrase, but aren't pronounced this
way. If you are unsure what to do, try saying the word out loud.

Before file extensions the general rule is to always use "a" and write the extension with a leading ``.``, for example "a ``.obj`` file".

And/or with lists
~~~~~~~~~~~~~~~~~

When listing things and add a noun at the end the noun should be plural if using "and" and singular if using "or", so it should be:
"The Forward+ and Mobile renderers" or "The Forward+ or Mobile renderer". Also combine "either" with "or", not "and",
and "both" with "and", not "or".

.. _doc_docs_writing_guidelines_clear_english_rules:

7 rules for clear English
Expand Down Expand Up @@ -257,6 +304,15 @@ sentence, and keep it short:

The **AtlasTexture's** used region.

.. note::

When adding the ``'s`` to plural nouns that end in an ``s`` it becomes just ``'``, so you write "nodes'",
not "nodes's". This applies even if the final ``s`` of the plural wasn't added to make it plural, so it's
"axes'", not "axes's".

You *do* however still add the ``'s`` for plural nouns that do not end in an ``s``, so it's "children's",
not "children'". You can use either for singular nouns that end in an ``s``, though ``'s`` is generally preferred.

Use the Oxford comma to enumerate anything
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down