Important
You are browsing the documentation for version 4.1 of OroCommerce, OroCRM and OroPlatform, which is no longer maintained. Read version 5.1 (the latest LTS version) of the Oro documentation to get up-to-date information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
Contribute to Documentation¶
We use reStructuredText markup language to write the documentation and Sphinx generator to prepare it for the web publication at https://doc.oroinc.com/
. You can find more information about the syntax on the Sphinx website by reading reStructuredText Primer. The most important information is provided in the sections below.
Documentation source files are maintained in the dedicated github repository.
If you are willing to contribute — you are totally welcome. The information below should help you understand the documentation structure and topic organization, useful rst directives and a simple workflow that helps quickly publish a new topic.
Before You Begin¶
The use of the documentation is subject to the CC-BY-NC-SA 4.0 license.
Before submitting your documentation changes in a pull request, please sign our Contributor License Agreement (CLA). The CLA must be signed for any code or documentation changes to be accepted.
Fork Documentation Project¶
If you are just making a small change, you can use the Edit this file button directly in the GitHub UI. It will automatically create a fork of our OroPlatform,OroCRM and OroCommerce documentation repository and allow for the creation and submission of a new pull request with your modifications once you are done editing.
For large volume of updates, fixes, and enhancements please use the following process:
Fork a documentation repository.
Clone the forked repository.
Update your local copy of documentation (see Update Documentation for more information on the process and formatting).
Build and test the documentation before submitting a pull request to be sure you haven’t accidentally introduced any layout or formatting issues.
To build documentation, set up a local build environment by installing Docker and Docker Compose.
To test your changes before you commit them, run
docker-compose up
in the documentation folder.
Check the generated documentation in the
_build/html
directory.
Update Documentation¶
This section is intended to provide you with the basic information of simple text formatting using reStructuredText (reST) markup language. Just enough to update and create new documentation files in Oro documentation.
For more information, please refer to the sphinx’s reStructuredText Primer and to the Quick reStructuredText by docutils.
The most complete information is available in the reStructureText specifications.
Documentation Structure and Topic Organization¶
The documentation is organized into the tree hierarchy of sections using toctree directive in the index.rst. Sections of the same level reside in the same folder which simplifies navigation and sibling reference.
Sample file structure:
1+ user:
2 - index.rst
3 + back-office
4 - topic-1.rst
5 - topic-2.rst
6 - topic-3.rst
7 - index.rst
8 + storefront
9 + img
10 - create_accounts.png
11 - lead_statistics.png
12
13+ backend:
14 - index.rst
15 + integration
16 - email.rst
17 - LDAP.rst
18 + api
19 -firewall-listeners.rst
20 -request-types.rst
21
22- index.rst
Basic Rst Syntax¶
Headings¶
Use the following markup for the headings to split your topic into sections, subsections, and more granular bits:
Use an underline with =, -, ^, ~, “ to mark up the sections.
1Section 1
2=========
3
4Section 1.1
5-----------
6
7Section 1.1.1
8^^^^^^^^^^^^^
9
10Section 1.1.1.1
11~~~~~~~~~~~~~~~
12
13Paragraph Title
14"""""""""""""""
Preview:
Preserve the same level of indentation for all lines of the paragraph. More information is available here.
Inline Markup¶
Surround the text with one asterisk (*) for italic text, with two asterisks (**) for bold text, and with double back quotes (``) for Preformatted
text. to use these symbols in the text without affecting the text style, escape them with the backslash (\).
Bulleted List¶
To form a bullet list, start the line with *, +, or - followed by whitespace:
1* Item A
2* Item B
3
4 - Item C
5 - Item D
6
7 + Item E
8 + Item F
Preview:
Item A
Item B
Item C
Item D
Item E
Item F
Numbered List¶
To form a numbered list, start the line with Arabic numerals (1,2,3), upper- or lowercase alphabet letters (A,B,C, or a,b,c), upper- or lowercase Roman numerals (I, II, III, or i, ii, iii). You can automatically enumerate the list by starting the lines with a hash sign (#).
Simple numbered list:
11. Item A
22. Item B
3
4 a) Item C
5 b) Item D
6
7 i. Item E
8 ii. Item F
Preview:
Item A
Item B
Item C
Item D
Item E
Item F
Auto Enumerated List¶
11. Item A
2#. Item B
3
4 a) Item C
5 #) Item D
6
7 i. Item E
8 #. Item F
Preview:
Item A
Item B
Item C
Item D
Item E
Item F
Text Blocks¶
Attention Block¶
Syntax in Rst: .. attention:: The message text.
Preview:
Attention
The message text.
Caution Block¶
Syntax in Rst: .. caution:: The caution message.
Preview:
Caution
The caution message.
Warning Block¶
Syntax in Rst: .. warning:: The warning message.
Preview:
Warning
The warning message.
Hint Block¶
Syntax in Rst: .. hint:: The hint message.
Preview:
Hint
The hint message.
Note Block¶
Syntax in Rst: .. note:: The note message.
Preview:
Note
The note message.
Tip Block¶
Syntax in Rst: .. tip:: The tip message.
Preview:
Tip
The tip message.
Important Block¶
Syntax in Rst: .. important:: The important message.
Preview:
Important
The important message.
Tables¶
Option 1
1+------------+------------+-----------+
2| Header 1 | Header 2 | Header 3 |
3+============+============+===========+
4| Cell 1.1 | Cell 1.2 | Cell 1.3 |
5+------------+------------+-----------+
6| Cell 2.1 | Cell 2.2 | Cell 2.3 |
7+------------+------------+-----------+
Preview:
Header 1 |
Header 2 |
Header 3 |
---|---|---|
Cell 1.1 |
Cell 1.2 |
Cell 1.3 |
Cell 2.1 |
Cell 2.2 |
Cell 2.3 |
Option 2
1.. csv-table::
2 :header: "**OroCRM Field**","**Outlook Field**"
3 :widths: 20, 20
4
5 "Subject","Subject"
6 "Priority","Priority"
7 "Due Date","Due Date"
Preview
OroCRM Field
Outlook Field
Subject
Subject
Priority
Priority
Due Date
Due Date
File Naming Conventions¶
Please follow the recommendations below when naming the new documentation file:
Use a topic-based approach (e.g., user-management-permissions-organization.rst).
Use lowercase letters and Arabic numbers only.
All source .rst files with more than one word in their name must be separated with a dash (-), not an underscore, to be able to form correct html links on the website (e.g., file-naming-conventions.rst).
Avoid special symbols (/,$,#, etc).
Save the file with .rst extension
Add a New Topic¶
Create topic contents using Restructured Text format and save it following the File Naming Conventions.
All headers in Oro documentation must be capitalized, except for articles (a, the) unless it is the first word in the header and short prepositions (at, or, on, etc.).
Strive for consistency in all headers. Whenever possible, start headers with the same part of speech (nouns, verbs, etc.). This means that, for instance, if 4 of your 5 subheaders begin with a verb, make sure than the fifth header starts with a verb, too.
To link a topic to the global documentation table of contents:
Identify the best location for the reference to your new topic in the documentation structure.
Move the newly created file to the selected folder.
Append the relative document name (without the rst extension) to the toctree definition in the potential parent topic.
For example, when we create a new topic with additional information about price list management in the additional-pricelist-management-info.rst file. To include it into the document structure at the user/back-office/sales/price-lists level, we’ll update the index.rst file in the user/back-office/sales/price-lists directory like in the following example:
Before:
1.. toctree::
2 :maxdepth: 1
3
4 price-attributes
5
6 price-list-management
After:
1.. toctree::
2 :maxdepth: 1
3
4 price-attributes
5
6 price-list-management
7
8 additional-pricelist-management-info
Tip
If you are adding more than one topic and your new topics cover the same domain, consider grouping them into a folder.
For better navigation, it is recommended to create a dedicated index.rst file with an overview and references to the topics in the new folder (using .. toctree:: directive).
To attach your newly created group of topics into the general structure, add the reference to the index.rst file to the appropriate location in the documentation hierarchy.
For instance, documentation-structure-and-topic-organization.rst and file-naming-conventions.rst can be saved to the community/contribute folder, can be added to the toctree of the dedicated community/contribute/index.rst.
Finally, community/contribute/index.rst can be added into the community/index.rst toctree to attach the newly created files into the global documentation structure.
Internal and External Links¶
Internal Links¶
Example 1
RST format supports referencing across documentation. To refer to any section of the documentation, you need to create an anchor (label) at the top of this section and refer to it explicitly.
Note the punctuation characters when linking to a certain file, section, or website. Otherwise, the documentation will not be built.
This way is quite useful as it works even if files get renamed.
1.. _anchor-name:
2
3Quotes
4======
5
6See the :ref:`Quotes <anchor-name>` section for more details.
Example 2
To create a link to a header in the same file:
1...
2
3Section About the Elephants
4===========================
5
6Here goes detailed information about the elephants.
7
8Section About the Mice
9======================
10
11We have no info about the mice at the moment, but you can entertain yourself with some reading in `Section About the Elephants`_.
External Links¶
At Oro, we avoid formatting external links in typical RST manner (e.g., GitHub), as this does not allow links to open in a new tab. Therefore, the rule for adding external links is as follows:
Put the word/phrase that will serve as a link in vertical bars
1|GDPR portal|
Add the following link to the bottom of your documentation page:
1.. include:: /include/include-links.rst 2 :start-after: begin
In the include-links.rst file, embed the link into html with the target=”_blank” parameter into the required documentation component section (Cloud Documentation, Dev Documentation, User Documentation):
1.. |GDPR portal| raw:: html 2 3 <a href="https://www.eugdpr.org/" target="_blank">GDPR portal</a>
Submit Documentation Updates¶
Once you are ready, create a pull request in the Oro documentation repository with changes from your forked repository. See Code Version Control for more information on using repository.
After documentation review, your changes will be merged to the Oro documentation and will be published on the Oro website.
Business Tip
Looking for more information on the difference between B2C and B2B eCommerce? Our in-depth guide covers this and more.
See Also