To add materials to this course, you must follow the guidelines in this Appendix. You are not to alter the conditions in this Appendix except for clarification. This is to ensure that the quality and consistency of this manual can be maintained.
The source of this document is available at GitHub. Consult GitHub.com for instructions on how to use the git version control system.
This manual is written using Sphinx, a Python document generator using the reStructuredText markup language. Instructions on how to use these tools are available on their respective sites.
To add a new module, first create a new directory (directly under the top-level of the qgis-training-manual directory) with the name of the new module.
Under this new directory, create a file called index.rst. Leave this file blank for now.
Open the index.rst file under the top-level directory. Its first lines are:
.. toctree::
:maxdepth: 2
foreword/index
introduction/index
You will note that this is a list of directory names, followed by the name index. This directs the top-level index file to the index files in each directory. The order in which they are listed determines the order they will have in the document.
Add the name of your new module (i.e., the name you gave the new directory), followed by /index, to this list, wherever you want your module to appear.
Remember to keep the order of the modules logical, such that later modules build on the knowledge presented in earlier modules.
Open your new module’s own index file ([module name]/index.rst).
Along the top of the page, write a line of 80 asterisks (*). This represents a module heading.
Follow this with a line containing the markup phrase |MOD| (which stands for “module”), followed by the name of your module.
End this off with another line of 80 asterisks.
Leave a line open beneath this.
Write a short paragraph explaining the purpose and content of the module.
Leave one line open, then add the following text:
.. toctree::
:maxdepth: 2
lesson1
lesson2
... where lesson1, lesson2, etc., are the names of your planned lessons.
The module-level index file will look like this:
*******************************************************************************
|MOD| Module Name
*******************************************************************************
Short paragraph describing the module.
.. toctree::
:maxdepth: 2
lesson1
lesson2
To add a lesson to a new or existing module:
Catatan
For editing purposes, a .rst file works exactly like a normal text file (.txt).
To begin writing the lesson, write the markup phrase |LS|, followed by the lesson name.
In the next line, write a line of 80 equal signs (=).
Leave a line open after this.
Write a short description of the lesson’s intended purpose.
Include a general introduction to the subject matter. See the existing lessons in this manual for examples.
Beneath this, start a new paragraph, beginning with this phrase:
**The goal for this lesson:**
Briefly explain the intended outcome of completing this lesson.
If you can’t describe the goal of the lesson in one or two sentences, consider breaking the subject matter up into multiple lessons.
Each lesson will be subdivided into multiple sections, which will be addressed next.
There are two types of sections: “follow along” and “try yourself”.
Every section comes with a difficulty level. An easy section is denoted by |basic|, moderate by |moderate|, and advanced by |hard|.
In most cases, you will want to provide an answer regarding how to complete the assignment given in this section. To do so, you will need to add an entry in the answer sheet.
First, decide on a unique name for the answer. Ideally, this name will include the name of the lesson and an incrementing number.
Create a link for this answer:
:ref:`Check your results <answer-name>`
Open the answer sheet (answers/answers.rst).
Create a link to the “try yourself” section by writing this line:
.. _answer-name:
Write the instructions on how to complete the assignment, using links and images where needed.
To end it off, include a link back to the “try yourself” section by writing this line:
:ref:`Back to text <backlink-answer-name>`
To make this link work, add the following line above the heading to the “try yourself” section:
.. _backlink-answer-name:
Remember that each of these lines shown above must have a blank line above and below it, otherwise it could cause errors while creating the document.
To adhere to the standards of this document, you will need to add standard markup to your text.
If you are explaining a new concept, you will need to write the new concept’s name in italics by enclosing it in asterisks (*).
This sample text shows how to introduce a *new concept*.
This sample text shows how to use **emphasis** in a sentence. Include the
punctuation mark if it is followed by a **comma,** or at the **end of the
sentence.**
When adding an image, save it to the folder _static/lesson_name/.
Include it in the document like this:
.. image:: /static/training_manual/lesson_name/image_file.extension
:align: center
Remember to leave a line open above and below the image markup.
To create an anchor for a link, write the following line above the place where you want the link to point to:
.. _link-name:
To create a link, add this line:
:ref:`Descriptive link text <link-name>`
Remember to leave a line open above and below this line.
To create an external link, write it out like this:
`Descriptive link text <link-url>`_
Remember to leave a line open above and below this line.
When you are writing text that the user needs to enter, a path name, or the name of a database element such as a table or column name, you must write it in monospaced text. For example:
Enter the following path in the text box: :kbd:`path/to/file`.
If you are referring to a GUI item, such as a button, you must write its name in the GUI label format. For example:
To access this tool, click on the :guilabel:`Tool Name` button.
This also applies if you are mentioning the name of a tool without requiring the user to click a button.
You might need to a note in the text, which explains extra details that can’t easily be made part of the flow of the lesson. This is the markup:
[Normal paragraph.]
.. note:: Note text.
New line within note.
New paragraph within note.
[Unindented text resumes normal paragraph.]
If you are writing a new module, lesson or section on behalf of a sponsor, you must include a short sponsor message of their choice. This must notify the reader of the name of the sponsor and must appear below the heading of the module, lesson or section that they sponsored. However, it may not be an advertisement for their company.
If you have volunteered to write a module, lesson or section in your own capacity, and not on behalf of a sponsor, you may include an authorship note below the heading of the module, lesson or section that you authored. This must take the form This [module/lesson/section] contributed by [author name]. Do not add further text, contact details, etc. Such details are to be added in the “Contributors” section of the Foreword, along with the name(s) of the part(s) you added. If you only made enhancements, corrections and/or additions, list yourself as an editor.
Thank you for contributing to this project! By so doing, you are making QGIS more accessible to users and adding value to the QGIS project as a whole.