Sphinx =============================================================================== .. contents:: :local: :depth: 2 Cài đặt Sphinx ******************************************************************************* .. note:: Hướng dẫn này được cài đặt và sử dụng trên ubuntu version 22. `Documentation <https://www.sphinx-doc.org/en/master/>`_. Bước 1: Cài đặt Sphinx --------------------------------------------------------------------------- .. code-block:: bash apt-get install python3-sphinx .. note:: Nếu chưa cài đặt python3 thì hãy cài đặt thêm python3. ``sudo apt install python3``. ``sudo apt install python3-pip``. Bước 2: Tạo project ----------------------------------------------------------------------------- .. note:: Tạo một thư mục rồi tiếp tục những bước sau. **Cài đặt môi trường ảo và cài đặt Sphinx cho môi trường ảo** .. code-block:: bash python -m venv .venv source .venv/bin/activate python -m pip install sphinx **Kiểm tra version của Sphinx** .. code-block:: bash sphinx-build --version **Tạo project** .. note:: Lúc tạo project bằng lệnh dưới đây có thông báo gì thì cứ yes, và làm theo hướng dẫn của các thông báo. .. code-block:: bash sphinx-quickstart docs **Sau khi hoàn thành những bước trên sẽ được đươc cái folder trong folder vừa tạo như sau** .. code-block:: bash .venv docs ├── build ├── make.bat ├── Makefile └── source ├── conf.py ├── index.rst ├── _static └── _templates .. note:: **Khi sử dụng Sphinx thì viết tài liệu trong file có đuôi rst**. Đừng viết ở những file khác như : html, py. Bước 3: Build project và mở file HTML --------------------------------------------------------------------------- .. note:: Trước khi build project hay tải thư viện hãy kiểm tra là đã vào môi trường ảo hay chưa. Nếu chưa vào môi trường ảo thì hãy vào môi trường ảo bằng lênh này: ``source .venv/bin/activate``. - Build project .. code-block:: bash sphinx-build -M html docs/source/ docs/build/ - Mở file HTML .. code-block:: bash google-chrome docs/build/html/index.html .. note:: Có thể sử dụng trình duyệt khác để mở file html Bước 4: Sử dụng *Theme RTD* cho Project --------------------------------------------------------------------------- - Tải và cài đặt theme: .. code-block:: bash pip install sphinx-rtd-theme - Chỉnh sửa file ``conf.py`` thành như sau: .. code-block:: python # Configuration file for the Sphinx documentation builder. # # For the full list of built-in configuration values, see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = 'Tutorial Zephyr in UBUNTU' copyright = '2024, DONGKHOA' author = 'DONGKHOA' release = 'ver 1.0.1' # -- General configuration --------------------------------------------------- extensions = ["sphinx_rtd_theme",] templates_path = ['_templates'] exclude_patterns = [] language = 'vi' # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = 'sphinx_rtd_theme' html_static_path = ['_static'] .. note:: Nhớ chỉnh lại các phần như ``author``, ``project``, ``release``, ``copyright`` Bước 5: Tạo thêm file để có thể deploy trên github --------------------------------------------------------------------------- Tạo file ``sphinx.yml`` trong thư mục ``.github/workflows`` *(tạo thêm)*. Có nội dung như sau: .. code-block:: yaml name: "Sphinx: Render docs" on: push jobs: build: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 - name: Build HTML uses: ammaraskar/sphinx-action@master - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: html-docs path: docs/build/html/ - name: Deploy uses: peaceiris/actions-gh-pages@v3 if: github.ref == 'refs/heads/main' with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: docs/build/html Do ở trên có sử dụng theme RTD nên cần phải thêm hai file ``requirements.in`` và ``requirements.txt``. ``requirements.in`` .. code-block:: python Sphinx>=5 sphinx_rtd_theme ``requirements.txt`` .. code-block:: python # # This file is autogenerated by pip-compile with python 3.10 # To update, run: # # pip-compile docs/requirements.in # alabaster==0.7.12 # via sphinx babel==2.10.3 # via sphinx certifi==2022.6.15 # via requests charset-normalizer==2.1.0 # via requests docutils==0.20.1 # via # sphinx # sphinx-rtd-theme idna==3.3 # via requests imagesize==1.4.1 # via sphinx jinja2==3.1.2 # via sphinx markupsafe==2.1.1 # via jinja2 packaging==21.3 # via sphinx pygments==2.12.0 # via sphinx pyparsing==3.0.9 # via packaging pytz==2022.1 # via babel requests==2.28.1 # via sphinx snowballstemmer==2.2.0 # via sphinx sphinx==5.0.2 # via # -r docs/requirements.in # sphinx-rtd-theme sphinx-rtd-theme==2.0.0 # via -r docs/requirements.in sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==2.0.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx urllib3==1.26.9 # via requests **Project sau khi thêm các file sẽ như sau** .. code-block:: bash .github └── workflows └──sphinx.yml .venv docs ├── build ├── make.bat ├── Makefile └── source ├── conf.py ├── index.rst ├── _static └── _templates requirements.txt requirements.in **Push project lên github.** .. note:: Không nên push folder ``.venv`` lên github. Có thể sử dụng file ``.gitignore``. Bước 6: Deploy trên github --------------------------------------------------------------------------- Sau khi push lên github đợi github tạo ra một branch mới tên là ``gh-pages`` và làm theo hình sau .. image:: img/deploy.png :align: center - **Sau khi build xong thì sẽ có link web tạo ra.** .. image:: img/build.png :align: center