Qt Writing Guidelines: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 6: Line 6:
== Language Style ==
== Language Style ==


Qt uses the [https://learn.microsoft.com/en-us/style-guide/welcome/ Microsoft Writing Style Guide] in the Qt documentation. Essentially, use clear and direct language in '''American English'''. We write to a diverse audience and we need to communicate Qt topics in an approachable and understandable manner.
'''Tip: ''Say the text out loud. If it sounds weird, then it is weird...then it may also be wrong.'''''


We use the [https://learn.microsoft.com/en-us/style-guide/welcome/ Microsoft Writing Style Guide] in the Qt documentation. Essentially, use clear and direct language in '''American English'''. We write to a diverse audience and we need to communicate Qt topics in an approachable and understandable manner.




Line 15: Line 17:
# Use the pronoun '''you''' in to address the reader when appropriate. See [https://learn.microsoft.com/en-us/style-guide/grammar/nouns-pronouns Nouns and Pronouns].
# Use the pronoun '''you''' in to address the reader when appropriate. See [https://learn.microsoft.com/en-us/style-guide/grammar/nouns-pronouns Nouns and Pronouns].
# Use '''because''' instead of "since" or "as". See [https://learn.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences Use simple words, concise sentences].
# Use '''because''' instead of "since" or "as". See [https://learn.microsoft.com/en-us/style-guide/word-choice/use-simple-words-concise-sentences Use simple words, concise sentences].
# Use a serial comma, also known as the '''Oxford comma'''. See [https://learn.microsoft.com/en-us/style-guide/punctuation/commas Commas]
# Use a serial comma, also known as the '''Oxford comma'''. See [https://learn.microsoft.com/en-us/style-guide/punctuation/commas Commas].
# Use the correct spelling and case for Qt Products. See [[Qt Terms and Concepts]]
# Use the correct spelling and case for Qt Products. See [[Qt Terms and Concepts]].
# Be consistent with forming lists ('''\list'''). Use the '''same tone or mode''' and be consistent ending with periods.
# Use US spelling and avoid latin abbreviations. See [https://learn.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words Use US spelling and avoid non-English words]. Here is a summary :
# Use US spelling and avoid latin abbreviations. See [https://learn.microsoft.com/en-us/style-guide/word-choice/use-us-spelling-avoid-non-english-words Use US spelling and avoid non-English words]. Here is a summary :


Line 32: Line 35:
|therefore
|therefore
|ergo
|ergo
|-
|for example
|e.g.
|}
|}


New in Qt 6.8, the Qt Reference Documentation is available in translated formats. Think about how translatable the sentence you are writing. If the text is too complicated, then  
=== Translated Documentation ===
New in Qt 6.8, the Qt Reference Documentation is available in translated formats. Think about how translatable the sentence you are writing. If the text is too complicated, then it may confuse the reader.


it may confuse the reader.  
== Creating Hierarchy in Documentation ==
Documentation needs to have structure and hierarchy for readability. Form topics and ideas separately and supplement with follow up sentences related to the topic.


'''Tip: ''Say the text out loud. If it sounds weird, then it is weird...then it may also be wrong.'''''
Here is an example of structured overview, This also applies to documentation that is written into paragraphs.<blockquote>Title ('''\title''')
 
== Documentation Hierarchy ==
Documentation needs to have structure and hierarchy for readability. Form topics and ideas separately and supplement with follow up sentences.
 
Here is an example of structured overview.<blockquote>Title ('''\title''')


Introductory parapraph. Description about what the page is about.
Introductory parapraph. Description about what the page is about.
Line 49: Line 52:
Topic 1 ('''\section1''')
Topic 1 ('''\section1''')


Topic 1 paragraph 1.  Sentence related to paragraph 1. Another sentence related to paragraph 1.
* Topic 1 paragraph 1.  Sentence related to paragraph 1. Another sentence related to paragraph 1.
* Topic 1 paragraph 2. Sentence related to paragraph 2. Another sentence related to paragraph 2.


Topic 1 paragraph 2. Sentence related to paragraph 2. Another sentence related to paragraph 2.
Topic 2 ('''\section1''')


Topic 2 ('''\section1''')
* Topic 2 paragraph 1.  Sentence related to paragraph 1. Another sentence related to paragraph 1.
* Topic 2 paragraph 2. Sentence related to paragraph 2. Another sentence related to paragraph 2.


Topic 2 paragraph 1.  Sentence related to paragraph 1. Another sentence related to paragraph 1.
References or See Also ('''\section1''')


Topic 1 paragraph 2. Sentence related to paragraph 2. Another sentence related to paragraph 2.</blockquote>
* List of relevant pages.</blockquote>


