From eb56f6237ba00c69b4f4e270b8ef4e3fe1d45982 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Mon, 16 Aug 2021 07:27:56 +0200 Subject: [PATCH] Update RTD MkDocs (#3457) * Modernize docs * Remove old style hacks * Add comment --- .gitignore | 8 +++ .readthedocs.yaml | 15 ++++++ docs/css/extra.css | 45 ++--------------- docs/img/favicon.ico | Bin 0 -> 119277 bytes docs/js/extra.js | 6 ++- docs/requirements.txt | 1 + mkdocs.yml | 115 +++++++++++++++++++++--------------------- 7 files changed, 91 insertions(+), 99 deletions(-) create mode 100644 .readthedocs.yaml create mode 100644 docs/img/favicon.ico create mode 100644 docs/requirements.txt diff --git a/.gitignore b/.gitignore index a99b8a5a..d820c77c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,17 @@ app/ components/*/.output/ tools/toolchains extmods.ini +.ccache +bin #ignore Eclipse project files .cproject .project .settings/ + +# ignore VS Code files .vscode/** + +# ignore IDEA files +.idea +*.iml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..983ee9b1 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,15 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +mkdocs: + configuration: mkdocs.yml + +# Optionally set the version of Python and requirements required to build your docs +python: + version: "3.7" + install: + - requirements: docs/requirements.txt diff --git a/docs/css/extra.css b/docs/css/extra.css index dbe505ae..a5e31057 100644 --- a/docs/css/extra.css +++ b/docs/css/extra.css @@ -1,42 +1,7 @@ -blockquote { - padding: 0 15px; - color: #777; - border-left: 4px solid #ddd; -} - -.rst-content blockquote { - margin: 0; -} - -/*shifts the nested subnav label to the left to align it with the regular nav item labels*/ -ul.subnav ul.subnav span { - padding-left: 1.3em; -} - -body { - font-size: 100%; -} -p { - line-height: 20px; - margin-bottom: 16px; -} -h1, h2 { - border-bottom: 1px solid #eee; - line-height: 1.2; - margin-top: 1.2em; - margin-bottom: 16px; -} -h3, h4, h5, h6 { - margin: 1em 0 0.7em 0; -} -code { +/*https://github.com/mkdocs/mkdocs/issues/2538*/ +.wy-menu-vertical header, +.wy-menu-vertical p.caption { + color: #55a5d9; font-size: 85%; - margin-right: 3px; + margin: 12px 0 0; } -table.docutils td code { - font-size: 100%; -} -.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { - line-height: 20px; - margin-bottom: 16px; -} \ No newline at end of file diff --git a/docs/img/favicon.ico b/docs/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..04011552dfc348846b4770d1613abbcc0dc3ab35 GIT binary patch literal 119277 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 QcxMY_WezP-5Utby0~C<3p8x;= literal 0 HcmV?d00001 diff --git a/docs/js/extra.js b/docs/js/extra.js index 3a18ada8..2653f4a7 100644 --- a/docs/js/extra.js +++ b/docs/js/extra.js @@ -43,9 +43,11 @@ var nodemcu = nodemcu || {}; * replaces the relative path with an absolute path based on the selected branch. */ function replaceRelativeLinksWithStaticGitHubUrl() { - var relativePath = "../../.."; + var relativePath = "../.."; var gitHubPath = "https://github.com/nodemcu/nodemcu-firmware/tree/" + determineSelectedBranch(); - var gitHubLinks = $("a[href^='" + relativePath + "']").each(function (index) { + // 'div.section' denotes the container into which doc pages are integrated i.e. "the content" w/o navigation, + // header, breadcrumbs, footer, etc. It's important that only links in this very section are manipulated. + var gitHubLinks = $("div.section a[href^='" + relativePath + "']").each(function (index) { var url = $(this).attr('href'); $(this).attr('href', url.replace(relativePath, gitHubPath)); }); diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..c2e8755b --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1 @@ +mkdocs==1.2.2 diff --git a/mkdocs.yml b/mkdocs.yml index 37ff0aaf..3ca7334f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -4,69 +4,70 @@ repo_url: https://github.com/nodemcu/nodemcu-firmware/ theme: name: "readthedocs" + hljs_languages: + - lua strict: false markdown_extensions: -#http://pythonhosted.org/Markdown/extensions/admonition.html -- admonition: -- toc: - permalink: True + #http://pythonhosted.org/Markdown/extensions/admonition.html + - admonition: + - toc: + permalink: True -#requird due to https://github.com/rtfd/readthedocs.org/issues/1313 #see http://mkdocs.readthedocs.org/en/latest/user-guide/styling-your-docs/#customising-a-theme extra_css: -- css/extra.css + - css/extra.css extra_javascript: -- js/extra.js + - js/extra.js pages: -- Overview: 'index.md' -- Basics: - - Building the firmware: 'build.md' - - Flashing the firmware: 'flash.md' - - Uploading code: 'upload.md' - - JTAG debugging: 'debug.md' - - Support: 'support.md' -- FAQs: - - Lua Developer FAQ: 'lua-developer-faq.md' - - Extension Developer FAQ: 'extn-developer-faq.md' -- Whitepapers: - - Filesystem on SD card: 'sdcard.md' - - Writing external C modules: 'modules/extmods.md' -- C Modules: - - 'adc': 'modules/adc.md' - - 'bit': 'modules/bit.md' - - 'bthci': 'modules/bthci.md' - - 'can': 'modules/can.md' - - 'crypto': 'modules/crypto.md' - - 'dac': 'modules/dac.md' - - 'dht': 'modules/dht.md' - - 'encoder': 'modules/encoder.md' - - 'eth': 'modules/eth.md' - - 'file': 'modules/file.md' - - 'gpio': 'modules/gpio.md' - - 'http': 'modules/http.md' - - 'i2c': 'modules/i2c.md' - - 'i2s': 'modules/i2s.md' - - 'ledc': 'modules/ledc.md' - - 'mqtt': 'modules/mqtt.md' - - 'net': 'modules/net.md' - - 'node': 'modules/node.md' - - 'ota': 'modules/otaupgrade.md' - - 'ow (1-Wire)': 'modules/ow.md' - - 'pulsecnt': 'modules/pulsecnt.md' - - 'qrcodegen': 'modules/qrcodegen.md' - - 'sdmmc': 'modules/sdmmc.md' - - 'sigma delta': 'modules/sigma-delta.md' - - 'sjson': 'modules/sjson.md' - - 'sodium': 'modules/sodium.md' - - 'spi': 'modules/spi.md' - - 'struct': 'modules/struct.md' - - 'time': 'modules/time.md' - - 'tmr': 'modules/tmr.md' - - 'touch': 'modules/touch.md' - - 'u8g2': 'modules/u8g2.md' - - 'uart': 'modules/uart.md' - - 'ucg': 'modules/ucg.md' - - 'wifi': 'modules/wifi.md' - - 'ws2812': 'modules/ws2812.md' + - Overview: 'index.md' + - Basics: + - Building the firmware: 'build.md' + - Flashing the firmware: 'flash.md' + - Uploading code: 'upload.md' + - JTAG debugging: 'debug.md' + - Support: 'support.md' + - FAQs: + - Lua Developer FAQ: 'lua-developer-faq.md' + - Extension Developer FAQ: 'extn-developer-faq.md' + - Whitepapers: + - Filesystem on SD card: 'sdcard.md' + - Writing external C modules: 'modules/extmods.md' + - C Modules: + - 'adc': 'modules/adc.md' + - 'bit': 'modules/bit.md' + - 'bthci': 'modules/bthci.md' + - 'can': 'modules/can.md' + - 'crypto': 'modules/crypto.md' + - 'dac': 'modules/dac.md' + - 'dht': 'modules/dht.md' + - 'encoder': 'modules/encoder.md' + - 'eth': 'modules/eth.md' + - 'file': 'modules/file.md' + - 'gpio': 'modules/gpio.md' + - 'http': 'modules/http.md' + - 'i2c': 'modules/i2c.md' + - 'i2s': 'modules/i2s.md' + - 'ledc': 'modules/ledc.md' + - 'mqtt': 'modules/mqtt.md' + - 'net': 'modules/net.md' + - 'node': 'modules/node.md' + - 'ota': 'modules/otaupgrade.md' + - 'ow (1-Wire)': 'modules/ow.md' + - 'pulsecnt': 'modules/pulsecnt.md' + - 'qrcodegen': 'modules/qrcodegen.md' + - 'sdmmc': 'modules/sdmmc.md' + - 'sigma delta': 'modules/sigma-delta.md' + - 'sjson': 'modules/sjson.md' + - 'sodium': 'modules/sodium.md' + - 'spi': 'modules/spi.md' + - 'struct': 'modules/struct.md' + - 'time': 'modules/time.md' + - 'tmr': 'modules/tmr.md' + - 'touch': 'modules/touch.md' + - 'u8g2': 'modules/u8g2.md' + - 'uart': 'modules/uart.md' + - 'ucg': 'modules/ucg.md' + - 'wifi': 'modules/wifi.md' + - 'ws2812': 'modules/ws2812.md'