Documentation

小訣竅

本網站上的文檔是用 ReStructuredText 或 RST 所編寫的。 如果您不熟悉 RST,請查看 「RST Primer <http://www.sphinx-doc.org/en/stable/rest.html>」_。

本頁將指導您編寫可在此網站上展示的UBports 專案的優秀文檔。

文檔指南

These rules govern how you should write documentation to avoid problems with style, format or linking.

標題

所有頁面都必須具有將顯示在目錄 (左側邊欄) 和頁面頂部的文檔標題。

Titles should be 「sentence cased」 rather than 「Title Cased」. For example:

Incorrect casing:
    Writing A Good Bug Report
Correct casing:
    Writing a good bug report
Correct casing when proper nouns are involved:
    Installing Ubuntu Touch on your phone

每個人都遵循標題框的單一定義,但句子套管很容易。 這有助於保持目錄中的大寫一致。

Page titles are underlined with equals signs. For example, the markup for 錯誤回報 includes the following title:

Bug reporting
=============

請注意:

  1. 標題是用句子

  2. 標題是用等號下劃線

  3. 下劃線完全跨越標題且不會超過

標題的錯誤示例包括:

  • 裝箱不正確

    Bug Reporting
    =============
    
  • 下劃線太短

    Bug reporting
    =====
    
  • 下劃線太長了

    Bug reporting
    ================
    

標題

There are several levels of headings that you may place on a page. These levels are shown here in order:

Page title
==========

Level one
---------

Level two
^^^^^^^^^

