提交 5fa59939 编写于 作者: P Pedro Minatel 提交者: pedro.minatel

[Docs] New docs theme based on ESP-IDF style (#6512)

上级 60c4eea0
name: ReadTheDocs CI
name: Docs CI
on:
push:
......@@ -15,8 +15,8 @@ on:
jobs:
build-docs:
name: Build ReadTheDocs
deploy-preview-docs:
name: Deploy Preview Docs
runs-on: ubuntu-latest
defaults:
run:
......@@ -28,11 +28,23 @@ jobs:
- uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Build
- name: Deploy Preview
env:
DOCS_BUILD_DIR: "./docs/_build/"
DOCS_DEPLOY_PRIVATEKEY: ${{ secrets.DOCS_DEPLOY_KEY }}
DOCS_DEPLOY_SERVER: ${{ secrets.DOCS_PREV_SERVER }}
DOCS_DEPLOY_SERVER_USER: ${{ secrets.DOCS_PREV_SERVER_USER }}
DOCS_DEPLOY_PATH: ${{ secrets.DOCS_PREV_PATH }}
DOCS_DEPLOY_URL_BASE: ${{ secrets.DOCS_PREV_URL }}
run: |
sudo apt update
sudo apt install python3-pip python3-setuptools
# GitHub CI installs pip3 and setuptools outside the path.
# Update the path to include them and run.
PATH=/home/runner/.local/bin:$PATH pip3 install --user -r ./docs/requirements.txt
cd ./docs && PATH=/home/runner/.local/bin:$PATH SPHINXOPTS="-W" make html
source ./docs/utils.sh
add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER
export GIT_VER=$(git describe --always)
echo "PIP install requirements..."
pip3 install --user -r ./docs/requirements.txt
echo "Building the Docs..."
cd ./docs && build-docs -l en
echo "Deploy the Docs..."
deploy-docs
......@@ -23,6 +23,8 @@ boards.sloeber.txt
# Ignore docs build (Sphinx)
docs/build
docs/source/_build
docs/__pycache__/
docs/_build/
# Test log files
*.log
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
LINKCHECKDIR = build/linkcheck
.PHONY: checklinks
checklinks:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(LINKCHECKDIR)
@echo
@echo "Check finished. Report is in $(LINKCHECKDIR)."
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
from esp_docs.conf_docs import * # noqa: F403,F401
languages = ["en"]
# link roles config
github_repo = "espressif/arduino-esp32"
# context used by sphinx_idf_theme
html_context["github_user"] = "espressif"
html_context["github_repo"] = "arduino-esp32"
html_static_path = ["../_static"]
# Conditional content
extensions += ['sphinx_copybutton',
'sphinx_tabs.tabs',
'esp_docs.esp_extensions.dummy_build_system',
]
ESP32_DOCS = [
"index.rst",
]
# Extra options required by sphinx_idf_theme
project_slug = "arduino-esp32"
......@@ -19,7 +19,7 @@ The I2C can be used in two different modes:
* **I2C Master Mode**
* In this mode, the ESP32 generates the clock signal and initiates the communication with the slave device.
.. figure:: ../_static/arduino_i2c_master.png
.. figure:: ../../_static/arduino_i2c_master.png
:align: center
:width: 720
:figclass: align-center
......@@ -27,7 +27,7 @@ The I2C can be used in two different modes:
* **I2C Slave Mode**
* The slave mode, the clock is generated by the master device and responds to the master if the destination address is the same as the destination.
.. figure:: ../_static/arduino_i2c_slave.png
.. figure:: ../../_static/arduino_i2c_slave.png
:align: center
:width: 520
:figclass: align-center
......
......@@ -21,7 +21,7 @@ Working as AP
In this mode, the ESP32 is configured as an Access Point (AP) and it's capable of receiving incoming connections from other devices (stations) by providing
a Wi-Fi network.
.. figure:: ../_static/wifi_esp32_ap.png
.. figure:: ../../_static/wifi_esp32_ap.png
:align: center
:width: 520
:figclass: align-center
......@@ -33,7 +33,7 @@ Working as STA
The STA mode is used to connect the ESP32 to a Wi-Fi network, provided by an Access Point.
.. figure:: ../_static/wifi_esp32_sta.png
.. figure:: ../../_static/wifi_esp32_sta.png
:align: center
:width: 520
:figclass: align-center
......
......@@ -88,7 +88,7 @@ No. Name Type [1]_ Function
Pin Layout
----------
.. figure:: ../_static/esp32-c3_devkitM-1_pinlayout.png
.. figure:: ../../_static/esp32-c3_devkitM-1_pinlayout.png
:align: center
:width: 600
:alt: ESP32-C3-DevKitM-1 (click to enlarge)
......
......@@ -96,7 +96,7 @@ No. Name Type Function
Pin Layout
----------
.. figure:: ../_static/esp32_devkitC_pinlayout.png
.. figure:: ../../_static/esp32_devkitC_pinlayout.png
:align: center
:width: 600
:alt: ESP32-DevKitC-1 (click to enlarge)
......
......@@ -100,7 +100,7 @@ No. Name Type Function
Pin Layout
----------
.. figure:: ../_static/esp32-s2_saola1_pinlayout.png
.. figure:: ../../_static/esp32-s2_saola1_pinlayout.png
:align: center
:width: 600
:alt: ESP32-S2-Saola-1 (click to enlarge)
......
......@@ -28,7 +28,7 @@ For each family, we have SoC variants with some differentiation. The differences
The modules use the SoC internally, including the external flash, PSRAM (in some models) and other essential electronic components. Essentially, all
modules from the same family use the same SoC.
.. figure:: ../_static/soc-module.png
.. figure:: ../../_static/soc-module.png
:align: center
:width: 250
:alt: ESP32 SoC and Module (click to enlarge)
......@@ -58,7 +58,7 @@ Before buying: Keep in mind that for some "must have" features when choosing the
Espressif
---------
.. figure:: ../_static/logo_espressif.png
.. figure:: ../../_static/logo_espressif.png
:align: center
:width: 250
:alt: Espressif Logo
......
# -*- coding: utf-8 -*-
#
# English Language RTD & Sphinx config file
#
# Uses ../conf_common.py for most non-language-specific settings.
# Importing conf_common adds all the non-language-specific
# parts to this conf module
import datetime
try:
from conf_common import * # noqa: F403,F401
except ImportError:
import os
import sys
sys.path.insert(0, os.path.abspath("../"))
from conf_common import * # noqa: F403,F401
# General information about the project.
project = "Arduino-ESP32"
copyright = "2016 - {}, Espressif Systems (Shanghai) Co., Ltd".format(
datetime.datetime.now().year
)
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
language = "en"
\ No newline at end of file
......@@ -62,9 +62,9 @@ Supported Operating Systems
| Windows | Linux | macOS |
+-------------------+-------------------+-------------------+
.. |windows-logo| image:: _static/logo_windows.png
.. |linux-logo| image:: _static/logo_linux.png
.. |macos-logo| image:: _static/logo_macos.png
.. |windows-logo| image:: ../_static/logo_windows.png
.. |linux-logo| image:: ../_static/logo_linux.png
.. |macos-logo| image:: ../_static/logo_macos.png
Supported IDEs
---------------------------
......@@ -77,8 +77,8 @@ Here is the list of supported IDE for Arduino ESP32 support integration.
| Arduino IDE | PlatformIO |
+-------------------+-------------------+
.. |arduino-logo| image:: _static/logo_arduino.png
.. |pio-logo| image:: _static/logo_pio.png
.. |arduino-logo| image:: ../_static/logo_arduino.png
.. |pio-logo| image:: ../_static/logo_pio.png
See `Installing Guides <installing.html>`_ for more details on how to install the Arduino ESP32 support.
......
......@@ -309,7 +309,7 @@ After that, you can use the following structure to include the image in the docs
.. code-block::
.. figure:: ../_static/arduino_i2c_master.png
.. figure:: ../../_static/arduino_i2c_master.png
:align: center
:width: 720
:figclass: align-center
......
......@@ -232,7 +232,7 @@ The USB Mass Storage Class, or USB MSC, is a class used for storage devices, lik
This option can be used to ``Enable`` or ``Disable`` this function at the boot. If this option is ``Enabled``, once the device is connected via USB, one new storage device will appear in the system as a storage drive.
Use this new storage drive to write and read files or to drop a new firmware binary to flash the device.
.. figure:: ../_static/usb_msc_drive.png
.. figure:: ../../_static/usb_msc_drive.png
:align: center
:width: 720
:figclass: align-center
......
......@@ -9,7 +9,6 @@ Here you will find all the relevant information about the project.
.. toctree::
:maxdepth: 1
:caption: Contents:
Getting Started <getting_started>
Libraries <libraries>
......
......@@ -13,7 +13,7 @@ To install Arduino-ESP32 support, you can use one of the following options.
Installing using Arduino IDE
----------------------------
.. figure:: _static/logo_arduino.png
.. figure:: ../_static/logo_arduino.png
:align: center
:width: 200
:figclass: align-center
......@@ -42,21 +42,21 @@ To start the installation process using the Boards Managaer, follow these steps:
- Start Arduino and open the Preferences window.
.. figure:: _static/install_guide_preferences.png
.. figure:: ../_static/install_guide_preferences.png
:align: center
:width: 600
:figclass: align-center
- Enter one of the release links above into *Additional Board Manager URLs* field. You can add multiple URLs, separating them with commas.
.. figure:: _static/install_guide_boards_manager_url.png
.. figure:: ../_static/install_guide_boards_manager_url.png
:align: center
:width: 600
:figclass: align-center
- Open Boards Manager from Tools > Board menu and install *esp32* platform (and do not forget to select your ESP32 board from Tools > Board menu after installation).
.. figure:: _static/install_guide_boards_manager_esp32.png
.. figure:: ../_static/install_guide_boards_manager_esp32.png
:align: center
:width: 600
:figclass: align-center
......@@ -66,7 +66,7 @@ To start the installation process using the Boards Managaer, follow these steps:
Installing using PlatformIO
---------------------------
.. figure:: _static/logo_pio.png
.. figure:: ../_static/logo_pio.png
:align: center
:width: 200
:figclass: align-center
......@@ -164,7 +164,7 @@ Steps to install Arduino ESP32 support on Windows:
- Select ``Clone Existing Repository``
.. figure:: _static/win-gui-1.png
.. figure:: ../_static/win-gui-1.png
:align: center
:width: 600
:figclass: align-center
......@@ -177,13 +177,13 @@ Steps to install Arduino ESP32 support on Windows:
**Step 2**
.. figure:: _static/win-gui-2.png
.. figure:: ../_static/win-gui-2.png
:align: center
:figclass: align-center
**Step 3**
.. figure:: _static/win-gui-3.png
.. figure:: ../_static/win-gui-3.png
:align: center
:figclass: align-center
......@@ -192,7 +192,7 @@ Steps to install Arduino ESP32 support on Windows:
**Step 4**
.. figure:: _static/win-gui-4.png
.. figure:: ../_static/win-gui-4.png
:align: center
:figclass: align-center
......@@ -200,7 +200,7 @@ Steps to install Arduino ESP32 support on Windows:
**Step 5**
.. figure:: _static/win-gui-5.png
.. figure:: ../_static/win-gui-5.png
:align: center
:figclass: align-center
......@@ -210,7 +210,7 @@ Steps to install Arduino ESP32 support on Windows:
4. Select the COM port that the board is attached to
5. Compile and upload (You might need to hold the boot button while uploading)
.. figure:: _static/arduino-ide.png
.. figure:: ../_static/arduino-ide.png
:align: center
:figclass: align-center
......@@ -219,27 +219,27 @@ How to update to the latest code
1. Start ``Git GUI`` and you should see the repository under ``Open Recent Repository``. Click on it!
.. figure:: _static/win-gui-update-1.png
.. figure:: ../_static/win-gui-update-1.png
:align: center
:figclass: align-center
1. From menu ``Remote`` select ``Fetch from`` > ``origin``
.. figure:: _static/win-gui-update-2.png
.. figure:: ../_static/win-gui-update-2.png
:align: center
:figclass: align-center
1. Wait for git to pull any changes and close ``Git GUI``
2. Open ``[ARDUINO_SKETCHBOOK_DIR]/hardware/espressif/esp32/tools`` and double-click ``get.exe``
.. figure:: _static/win-gui-4.png
.. figure:: ../_static/win-gui-4.png
:align: center
:figclass: align-center
Linux
-----
.. figure:: _static/logo_linux.png
.. figure:: ../_static/logo_linux.png
:align: center
:width: 200
:figclass: align-center
......
......@@ -36,14 +36,14 @@ Prepare the sketch and configuration for initial upload with a serial port
- Update ssid and pass in the sketch so the module can join your Wi-Fi network
- Open File > Preferences, look for “Show verbose output during:” and check out “compilation” option
.. figure:: _static/ota_esp32_verbose.png
.. figure:: ../_static/ota_esp32_verbose.png
:align: center
:figclass: align-center
- Upload sketch (Ctrl+U)
- Now open web browser and enter the url, i.e. http://esp32.local. Once entered, browser should display a form
.. figure:: _static/ota_esp32_login.png
.. figure:: ../_static/ota_esp32_login.png
:align: center
:figclass: align-center
......@@ -56,7 +56,7 @@ Prepare the sketch and configuration for initial upload with a serial port
Now click on the Login button and browser will display an upload form
.. figure:: _static/ota_esp32_upload.png
.. figure:: ../_static/ota_esp32_upload.png
:align: center
:figclass: align-center
......@@ -67,7 +67,7 @@ Exporting Binary file of the Firmware (Code)
- Open up the Code, for Exporting up Binary file
- Now go to Sketch > export compiled Binary
.. figure:: _static/ota_export_to_binary.png
.. figure:: ../_static/ota_export_to_binary.png
:align: center
:figclass: align-center
......
......@@ -21,7 +21,7 @@ Here are the steps for this tutorial.
1. Open the Arduino IDE
.. figure:: ../_static/tutorials/basic/tutorial_basic_ide.png
.. figure:: ../../_static/tutorials/basic/tutorial_basic_ide.png
:align: center
:width: 600
:alt: Arduino IDE (click to enlarge)
......
......@@ -23,7 +23,7 @@ GPIO Matrix and Pin Mux
The ESP32 architecture includes the capability of configuring some peripherals to any of the GPIOs pins, managed by the `IO MUX GPIO`_.
Essentially, this capability means that we can route the internal peripheral into a different physical pin using the IO MUX and the GPIO Matrix.
.. figure:: ../_static/tutorials/peripherals/tutorial_peripheral_diagram.png
.. figure:: ../../_static/tutorials/peripherals/tutorial_peripheral_diagram.png
:align: center
:width: 600
:figclass: align-center
......
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd
# Redirects from "old URL" "new URL"
#
# Space delimited
#
# The old URL must be relative to the document root only and MUST NOT contain the file extension
#
# The new URL can either be an absolute URL or a relative URL
# - For absolute URLs, the URL must be wrapped in double quotation marks. Whatever is inside the quotation marks is
# used verbatim as the URL. Don't forget to add the "http://" or "https://" prefix to your absolute URL.
# - For relative URLs, must be relative to the document root only and MUST NOT be wrapped with any quotation marks.
#
# Empty lines and lines starting with # are ignored
......@@ -2,5 +2,7 @@
# pip install --user -r requirements.txt
#
# matplotlib is currently required only by the script generate_chart.py
sphinx-copybutton==0.3.0
sphinx-tabs==3.2.0
\ No newline at end of file
jinja2==3.0.2
sphinx-copybutton==0.5.0
sphinx-tabs==3.2.0
esp-docs==1.0.2
\ No newline at end of file
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'Arduino-ESP32'
copyright = '2022, Espressif'
author = 'Espressif'
# The full version, including alpha/beta/rc tags
release = '2.0.2'
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx_copybutton',
'sphinx_tabs.tabs'
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []
# -- 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 = 'default'
html_logo = '_static/logo_espressif.png'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Style
# pygments_style = "sphinx"
# Bash helper functions for adding SSH keys
function add_ssh_keys() {
local key_string="${1}"
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo -n "${key_string}" >~/.ssh/id_rsa_base64
base64 -w 0 ~/.ssh/id_rsa_base64 | base64 -di >~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
}
function add_doc_server_ssh_keys() {
local key_string="${1}"
local server_url="${2}"
local server_user="${3}"
add_ssh_keys "${key_string}"
echo -e "Host ${server_url}\n\tStrictHostKeyChecking no\n\tUser ${server_user}\n" >>~/.ssh/config
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册