== Writing API Documentation ==
== Writing API Documentation ==
Line 91: Line 96:
* '''\note is only for 1-sentence statements'''. See [https://doc.qt.io/qt-6/11-qdoc-commands-specialcontent.html#note \note command] in the QDoc manual.
* '''\note is only for 1-sentence statements'''. See [https://doc.qt.io/qt-6/11-qdoc-commands-specialcontent.html#note \note command] in the QDoc manual.
* Reserve '''\warning''' for critical information that lead to serious consequences.
* Reserve '''\warning''' for critical information that lead to serious consequences.
Think of the hierarchy of information. When highlighting several important content, only have the most important in a \note. Notes that are not critical may not be that important.
Think of the hierarchy of information. When highlighting several important content, only have the most important statement in a \note. Notes that are not critical may not be that important.


Instead, '''integrate the sentence or statement into a paragraph'''. A one-line paragraph dangling in a page is better than the overuse of notes.
Instead, '''integrate the sentence or statement into a paragraph'''. A one-line paragraph dangling in a page is better than the overuse of notes.
Line 108: Line 113:
* [https://contribute.qt-project.org/quips/21 QUIP-21] '''Using images in Qt documentation'''
* [https://contribute.qt-project.org/quips/21 QUIP-21] '''Using images in Qt documentation'''


== Vale Support ==
== Linting with Vale ==
Vale is a linter that detects improper use of language and can make suggestions in-place. Vale has  command-line interface and is also available for Qt Creator and VS Code
Vale is a linter that detects improper use of language and can make suggestions in-place. Vale has  command-line interface and is also available for Qt Creator and VS Code


For more information about Vale, visit [[Setting Up Vale]].
For more information about Vale, visit [[Setting Up Vale]].


== Qt 5 Documentation Requirements ==
== See Also ==
 
* [[Qt5DocumentationProject | Qt 5 Documentation]] - for creators of Qt 5 documentation
For Qt 5 documentation, or those who create documentation using Qt 5, see the following pages:
* [[Qt5DocumentationProject | Qt 5 Documentation]]


QDoc changes should pass the [[QDocRegressionTesting]]
QDoc changes should pass the [[QDocRegressionTesting]]

Latest revision as of 12:43, 26 November 2024

The Qt Writing Guidelines contains information about writing Qt documentation in a consistent way. Though there are exceptions, maintain the consistency level outlined in the guidelines or the existing Qt documentation.

This guideline is maintained by the Qt Documentation Team, with members across the different Qt Group sites. Visit their page at: Category:Developing Qt::Documentation

Language Style

Qt uses the Microsoft Writing Style Guide in the Qt documentation. Essentially, use clear and direct language in American English. We write to a diverse audience and we need to communicate Qt topics in an approachable and understandable manner.

Tip: Say the text out loud. If it sounds weird, then it is weird...then it may also be wrong.


Here are some specifics for Qt:

  1. Use active voice, not passive. Passive does not make a sentence formal, but unnecessarily weakens the sentence. See Verbs
  2. Use the pronoun you in to address the reader when appropriate. See Nouns and Pronouns.
  3. Use because instead of "since" or "as". See Use simple words, concise sentences.
  4. Use a serial comma, also known as the Oxford comma. See Commas.
  5. Use the correct spelling and case for Qt Products. See Qt Terms and Concepts.
  6. Be consistent with forming lists (\list). Use the same tone or mode and be consistent ending with periods.
  7. Use US spelling and avoid latin abbreviations. See Use US spelling and avoid non-English words. Here is a summary :
Use Instead of
that is i.e.
namely viz.
therefore ergo
for example e.g.

Translated Documentation

New in Qt 6.8, the Qt Reference Documentation is available in translated formats. Think about how translatable the sentence you are writing. If the text is too complicated, then it may confuse the reader.

Creating Hierarchy in Documentation

Documentation needs to have structure and hierarchy for readability. Form topics and ideas separately and supplement with follow up sentences related to the topic.

Here is an example of structured overview, This also applies to documentation that is written into paragraphs.

Title (\title)

Introductory parapraph. Description about what the page is about.

Topic 1 (\section1)

  • Topic 1 paragraph 1. Sentence related to paragraph 1. Another sentence related to paragraph 1.
  • Topic 1 paragraph 2. Sentence related to paragraph 2. Another sentence related to paragraph 2.

Topic 2 (\section1)

  • Topic 2 paragraph 1. Sentence related to paragraph 1. Another sentence related to paragraph 1.
  • Topic 2 paragraph 2. Sentence related to paragraph 2. Another sentence related to paragraph 2.

References or See Also (\section1)

  • List of relevant pages.

Writing API Documentation

We document Qt APIs in the sources and use QDoc to generate the HTML for the doc.qt.io site and an offline version for Qt Creator.

C++ and QML documentation follow a similar style, but there are differences. See the following pages for documenting APIs.

For designing Qt APIs, visit:

Using QDoc to Write Documentation

These QDoc guidelines complement the QDoc Manual

Using QDoc \note and \warning

This is a prevalent issue that warrants its own section.

QDoc has a \note command that creates a stylized Note: in the documentation. Similarly \warning creates a Warning: in the documentation.

Use them sparingly but be aware of their intended use and consequences.

  • Notes and warnings break the flow of the paragraph or section, creating an aside or detour from the usual topic.
  • \note is only for 1-sentence statements. See \note command in the QDoc manual.
  • Reserve \warning for critical information that lead to serious consequences.

Think of the hierarchy of information. When highlighting several important content, only have the most important statement in a \note. Notes that are not critical may not be that important.

Instead, integrate the sentence or statement into a paragraph. A one-line paragraph dangling in a page is better than the overuse of notes.

Documenting Examples

Qt Examples are an important part of the Qt Framework. They show how the framework is to be used and inspire developers about possibilities with Qt. These pages help with creating examples, documenting examples, and how to contribute examples into the Qt repositories.

Including Images

The requirements for images in Qt documentation is outlined in QUIP-21.

  • QUIP-21 Using images in Qt documentation

Linting with Vale

Vale is a linter that detects improper use of language and can make suggestions in-place. Vale has command-line interface and is also available for Qt Creator and VS Code

For more information about Vale, visit Setting Up Vale.

See Also

QDoc changes should pass the QDocRegressionTesting