Level three
"""""""""""

Please refrain from using more than four levels. If you think you need more levels, it is a good sign that the document should be split up into multiple pages. Furthermore the web version of the documentation only shows four levels in it’s table of contents.

標題目錄

If you add a new page you also have to add it to the table of contents. You can do this by adding the page to the index.rst file in the same directory where you created it. For example, if you create a file called 「newpage.rst」, you would add the line marked with a chevron (>) in the nearest index:

.. toctree::
    :maxdepth: 1
    :name: example-toc

    oldpage
    anotheroldpage
>   newpage

The order matters. If you would like your page to appear in a certain position in the table of contents, place it there. In the previous example, newpage would be added to the end of this table of contents.

Moving pages

Sometimes it becomes necessary to move a page from one place in the documentation to another. Generally this is to improve document flow: For example, it makes more sense for the page to come after a page you’ve just added in a different section.

However, people link to our documentation from many sources that we do not control. Blogs, websites, and other documentation sites can direct people here using links that they may never update. It is a terrible experience to follow a link from a different site and land on a 404 page, being forced to search manually in our documentation.

We use a tool called Rediraffe to avoid such a bad experience. Rediraffe creates redirect pages, which can send a user from an old, invalid link to a new, useful link. Please create a redirect link when changing a page’s name or moving a page within the documentation’s directory structure. Redirect links are created by placing the filename of the old document and the filename of the new document, relative to the documentation’s root, in the redirects.txt file.

We use Rediraffe’s checkdiff builder to ensure that pages are not deleted from the documentation without a redirect in place. This builder is run as part of the build.sh script in the repository and as part of our automated build once you submit a Merge Request (MR).

What follows are some examples of situations where you should create redirects.

You are moving systemdev/calendars.rst to appdev/calendars.rst. Add the following to the redirects.txt file:

"systemdev/calendars.txt" "appdev/calendars.txt"

You are moving appdev/clickable.rst into several pages in appdev/clickable/ to give significantly more information about the tool than there was previously. You have created an introduction page, appdev/clickable/introduction.rst. In this case, it would be a good idea to redirect the old page to the new introduction page. This can be done by adding the following to redirects.txt:

"appdev/clickable.rst" "appdev/clickable/introduction.rst"

警告

Your edits must not introduce any warnings into the documentation build. If any warnings occur, the build will fail and the merge request will be marked with a red 『X』. Please ensure that your RST is valid and correct before you create a merge request. This is done automatically (via sphinx-build crashing with your error) if you follow our build instructions below.

行長度

此存儲庫中的行長度沒有限制。 請不要在任意行長度中換行。 而是在文字編輯器中開啟自動換行。

貢獻工作流程

The following steps explain how you can make a contribution to this documentation.

備註

You will need a GitLab account to complete these steps. If you do not have an account, go to gitlab.com to create one.

對存儲庫進行分支

You can make more advanced edits to the documentation by forking ubports/docs.ubports.com on GitLab.

構建文檔

To build this documentation, follow these instructions on your local copy of your fork of the repository.

The documentation can be built by running ./build.sh in the root of this repository. The script will also create a virtual build environment in ~/ubportsdocsenv if none is present.

If all went well, you can enter the _build/html directory and open index.html to view the UBports documentation.

If you have trouble building the docs, the first thing to try is deleting the build environment. Run rm -r ~/ubportsdocsenv and try the build again.

Final check of your contribution

After you have created your Merge Request on GitLab, the Continuous Integration (CI) system will make a test build of your contribution (a 「pipeline」). Please double check whether this builds successfully and whether the result looks as you intended it to:

  • at the top of the 「Overview」 tab of your MR on gitlab you will see the status of the pipeline

  • if it says 「Checking pipeline status」 or 「Pipeline running」 then please wait another minute.

  • if it says 「Pipeline failed」 with a red X and, then something went wrong, please click on the link to find the details

  • if it says 「Pipeline passed」 with green check mark, it means the MR could be built successfully and you can proceed to look at the results

  • now please click on link of that pipeline

  • click on 「build」 job

  • this brings you to the end of the build log, where you’ll see a message: 「Build succeeded, browse the artifact here」

  • click the link next to it to see the full version of the UBports documentation site with your changes

  • double check whether your changes look ok

貢獻的替代方法

Translations

You may find the components of this document to translate at its project in UBports Weblate.

寫入不是 RST 格式的文檔

If you would like to write documents for UBports but are not comfortable writing ReStructuredText, please write it without formatting and post it on the UBports Forum in the relevant section (likely General). Someone will be able to help you revise your draft and write the required ReStructuredText.

不習慣 Git

If you’ve written a complete document in ReStructuredText but aren’t comfortable using Git or GitLab, please post it on the UBports Forum in the relevant section (likely General). Someone will be able to help you revise your draft and submit it to this documentation.

目前的 TODO

This section lists the TODOs that have been included in this documentation. If you know how to fix one, please send us a merge request to make it better!

To create a todo, add this markup to your page:

.. todo::

   My todo text

Todo

Consider also writing a document about process of dealing with merge requests.

(原始記錄 見 /home/docs/checkouts/readthedocs.org/user_builds/docsubportscom-gitlab-zh-hant/checkouts/latest/about/process/issue-tracking.rst ,第 36 行)

Todo

There is also another way to create somewhat more featureful webapps, sometimes referred to as webapp+ or alternative container. This needst to be properly documented. It’s a simple qml app that can be easily configured. Creation is almost as simple as 『classic』 webapp, but result is more powerfull with the a nice navigation feature. A rather advanced example of this is the YouTube app from Mateo Salta which has quite some modifications on top of the template.

(原始記錄 見 /home/docs/checkouts/readthedocs.org/user_builds/docsubportscom-gitlab-zh-hant/checkouts/latest/appdev/webapp/index.rst ,第 19 行)

Todo

Document the process for Nexus 4 (mako)

(原始記錄 見 /home/docs/checkouts/readthedocs.org/user_builds/docsubportscom-gitlab-zh-hant/checkouts/latest/systemdev/kernel-hal.rst ,第 57 行)

ReadTheDocs hosting

The actual documents website is built and hosted for us by the Read The Docs project. Our RTD setup contains one main project for English and one additional project for each supported language added as translations to the main project. If you are a maintainer and want to add a language, first create a new project with manual import and set the language appropriately. Afterwards add this as a translation in the Admin page of the main project.