diff --git a/.github/workflows/preview-docs.yml b/.github/workflows/preview-docs.yml new file mode 100644 index 000000000..6fbadf3ca --- /dev/null +++ b/.github/workflows/preview-docs.yml @@ -0,0 +1,121 @@ +# Builds a preview of the docs for each pull request and uploads it to +# Cloudflare as a Worker *version* with a preview alias. Production keeps +# serving the deployed version; the preview is only reachable at +# https://pr--edgetx-lua-reference-guide.edgetx.workers.dev/ +# +# The PR is built as the version its base branch publishes (main -> "dev", +# edgetx_ -> "", plus "latest" for the latest release branch) on +# top of the current gh-pages tree, so the preview is the whole site with +# that one version replaced. Nothing is pushed to gh-pages. +# +# Only runs for PRs from branches in this repo: fork PRs don't get the +# Cloudflare secrets, and building untrusted code with them available +# would be unsafe anyway. +name: Preview Docs + +on: + pull_request: + branches: + - main + - "edgetx_*" + +permissions: + contents: read + pull-requests: write + +concurrency: + group: preview-docs-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + preview: + if: github.event.pull_request.head.repo.full_name == github.repository + runs-on: ubuntu-latest + + steps: + - name: Check out source + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Resolve version metadata + id: version + shell: bash + env: + LATEST_BRANCH: ${{ vars.DOCS_LATEST_BRANCH || 'edgetx_2.12' }} + run: | + case "${GITHUB_BASE_REF}" in + main) + version_id="dev" + title="Dev" + ;; + edgetx_[0-9]*.[0-9]*) + version_id="${GITHUB_BASE_REF#edgetx_}" + title="${version_id}" + ;; + *) + echo "Unsupported base branch: ${GITHUB_BASE_REF}" >&2 + exit 1 + ;; + esac + + if [[ "${GITHUB_BASE_REF}" == "${LATEST_BRANCH}" ]]; then + aliases="${version_id} latest" + else + aliases="${version_id}" + fi + + { + echo "version_id=${version_id}" + echo "title=${title}" + echo "aliases=${aliases}" + echo "alias=pr-${{ github.event.pull_request.number }}" + } >> "${GITHUB_OUTPUT}" + + - name: Install uv + uses: astral-sh/setup-uv@v10.3.2 + + - name: Set up Python + uses: actions/setup-python@v7 + with: + python-version: "3.11" + + - name: Sync docs dependencies + run: uv sync + + - name: Configure git author + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + - name: Build preview into local gh-pages + env: + DOCS_EDIT_URI: edit/${{ github.head_ref }}/website/md-docs/ + run: | + git branch -f gh-pages origin/gh-pages + uv run mike deploy --update-aliases --title "${{ steps.version.outputs.title }}" ${{ steps.version.outputs.aliases }} + + - name: Export gh-pages tree for Cloudflare + run: | + rm -rf .site-publish + mkdir .site-publish + git archive gh-pages | tar -x -C .site-publish + + - name: Upload preview version to Cloudflare Workers + uses: cloudflare/wrangler-action@v4 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + command: versions upload --preview-alias ${{ steps.version.outputs.alias }} --message "PR #${{ github.event.pull_request.number }} @ ${{ github.event.pull_request.head.sha }}" + + - name: Comment preview link on the PR + env: + GH_TOKEN: ${{ github.token }} + PR_NUMBER: ${{ github.event.pull_request.number }} + HEAD_SHA: ${{ github.event.pull_request.head.sha }} + run: | + url="https://${{ steps.version.outputs.alias }}-edgetx-lua-reference-guide.edgetx.workers.dev/${{ steps.version.outputs.version_id }}/" + body="📖 **Docs preview:** ${url} + + Built from ${HEAD_SHA::7} as the \`${{ steps.version.outputs.version_id }}\` version, on top of the currently published site." + gh pr comment "${PR_NUMBER}" --edit-last --create-if-none --body "${body}" diff --git a/.github/workflows/publish-versioned-docs.yml b/.github/workflows/publish-versioned-docs.yml new file mode 100644 index 000000000..c5f946502 --- /dev/null +++ b/.github/workflows/publish-versioned-docs.yml @@ -0,0 +1,118 @@ +# Publishes each docs branch via `mike deploy` on every push: +# main -> "dev" +# edgetx_ -> "", plus "latest" for the latest release branch +# +# Every branch carries its own MkDocs site (mkdocs.yml + website/md-docs/) +# and an identical copy of this workflow, so a push builds the branch it +# came from. The latest release branch comes from the DOCS_LATEST_BRANCH +# repository variable (falling back to edgetx_2.12), so moving "latest" to +# a new release is a settings change rather than an edit on every branch. +# +# mike keeps the accumulated versioned site on the gh-pages branch; after +# each deploy, the full gh-pages tree is published to Cloudflare Workers +# (static assets, see wrangler.jsonc). Requires the CLOUDFLARE_API_TOKEN and +# CLOUDFLARE_ACCOUNT_ID repository secrets. +name: Publish Versioned Docs + +on: + push: + branches: + - main + - "edgetx_*" + workflow_dispatch: + +permissions: + contents: write + +# Every run rewrites gh-pages and then uploads the whole tree, so run them +# one at a time to avoid racing mike or publishing a stale snapshot. +concurrency: + group: publish-versioned-docs + cancel-in-progress: false + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - name: Check out source + uses: actions/checkout@v7 + with: + fetch-depth: 0 + + - name: Install uv + uses: astral-sh/setup-uv@v10.3.2 + + - name: Set up Python + uses: actions/setup-python@v7 + with: + python-version: "3.11" + + - name: Resolve version metadata + id: version + shell: bash + env: + LATEST_BRANCH: ${{ vars.DOCS_LATEST_BRANCH || 'edgetx_2.12' }} + run: | + branch="${GITHUB_REF_NAME}" + + case "${branch}" in + main) + version_id="dev" + title="Dev" + ;; + edgetx_[0-9]*.[0-9]*) + version_id="${branch#edgetx_}" + title="${version_id}" + ;; + *) + echo "Unsupported branch: ${branch}" >&2 + exit 1 + ;; + esac + + if [[ "${branch}" == "${LATEST_BRANCH}" ]]; then + aliases="${version_id} latest" + is_latest="true" + else + aliases="${version_id}" + is_latest="false" + fi + + { + echo "version_id=${version_id}" + echo "title=${title}" + echo "aliases=${aliases}" + echo "is_latest=${is_latest}" + } >> "${GITHUB_OUTPUT}" + + - name: Sync docs dependencies + run: uv sync + + - name: Configure git author + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + - name: Publish docs with mike + env: + # "Edit this page" should open the branch this version is built from. + DOCS_EDIT_URI: edit/${{ github.ref_name }}/website/md-docs/ + run: uv run mike deploy --push --update-aliases --title "${{ steps.version.outputs.title }}" ${{ steps.version.outputs.aliases }} + + - name: Set default docs version + if: steps.version.outputs.is_latest == 'true' + run: uv run mike set-default --push latest + + - name: Export gh-pages tree for Cloudflare + run: | + rm -rf .site-publish + mkdir .site-publish + git archive gh-pages | tar -x -C .site-publish + + - name: Deploy to Cloudflare Workers + uses: cloudflare/wrangler-action@v4 + with: + apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} + accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + command: deploy diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..f0ad59430 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +/_book/ +/node_modules/ +/book.pdf +/site/ +/.site-legacy-generated/ +/site-legacy/ +.tmp/ +.venv/ +__pycache__/ +/.site-publish/ diff --git a/README.md b/README.md index 3cc56e3f9..0ab4a6521 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,18 @@ -# EdgeTX LUA Reference Guide +# EdgeTX 2.11 Lua Reference Guide -This guide covers the development of user-written scripts for R/C transmitters running the EdgeTX operating system with Lua support. Readers should be familiar with EdgeTX, the EdgeTX Companion, and know how to transfer files the SD card in the transmitter. +Source for the EdgeTX 2.11 version of the Lua Reference Guide, published at +. -{% hint style="info" %} -The latest version of this guide will always be available [here](https://luadoc.edgetx.org). At the top of the left sidebar there is a version option if you are running an older version of EdgeTX and need the docs for that specific version. -{% endhint %} +This content was converted from the original GitBook branch to MkDocs. It is +kept for reference, so it may not include corrections made in later versions. +The page content lives in `website/md-docs/`; edit it there. -## Sections +## Local preview -| Chapter | Content | -| ------------------------------------------- | ----------------------------------------------------------------------------- | -| [Overview](overview/) | Covers various topics of LUA implementation in EdgeTX operating system system | -| [LUA API Reference](lua-api-reference/) | Reference of all constants and functions available in EdgeTX LUA API | -| [LUA API Programming](lua-api-programming/) | EdgeTX LUA programming guide that covers coding techniques with examples. | -| [Appendixes](appendix/) | | +```sh +uv run mkdocs serve -a 127.0.0.1:8014 +``` -## EdgeTX LUA development support - -Quickest way to get support from seasoned EdgeTX LUA developers is to join our Discord server and ask on dedicated #lua channel - -[Join the chat on Discord](https://discord.gg/DrHkAn28sq) - -## LUA Reference guide collaboration - -Please feel free to make suggestions or corrections to the documentation. - -* Preferred method of editing is to use [GitBook](https://www.gitbook.com), as it uses WYSWIG editor allowing two-stage publication. If you want to change or add whole page or become collaborator _\_. - -## Project support - -The EdgeTX team has no intention of making a profit from their work - EdgeTX is free and open source and will remain free and open source. However, the project is more expensive to maintain than most open source projects. This in mainly because there is a never ending flood of hardware to integrate and maintain code for. Hardware that costs. In addition, in order to develop for this hardware, certain specalised test and measurement equipment is also required. - -In order to support this, EdgeTX has chosen to use OpenCollective to allow for donations from the community, as well as funding from manufacturers who choose to partner with and sponsor the project. This also allows for transparent accounting of what the funds are spent on. - -Please visit [our OpenCollective page](https://opencollective.com/edgetx) if you would like to financially help support the project! +Pushes to `edgetx_2.11` are published automatically by +`.github/workflows/publish-versioned-docs.yml`, and pull requests get a +preview deployment from `.github/workflows/preview-docs.yml`. diff --git a/SUMMARY.md b/SUMMARY.md deleted file mode 100644 index 5a07d0cfb..000000000 --- a/SUMMARY.md +++ /dev/null @@ -1,254 +0,0 @@ -# Table of contents - -* [EdgeTX LUA Reference Guide](README.md) -* [Overview](overview/README.md) - * [Lua Basics](overview/lua-basics.md) - * [LUA version and included libraries](overview/version-libraries/README.md) - * [io Library](overview/version-libraries/io-library.md) - * [Script Types](overview/script-types/README.md) - * [One-Time Scripts](overview/script-types/one-time-scripts.md) - * [Telemetry Scripts](overview/script-types/telemetry-scripts.md) - * [Widget Scripts](overview/script-types/widget-scripts.md) - * [Function Scripts](overview/script-types/function-scripts.md) - * [Mixes Scripts](overview/script-types/mixes-scripts.md) - * [Radios](overview/radios/README.md) - * [BetaFPV](overview/radios/betafpv.md) - * [FlySky](overview/radios/flysky.md) - * [FrSky](overview/radios/frsky.md) - * [Jumper](overview/radios/jumper.md) - * [Radiomaster](overview/radios/radiomaster/README.md) - * [TX16S](overview/radios/radiomaster/tx16s.md) - * [Internal indexes](overview/internal-indexes/README.md) - * [Source List](overview/internal-indexes/source-list.md) - * [Switch Positions List](overview/internal-indexes/switch-positions-id.md) -* [LUA API Reference](lua-api-reference/README.md) - * [Constants](lua-api-reference/constants/README.md) - * [Color Constants](lua-api-reference/constants/color-constants.md) - * [Flags and Pattern Constants](lua-api-reference/constants/flags-and-pattern-constants.md) - * [Key Event Constants](lua-api-reference/constants/key-event-constants.md) - * [Logical Switch Function Constants](lua-api-reference/constants/logical-switch-function-constants.md) - * [Screen Constants](lua-api-reference/constants/screen-constants.md) - * [Special Character Constants](lua-api-reference/constants/special-character-constants.md) - * [Special Function Constants](lua-api-reference/constants/special-function-constants.md) - * [Touch Event Constants](lua-api-reference/constants/touch-event-constants.md) - * [Widget Options Constants](lua-api-reference/constants/widget-options.md) - * [Units](lua-api-reference/constants/units.md) - * [Display LCD](lua-api-reference/display-lcd/README.md) - * [Lcd Functions Overview](lua-api-reference/display-lcd/lcd-functions-overview.md) - * [lcd.clear](lua-api-reference/display-lcd/clear.md) - * [lcd.drawBitmap](lua-api-reference/display-lcd/drawbitmap.md) - * [lcd.drawChannel](lua-api-reference/display-lcd/drawchannel.md) - * [lcd.drawCombobox(x, y, w, list, idx \[, flags\])](lua-api-reference/display-lcd/drawcombobox.md) - * [lcd.drawFilledRectangle(x, y, w, h \[, flags\])](lua-api-reference/display-lcd/drawfilledrectangle.md) - * [lcd.drawGauge(x, y, w, h, fill, maxfill \[, flags\])](lua-api-reference/display-lcd/drawgauge.md) - * [lcd.drawLine(x1, y1, x2, y2, pattern, flags)](lua-api-reference/display-lcd/drawline.md) - * [lcd.drawNumber(x, y, value \[, flags\])](lua-api-reference/display-lcd/drawnumber.md) - * [lcd.drawPixmap](lua-api-reference/display-lcd/drawpixmap.md) - * [lcd.drawPoint(x, y)](lua-api-reference/display-lcd/drawpoint.md) - * [lcd.drawRectangle(x, y, w, h \[, flags \[, t\]\])](lua-api-reference/display-lcd/drawrectangle.md) - * [lcd.drawScreenTitle(title, page, pages)](lua-api-reference/display-lcd/drawscreentitle.md) - * [lcd.drawSource(x, y, source \[, flags\])](lua-api-reference/display-lcd/drawsource.md) - * [lcd.drawSwitch(x, y, switch, flags)](lua-api-reference/display-lcd/drawswitch.md) - * [lcd.drawText(x, y, text \[, flags\])](lua-api-reference/display-lcd/drawtext.md) - * [lcd.drawTimer(x, y, value \[, flags\])](lua-api-reference/display-lcd/drawtimer.md) - * [lcd.drawAnnulus(x, y, r1, r2, start, end \[, flags\])](lua-api-reference/display-lcd/drawannulus.md) - * [lcd.drawArc(x, y, r, start, end \[, flags\])](lua-api-reference/display-lcd/drawarc.md) - * [lcd.drawCircle(x, y, r \[, flags\])](lua-api-reference/display-lcd/drawcircle.md) - * [lcd.drawFilledCircle(x, y, r \[, flags\])](lua-api-reference/display-lcd/drawfilledcircle.md) - * [lcd.drawFilledTriangle(x1, y1, x2, y2, x3, y3 \[, flags\])](lua-api-reference/display-lcd/drawfilledtriangle.md) - * [lcd.drawHudRectangle(pitch, roll, xmin, xmax, ymin, ymax \[, flags\])](lua-api-reference/display-lcd/drawhudrectangle.md) - * [lcd.drawLineWithClipping(x1, y1, x2, y2, xmin, xmax, ymin, ymax, pattern \[, flags\])](lua-api-reference/display-lcd/drawlinewithclipping.md) - * [lcd.drawPie(x, y, r, start, end \[, flags\])](lua-api-reference/display-lcd/drawpie.md) - * [lcd.drawTriangle(x1, y1, x2, y2, x3, y3 \[, flags\])](lua-api-reference/display-lcd/drawtriangle.md) - * [lcd.getColor(area)](lua-api-reference/display-lcd/getcolor.md) - * [lcd.getLastLeftPos()](lua-api-reference/display-lcd/getlastleftpos.md) - * [lcd.getLastPos()](lua-api-reference/display-lcd/getlastpos.md) - * [lcd.getLastRightPos()](lua-api-reference/display-lcd/getlastrightpos.md) - * [lcd.drawBitmapPattern(bitmap, x, y \[, flags\])](lua-api-reference/display-lcd/lcd.drawbitmappattern.md) - * [lcd.drawBitmapPatternPie(bitmap, x, y, startAngle, endAngle \[, flags\])](lua-api-reference/display-lcd/lcd.drawbitmappatternpie.md) - * [lcd.drawTextLines(x, y, w, h, text \[, flags\])](lua-api-reference/display-lcd/lcd.drawtextlines.md) - * [lcd.exitFullScreen()](lua-api-reference/display-lcd/lcd.exitfullscreen.md) - * [lcd.invertRect(x, y, w, h \[, flags\])](lua-api-reference/display-lcd/lcd.invertrect.md) - * [lcd.refresh()](lua-api-reference/display-lcd/refresh.md) - * [lcd.RGB](lua-api-reference/display-lcd/rgb.md) - * [lcd.resetBacklightTimeout()](lua-api-reference/display-lcd/resetbacklighttimeout.md) - * [lcd.setColor(area, color)](lua-api-reference/display-lcd/setcolor.md) - * [lcd.sizeText(text \[, flags\])](lua-api-reference/display-lcd/sizetext.md) - * [popupConfirmation(title, message, event)](lua-api-reference/display-lcd/popupconfirmation.md) - * [popupInput(title, event, input, min, max)](lua-api-reference/display-lcd/popupinput.md) - * [popupWarning(title, event)](lua-api-reference/display-lcd/popupwarning.md) - * [GREY()](lua-api-reference/display-lcd/grey.md) - * [LVGL for Lua](lua-api-reference/lvgl-for-lua/README.md) - * [Overview](lua-api-reference/lvgl-for-lua/overview.md) - * [Examples](lua-api-reference/lvgl-for-lua/examples.md) - * [Constants](lua-api-reference/lvgl-for-lua/constants.md) - * [API](lua-api-reference/lvgl-for-lua/api.md) - * [lvgl.align](lua-api-reference/lvgl-for-lua/lvgl.align.md) - * [lvgl.arc](lua-api-reference/lvgl-for-lua/lvgl.arc.md) - * [lvgl.box](lua-api-reference/lvgl-for-lua/lvgl.box.md) - * [lvgl.build](lua-api-reference/lvgl-for-lua/lvgl.build.md) - * [lvgl.button](lua-api-reference/lvgl-for-lua/lvgl.button.md) - * [lvgl.choice](lua-api-reference/lvgl-for-lua/lvgl.choice.md) - * [lvgl.file](lua-api-reference/lvgl-for-lua/lvgl.file.md) - * [lvgl.circle](lua-api-reference/lvgl-for-lua/lvgl.circle.md) - * [lvgl.clear](lua-api-reference/lvgl-for-lua/lvgl.clear.md) - * [lvgl.color](lua-api-reference/lvgl-for-lua/lvgl.color.md) - * [lvgl.confirm](lua-api-reference/lvgl-for-lua/lvgl.confirm.md) - * [lvgl.dialog](lua-api-reference/lvgl-for-lua/lvgl.dialog.md) - * [lvgl.isAppMode](lua-api-reference/lvgl-for-lua/lvgl.isappmode.md) - * [lvgl.isFullScreen](lua-api-reference/lvgl-for-lua/lvgl.isfullscreen.md) - * [lvgl.exitFullScreen](lua-api-reference/lvgl-for-lua/lvgl.exitfullscreen.md) - * [lvgl.font](lua-api-reference/lvgl-for-lua/lvgl.font.md) - * [lvgl.getContext](lua-api-reference/lvgl-for-lua/lvgl.getcontext.md) - * [lvgl.getScrollPos](lua-api-reference/lvgl-for-lua/lvgl.getscrollpos.md) - * [lvgl.hide](lua-api-reference/lvgl-for-lua/lvgl.hide.md) - * [lvgl.hline](lua-api-reference/lvgl-for-lua/lvgl.hline.md) - * [lvgl.image](lua-api-reference/lvgl-for-lua/lvgl.image.md) - * [lvgl.label](lua-api-reference/lvgl-for-lua/lvgl.label.md) - * [lvgl.line](lua-api-reference/lvgl-for-lua/lvgl.line.md) - * [lvgl.menu](lua-api-reference/lvgl-for-lua/lvgl.menu.md) - * [lvgl.message](lua-api-reference/lvgl-for-lua/lvgl.message.md) - * [lvgl.momentaryButton](lua-api-reference/lvgl-for-lua/lvgl.momentarybutton.md) - * [lvgl.numberEdit](lua-api-reference/lvgl-for-lua/lvgl.numberedit.md) - * [lvgl.page](lua-api-reference/lvgl-for-lua/lvgl.page.md) - * [lvgl.qrcode](lua-api-reference/lvgl-for-lua/lvgl.qrcode.md) - * [lvgl.rectangle](lua-api-reference/lvgl-for-lua/lvgl.rectangle.md) - * [lvgl.set](lua-api-reference/lvgl-for-lua/lvgl.set.md) - * [lvgl.setting](lua-api-reference/lvgl-for-lua/lvgl.setting.md) - * [lvgl.show](lua-api-reference/lvgl-for-lua/lvgl.show.md) - * [lvgl.slider](lua-api-reference/lvgl-for-lua/lvgl.slider.md) - * [lvgl.verticalSlider](lua-api-reference/lvgl-for-lua/lvgl.verticalslider.md) - * [lvgl.source](lua-api-reference/lvgl-for-lua/lvgl.source.md) - * [lvgl.switch](lua-api-reference/lvgl-for-lua/lvgl.switch.md) - * [lvgl.textEdit](lua-api-reference/lvgl-for-lua/lvgl.textedit.md) - * [lvgl.timer](lua-api-reference/lvgl-for-lua/lvgl.timer.md) - * [lvgl.toggle](lua-api-reference/lvgl-for-lua/lvgl.toggle.md) - * [lvgl.triangle](lua-api-reference/lvgl-for-lua/lvgl.triangle.md) - * [lvgl.vline](lua-api-reference/lvgl-for-lua/lvgl.vline.md) - * [Model Functions](lua-api-reference/model/README.md) - * [model.defaultInputs](lua-api-reference/model/defaultinputs.md) - * [model.deleteFlightModes](lua-api-reference/model/deleteflightmodes.md) - * [model.deleteInput](lua-api-reference/model/deleteinput.md) - * [model.deleteInputs](lua-api-reference/model/deleteinputs.md) - * [model.deleteMix](lua-api-reference/model/deletemix.md) - * [model.deleteMixes](lua-api-reference/model/deletemixes.md) - * [model.getCurve](lua-api-reference/model/getcurve.md) - * [model.getCustomFunction(function)](lua-api-reference/model/getcustomfunction.md) - * [model.getFlightMode(index)](lua-api-reference/model/getflightmode.md) - * [model.getGlobalVariable(index, flight\_mode)](lua-api-reference/model/getglobalvariable.md) - * [model.getInfo](lua-api-reference/model/getinfo.md) - * [model.getInput(input, line)](lua-api-reference/model/getinput.md) - * [model.getInputsCount(input)](lua-api-reference/model/getinputscount.md) - * [model.getLogicalSwitch(switch)](lua-api-reference/model/getlogicalswitch.md) - * [model.getMix(channel, line)](lua-api-reference/model/getmix.md) - * [model.getMixesCount(channel)](lua-api-reference/model/getmixescount.md) - * [model.getModule(index)](lua-api-reference/model/getmodule.md) - * [model.getOutput(index)](lua-api-reference/model/getoutput.md) - * [model.getSensor(sensor)](lua-api-reference/model/getsensor.md) - * [model.getTimer(timer)](lua-api-reference/model/gettimer.md) - * [model.insertInput(input, line, value)](lua-api-reference/model/insertinput.md) - * [model.insertMix(channel, line, value)](lua-api-reference/model/insertmix.md) - * [model.getSwashRing()](lua-api-reference/model/model.getswashring.md) - * [model.setSwashRing(params)](lua-api-reference/model/model.setswashring-params.md) - * [model.resetSensor(sensor)](lua-api-reference/model/resetsensor.md) - * [model.resetTimer(timer)](lua-api-reference/model/resettimer.md) - * [model.setCurve(curve, params)](lua-api-reference/model/setcurve.md) - * [model.setCustomFunction(function, value)](lua-api-reference/model/setcustomfunction.md) - * [model.setFlightMode(index, params)](lua-api-reference/model/setflightmode.md) - * [model.setGlobalVariable(index, flight\_mode, value)](lua-api-reference/model/setglobalvariable.md) - * [model.setInfo(value)](lua-api-reference/model/setinfo.md) - * [model.setLogicalSwitch(switch, value)](lua-api-reference/model/setlogicalswitch.md) - * [model.setModule(index, value)](lua-api-reference/model/setmodule.md) - * [model.setOutput(index, value)](lua-api-reference/model/setoutput.md) - * [model.setTimer(timer, value)](lua-api-reference/model/settimer.md) - * [Bitmap Functions](lua-api-reference/bitmap/README.md) - * [Bitmap.resize(bitmap, width, height)](lua-api-reference/bitmap/bitmap.resize.md) - * [Bitmap.toMask(bitmap)](lua-api-reference/bitmap/bitmap.tomask.md) - * [Bitmap.getSize(name)](lua-api-reference/bitmap/getsize.md) - * [Bitmap.open(name)](lua-api-reference/bitmap/open.md) - * [Filesystem](lua-api-reference/filesystem/README.md) - * [chdir(directory)](lua-api-reference/filesystem/chdir.md) - * [del(file or directory)](lua-api-reference/filesystem/del.md) - * [dir(directory)](lua-api-reference/filesystem/dir.md) - * [fstat(path)](lua-api-reference/filesystem/fstat.md) - * [Serial Ports](lua-api-reference/serial-ports/README.md) - * [serialGetPower(port\_nr)](lua-api-reference/serial-ports/serialgetpower.md) - * [serialRead(\[num\])](lua-api-reference/serial-ports/serialread.md) - * [serialSetPower(port\_nr, value)](lua-api-reference/serial-ports/serialsetpower.md) - * [serialWrite(str)](lua-api-reference/serial-ports/serialwrite.md) - * [setSerialBaudrate(baudrate)](lua-api-reference/serial-ports/setserialbaudrate.md) - * [System](lua-api-reference/system/README.md) - * [defaultChannel(stick)](lua-api-reference/system/defaultchannel.md) - * [defaultStick(channel)](lua-api-reference/system/defaultstick.md) - * [getGeneralSettings()](lua-api-reference/system/getgeneralsettings.md) - * [getVersion()](lua-api-reference/system/getversion.md) - * [screenshot()](lua-api-reference/system/rgb.md) - * [Key Inputs](lua-api-reference/key-inputs/README.md) - * [getRotEncMode()](lua-api-reference/key-inputs/getrotencmode.md) - * [getRotEncSpeed()](lua-api-reference/key-inputs/getrotencspeed.md) - * [killEvents(key)](lua-api-reference/key-inputs/killevents.md) - * [LUA Scripts](lua-api-reference/lua-scripts/README.md) - * [getAvailableMemory()](lua-api-reference/lua-scripts/getavailablememory.md) - * [getUsage()](lua-api-reference/lua-scripts/getusage.md) - * [loadScript(file \[, mode\], \[,env\])](lua-api-reference/lua-scripts/loadscript.md) - * [Time](lua-api-reference/time/README.md) - * [getDateTime()](lua-api-reference/time/getdatetime.md) - * [getGlobalTimer()](lua-api-reference/time/getglobaltimer.md) - * [getRtcTime()](lua-api-reference/time/getrtctime.md) - * [getTime()](lua-api-reference/time/gettime.md) - * [resetGlobalTimer(\[type\])](lua-api-reference/time/resetglobaltimer.md) - * [Audio-Sound](lua-api-reference/audio-sound/README.md) - * [playDuration(duration \[, hourFormat\])](lua-api-reference/audio-sound/playduration.md) - * [playFile(name)](lua-api-reference/audio-sound/playfile.md) - * [playHaptic(duration, pause \[, flags\])](lua-api-reference/audio-sound/playhaptic.md) - * [playNumber(value, unit \[, attributes\])](lua-api-reference/audio-sound/playnumber.md) - * [playTone(frequency, duration, pause \[, flags \[, freqIncr\]\])](lua-api-reference/audio-sound/playtone.md) - * [flushAudio()](lua-api-reference/audio-sound/flushaudio.md) - * [Telemetry](lua-api-reference/telemetry/README.md) - * [getRSSI()](lua-api-reference/telemetry/getrssi.md) - * [RF module](lua-api-reference/rf-module/README.md) - * [accessTelemetryPush()](lua-api-reference/rf-module/accesstelemetrypush.md) - * [crossfireTelemetryPop()](lua-api-reference/rf-module/crossfiretelemetrypop.md) - * [crossfireTelemetryPush()](lua-api-reference/rf-module/crossfiretelemetrypush.md) - * [ghostTelemetryPop()](lua-api-reference/rf-module/ghosttelemetrypop.md) - * [ghostTelemetryPush()](lua-api-reference/rf-module/ghosttelemetrypush.md) - * [sportTelemetryPop()](lua-api-reference/rf-module/sporttelemetrypop.md) - * [sportTelemetryPush()](lua-api-reference/rf-module/sporttelemetrypush.md) - * [getRAS()](lua-api-reference/rf-module/getras.md) - * [multiBuffer(address\[,value\])](lua-api-reference/rf-module/multibuffer-address-value.md) - * [GPS](lua-api-reference/gps/README.md) - * [getTxGPS()](lua-api-reference/gps/gettxgps.md) - * [Variables](lua-api-reference/variables/README.md) - * [getFieldInfo(source)](lua-api-reference/variables/getfieldinfo.md) - * [getFlightMode(mode)](lua-api-reference/variables/getflightmode.md) - * [getLogicalSwitchValue(id)](lua-api-reference/variables/getlogicalswitchvalue.md) - * [getOutputValue(outputIndex)](lua-api-reference/variables/getoutputvalue.md) - * [getShmVar(id)](lua-api-reference/variables/getshmvar.md) - * [getSourceIndex(sourceName)](lua-api-reference/variables/getsourceindex.md) - * [getSourceName(sourceIndex)](lua-api-reference/variables/getsourcename.md) - * [getSourceValue(source)](lua-api-reference/variables/getsourcevalue.md) - * [getSwitchIndex(positionName)](lua-api-reference/variables/getswitchindex.md) - * [getSwitchName(switchIndex)](lua-api-reference/variables/getswitchname.md) - * [getSwitchValue(switchIndex)](lua-api-reference/variables/getswitchvalue.md) - * [getValue(source)](lua-api-reference/variables/getvalue.md) - * [setShmVar(id, value)](lua-api-reference/variables/setshmvar.md) - * [setStickySwitch(id, value)](lua-api-reference/variables/setstickyswitch.md) - * [sources(\[first\[, last\]\])](lua-api-reference/variables/sources.md) - * [switches(\[first\[, last\]\])](lua-api-reference/variables/switches.md) -* [LUA API Programming](lua-api-programming/README.md) - * [Data Exchange with the EdgeTX Model Setup](lua-api-programming/data-exchange-with-the-edgetx-model-setup.md) - * [Drawing Flags and Colors](lua-api-programming/drawing-flags-and-colors.md) - * [Init Function Syntax](lua-api-programming/init-function-syntax.md) - * [Input Table Syntax](lua-api-programming/input-table-syntax.md) - * [Loading Code Modules Dynamically](lua-api-programming/loading-code-modules-dynamically.md) - * [Output Table Syntax](lua-api-programming/output-table-syntax.md) - * [Return Statement Syntax](lua-api-programming/return-statement-syntax.md) - * [Run Function Syntax](lua-api-programming/run-function-syntax.md) - * [Saving Memory](lua-api-programming/saving-memory.md) - * [Using Key and Touch Events](lua-api-programming/using-key-and-touch-events.md) - * [Advanced Topics](lua-api-programming/advanced-topics/README.md) - * [Debugging techniques](lua-api-programming/advanced-topics/debugging-techniques.md) - * [Lua data sharing across scripts](lua-api-programming/advanced-topics/lua-data-sharing-across-scripts.md) - * [Speed/memory optimizaton tricks](lua-api-programming/advanced-topics/optimization-tricks.md) -* [Appendixes](appendix/README.md) - * [Fonts](appendix/fonts.md) diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 000000000..ba842c57a --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,348 @@ +site_name: EdgeTX Lua Reference Guide +site_description: EdgeTX 2.11 Lua documentation +site_url: https://luadoc.edgetx.org/ +repo_url: https://github.com/EdgeTX/lua-reference-guide +repo_name: EdgeTX/lua-reference-guide +# The publish workflow sets DOCS_EDIT_URI to the branch being built. +edit_uri: !ENV [DOCS_EDIT_URI, "edit/edgetx_2.11/website/md-docs/"] +docs_dir: website/md-docs +site_dir: site +theme: + name: material + logo: assets/edgetx-logo.svg + favicon: assets/edgetx-logo.svg + font: false + palette: + - media: '(prefers-color-scheme: light)' + scheme: default + primary: custom + accent: custom + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: '(prefers-color-scheme: dark)' + scheme: slate + primary: custom + accent: custom + toggle: + icon: material/brightness-4 + name: Switch to light mode + features: + - navigation.indexes + - navigation.path + - navigation.top + - toc.follow + - search.suggest + - search.highlight + - content.code.copy + - content.action.edit +plugins: +- search: + separator: '[\s\-\.]+' +- minify: + minify_html: true +extra_css: +- stylesheets/extra-live-v2.css +extra_javascript: +- javascripts/mobile-nav-inline.js +- javascripts/legacy-version-banner.js +extra: + version: + provider: mike + default: latest + alias: true +markdown_extensions: +- tables +- admonition +- pymdownx.details +- pymdownx.superfences +- pymdownx.highlight: + anchor_linenums: true +- pymdownx.inlinehilite +- pymdownx.snippets +- pymdownx.tabbed: + alternate_style: true +- pymdownx.tilde +- attr_list +- md_in_html +- toc: + permalink: true +nav: +- EdgeTX Lua Reference Guide: index.md +- Overview: + - Overview: overview/index.md + - Lua Basics: overview/lua-basics.md + - LUA version and included libraries: + - LUA version and included libraries: overview/version-libraries/index.md + - io Library: overview/version-libraries/io-library.md + - Script Types: + - Script Types: overview/script-types/index.md + - One-Time Scripts: overview/script-types/one-time-scripts.md + - Telemetry Scripts: overview/script-types/telemetry-scripts.md + - Widget Scripts: overview/script-types/widget-scripts.md + - Function Scripts: overview/script-types/function-scripts.md + - Mixes Scripts: overview/script-types/mixes-scripts.md + - Radios: + - Radios: overview/radios/index.md + - BetaFPV: overview/radios/betafpv.md + - FlySky: overview/radios/flysky.md + - FrSky: overview/radios/frsky.md + - Jumper: overview/radios/jumper.md + - Radiomaster: + - Radiomaster: overview/radios/radiomaster/index.md + - TX16S: overview/radios/radiomaster/tx16s.md + - Internal indexes: + - Internal indexes: overview/internal-indexes/index.md + - Source List: overview/internal-indexes/source-list.md + - Switch Positions List: overview/internal-indexes/switch-positions-id.md +- LUA API Reference: + - LUA API Reference: api-reference/index.md + - Constants: + - Constants: api-reference/constants/index.md + - Color Constants: api-reference/constants/color-constants.md + - Flags and Pattern Constants: api-reference/constants/flags-and-pattern-constants.md + - Key Event Constants: api-reference/constants/key-event-constants.md + - Logical Switch Function Constants: api-reference/constants/logical-switch-function-constants.md + - Screen Constants: api-reference/constants/screen-constants.md + - Special Character Constants: api-reference/constants/special-character-constants.md + - Special Function Constants: api-reference/constants/special-function-constants.md + - Touch Event Constants: api-reference/constants/touch-event-constants.md + - Widget Options Constants: api-reference/constants/widget-options.md + - Units: api-reference/constants/units.md + - Display LCD: + - Display LCD: api-reference/display-lcd/index.md + - Lcd Functions Overview: api-reference/display-lcd/lcd-functions-overview.md + - lcd.clear: api-reference/display-lcd/clear.md + - lcd.drawBitmap: api-reference/display-lcd/drawbitmap.md + - lcd.drawChannel: api-reference/display-lcd/drawchannel.md + - lcd.drawCombobox(x, y, w, list, idx \[, flags\]): api-reference/display-lcd/drawcombobox.md + - lcd.drawFilledRectangle(x, y, w, h \[, flags\]): api-reference/display-lcd/drawfilledrectangle.md + - lcd.drawGauge(x, y, w, h, fill, maxfill \[, flags\]): api-reference/display-lcd/drawgauge.md + - lcd.drawLine(x1, y1, x2, y2, pattern, flags): api-reference/display-lcd/drawline.md + - lcd.drawNumber(x, y, value \[, flags\]): api-reference/display-lcd/drawnumber.md + - lcd.drawPixmap: api-reference/display-lcd/drawpixmap.md + - lcd.drawPoint(x, y): api-reference/display-lcd/drawpoint.md + - lcd.drawRectangle(x, y, w, h \[, flags \[, t\]\]): api-reference/display-lcd/drawrectangle.md + - lcd.drawScreenTitle(title, page, pages): api-reference/display-lcd/drawscreentitle.md + - lcd.drawSource(x, y, source \[, flags\]): api-reference/display-lcd/drawsource.md + - lcd.drawSwitch(x, y, switch, flags): api-reference/display-lcd/drawswitch.md + - lcd.drawText(x, y, text \[, flags\]): api-reference/display-lcd/drawtext.md + - lcd.drawTimer(x, y, value \[, flags\]): api-reference/display-lcd/drawtimer.md + - lcd.drawAnnulus(x, y, r1, r2, start, end \[, flags\]): api-reference/display-lcd/drawannulus.md + - lcd.drawArc(x, y, r, start, end \[, flags\]): api-reference/display-lcd/drawarc.md + - lcd.drawCircle(x, y, r \[, flags\]): api-reference/display-lcd/drawcircle.md + - lcd.drawFilledCircle(x, y, r \[, flags\]): api-reference/display-lcd/drawfilledcircle.md + - lcd.drawFilledTriangle(x1, y1, x2, y2, x3, y3 \[, flags\]): api-reference/display-lcd/drawfilledtriangle.md + - lcd.drawHudRectangle(pitch, roll, xmin, xmax, ymin, ymax \[, flags\]): api-reference/display-lcd/drawhudrectangle.md + - lcd.drawLineWithClipping(x1, y1, x2, y2, xmin, xmax, ymin, ymax, pattern \[, flags\]): api-reference/display-lcd/drawlinewithclipping.md + - lcd.drawPie(x, y, r, start, end \[, flags\]): api-reference/display-lcd/drawpie.md + - lcd.drawTriangle(x1, y1, x2, y2, x3, y3 \[, flags\]): api-reference/display-lcd/drawtriangle.md + - lcd.getColor(area): api-reference/display-lcd/getcolor.md + - lcd.getLastLeftPos(): api-reference/display-lcd/getlastleftpos.md + - lcd.getLastPos(): api-reference/display-lcd/getlastpos.md + - lcd.getLastRightPos(): api-reference/display-lcd/getlastrightpos.md + - lcd.drawBitmapPattern(bitmap, x, y \[, flags\]): api-reference/display-lcd/lcd-drawbitmappattern.md + - lcd.drawBitmapPatternPie(bitmap, x, y, startAngle, endAngle \[, flags\]): api-reference/display-lcd/lcd-drawbitmappatternpie.md + - lcd.drawTextLines(x, y, w, h, text \[, flags\]): api-reference/display-lcd/lcd-drawtextlines.md + - lcd.exitFullScreen(): api-reference/display-lcd/lcd-exitfullscreen.md + - lcd.invertRect(x, y, w, h \[, flags\]): api-reference/display-lcd/lcd-invertrect.md + - lcd.refresh(): api-reference/display-lcd/refresh.md + - lcd.RGB: api-reference/display-lcd/rgb.md + - lcd.resetBacklightTimeout(): api-reference/display-lcd/resetbacklighttimeout.md + - lcd.setColor(area, color): api-reference/display-lcd/setcolor.md + - lcd.sizeText(text \[, flags\]): api-reference/display-lcd/sizetext.md + - popupConfirmation(title, message, event): api-reference/display-lcd/popupconfirmation.md + - popupInput(title, event, input, min, max): api-reference/display-lcd/popupinput.md + - popupWarning(title, event): api-reference/display-lcd/popupwarning.md + - GREY(): api-reference/display-lcd/grey.md + - LVGL for Lua: + - LVGL for Lua: api-reference/lvgl-for-lua/index.md + - Overview: api-reference/lvgl-for-lua/overview.md + - Examples: api-reference/lvgl-for-lua/examples.md + - Constants: api-reference/lvgl-for-lua/constants.md + - API: api-reference/lvgl-for-lua/api.md + - lvgl.align: api-reference/lvgl-for-lua/lvgl-align.md + - lvgl.arc: api-reference/lvgl-for-lua/lvgl-arc.md + - lvgl.box: api-reference/lvgl-for-lua/lvgl-box.md + - lvgl.build: api-reference/lvgl-for-lua/lvgl-build.md + - lvgl.button: api-reference/lvgl-for-lua/lvgl-button.md + - lvgl.choice: api-reference/lvgl-for-lua/lvgl-choice.md + - lvgl.file: api-reference/lvgl-for-lua/lvgl-file.md + - lvgl.circle: api-reference/lvgl-for-lua/lvgl-circle.md + - lvgl.clear: api-reference/lvgl-for-lua/lvgl-clear.md + - lvgl.color: api-reference/lvgl-for-lua/lvgl-color.md + - lvgl.confirm: api-reference/lvgl-for-lua/lvgl-confirm.md + - lvgl.dialog: api-reference/lvgl-for-lua/lvgl-dialog.md + - lvgl.isAppMode: api-reference/lvgl-for-lua/lvgl-isappmode.md + - lvgl.isFullScreen: api-reference/lvgl-for-lua/lvgl-isfullscreen.md + - lvgl.exitFullScreen: api-reference/lvgl-for-lua/lvgl-exitfullscreen.md + - lvgl.font: api-reference/lvgl-for-lua/lvgl-font.md + - lvgl.getContext: api-reference/lvgl-for-lua/lvgl-getcontext.md + - lvgl.getScrollPos: api-reference/lvgl-for-lua/lvgl-getscrollpos.md + - lvgl.hide: api-reference/lvgl-for-lua/lvgl-hide.md + - lvgl.hline: api-reference/lvgl-for-lua/lvgl-hline.md + - lvgl.image: api-reference/lvgl-for-lua/lvgl-image.md + - lvgl.label: api-reference/lvgl-for-lua/lvgl-label.md + - lvgl.line: api-reference/lvgl-for-lua/lvgl-line.md + - lvgl.menu: api-reference/lvgl-for-lua/lvgl-menu.md + - lvgl.message: api-reference/lvgl-for-lua/lvgl-message.md + - lvgl.momentaryButton: api-reference/lvgl-for-lua/lvgl-momentarybutton.md + - lvgl.numberEdit: api-reference/lvgl-for-lua/lvgl-numberedit.md + - lvgl.page: api-reference/lvgl-for-lua/lvgl-page.md + - lvgl.qrcode: api-reference/lvgl-for-lua/lvgl-qrcode.md + - lvgl.rectangle: api-reference/lvgl-for-lua/lvgl-rectangle.md + - lvgl.set: api-reference/lvgl-for-lua/lvgl-set.md + - lvgl.setting: api-reference/lvgl-for-lua/lvgl-setting.md + - lvgl.show: api-reference/lvgl-for-lua/lvgl-show.md + - lvgl.slider: api-reference/lvgl-for-lua/lvgl-slider.md + - lvgl.verticalSlider: api-reference/lvgl-for-lua/lvgl-verticalslider.md + - lvgl.source: api-reference/lvgl-for-lua/lvgl-source.md + - lvgl.switch: api-reference/lvgl-for-lua/lvgl-switch.md + - lvgl.textEdit: api-reference/lvgl-for-lua/lvgl-textedit.md + - lvgl.timer: api-reference/lvgl-for-lua/lvgl-timer.md + - lvgl.toggle: api-reference/lvgl-for-lua/lvgl-toggle.md + - lvgl.triangle: api-reference/lvgl-for-lua/lvgl-triangle.md + - lvgl.vline: api-reference/lvgl-for-lua/lvgl-vline.md + - Model Functions: + - Model Functions: api-reference/model/index.md + - model.defaultInputs: api-reference/model/defaultinputs.md + - model.deleteFlightModes: api-reference/model/deleteflightmodes.md + - model.deleteInput: api-reference/model/deleteinput.md + - model.deleteInputs: api-reference/model/deleteinputs.md + - model.deleteMix: api-reference/model/deletemix.md + - model.deleteMixes: api-reference/model/deletemixes.md + - model.getCurve: api-reference/model/getcurve.md + - model.getCustomFunction(function): api-reference/model/getcustomfunction.md + - model.getFlightMode(index): api-reference/model/getflightmode.md + - model.getGlobalVariable(index, flight\_mode): api-reference/model/getglobalvariable.md + - model.getInfo: api-reference/model/getinfo.md + - model.getInput(input, line): api-reference/model/getinput.md + - model.getInputsCount(input): api-reference/model/getinputscount.md + - model.getLogicalSwitch(switch): api-reference/model/getlogicalswitch.md + - model.getMix(channel, line): api-reference/model/getmix.md + - model.getMixesCount(channel): api-reference/model/getmixescount.md + - model.getModule(index): api-reference/model/getmodule.md + - model.getOutput(index): api-reference/model/getoutput.md + - model.getSensor(sensor): api-reference/model/getsensor.md + - model.getTimer(timer): api-reference/model/gettimer.md + - model.insertInput(input, line, value): api-reference/model/insertinput.md + - model.insertMix(channel, line, value): api-reference/model/insertmix.md + - model.getSwashRing(): api-reference/model/model-getswashring.md + - model.setSwashRing(params): api-reference/model/model-setswashring-params.md + - model.resetSensor(sensor): api-reference/model/resetsensor.md + - model.resetTimer(timer): api-reference/model/resettimer.md + - model.setCurve(curve, params): api-reference/model/setcurve.md + - model.setCustomFunction(function, value): api-reference/model/setcustomfunction.md + - model.setFlightMode(index, params): api-reference/model/setflightmode.md + - model.setGlobalVariable(index, flight\_mode, value): api-reference/model/setglobalvariable.md + - model.setInfo(value): api-reference/model/setinfo.md + - model.setLogicalSwitch(switch, value): api-reference/model/setlogicalswitch.md + - model.setModule(index, value): api-reference/model/setmodule.md + - model.setOutput(index, value): api-reference/model/setoutput.md + - model.setTimer(timer, value): api-reference/model/settimer.md + - Bitmap Functions: + - Bitmap Functions: api-reference/bitmap/index.md + - Bitmap.resize(bitmap, width, height): api-reference/bitmap/bitmap-resize.md + - Bitmap.toMask(bitmap): api-reference/bitmap/bitmap-tomask.md + - Bitmap.getSize(name): api-reference/bitmap/getsize.md + - Bitmap.open(name): api-reference/bitmap/open.md + - Filesystem: + - Filesystem: api-reference/filesystem/index.md + - chdir(directory): api-reference/filesystem/chdir.md + - del(file or directory): api-reference/filesystem/del.md + - dir(directory): api-reference/filesystem/dir.md + - fstat(path): api-reference/filesystem/fstat.md + - Serial Ports: + - Serial Ports: api-reference/serial-ports/index.md + - serialGetPower(port\_nr): api-reference/serial-ports/serialgetpower.md + - serialRead(\[num\]): api-reference/serial-ports/serialread.md + - serialSetPower(port\_nr, value): api-reference/serial-ports/serialsetpower.md + - serialWrite(str): api-reference/serial-ports/serialwrite.md + - setSerialBaudrate(baudrate): api-reference/serial-ports/setserialbaudrate.md + - System: + - System: api-reference/system/index.md + - defaultChannel(stick): api-reference/system/defaultchannel.md + - defaultStick(channel): api-reference/system/defaultstick.md + - getGeneralSettings(): api-reference/system/getgeneralsettings.md + - getVersion(): api-reference/system/getversion.md + - screenshot(): api-reference/system/rgb.md + - Key Inputs: + - Key Inputs: api-reference/key-inputs/index.md + - getRotEncMode(): api-reference/key-inputs/getrotencmode.md + - getRotEncSpeed(): api-reference/key-inputs/getrotencspeed.md + - killEvents(key): api-reference/key-inputs/killevents.md + - LUA Scripts: + - LUA Scripts: api-reference/lua-scripts/index.md + - getAvailableMemory(): api-reference/lua-scripts/getavailablememory.md + - getUsage(): api-reference/lua-scripts/getusage.md + - loadScript(file \[, mode\], \[,env\]): api-reference/lua-scripts/loadscript.md + - Time: + - Time: api-reference/time/index.md + - getDateTime(): api-reference/time/getdatetime.md + - getGlobalTimer(): api-reference/time/getglobaltimer.md + - getRtcTime(): api-reference/time/getrtctime.md + - getTime(): api-reference/time/gettime.md + - resetGlobalTimer(\[type\]): api-reference/time/resetglobaltimer.md + - Audio-Sound: + - Audio-Sound: api-reference/audio-sound/index.md + - playDuration(duration \[, hourFormat\]): api-reference/audio-sound/playduration.md + - playFile(name): api-reference/audio-sound/playfile.md + - playHaptic(duration, pause \[, flags\]): api-reference/audio-sound/playhaptic.md + - playNumber(value, unit \[, attributes\]): api-reference/audio-sound/playnumber.md + - playTone(frequency, duration, pause \[, flags \[, freqIncr\]\]): api-reference/audio-sound/playtone.md + - flushAudio(): api-reference/audio-sound/flushaudio.md + - Telemetry: + - Telemetry: api-reference/telemetry/index.md + - getRSSI(): api-reference/telemetry/getrssi.md + - RF module: + - RF module: api-reference/rf-module/index.md + - accessTelemetryPush(): api-reference/rf-module/accesstelemetrypush.md + - crossfireTelemetryPop(): api-reference/rf-module/crossfiretelemetrypop.md + - crossfireTelemetryPush(): api-reference/rf-module/crossfiretelemetrypush.md + - ghostTelemetryPop(): api-reference/rf-module/ghosttelemetrypop.md + - ghostTelemetryPush(): api-reference/rf-module/ghosttelemetrypush.md + - sportTelemetryPop(): api-reference/rf-module/sporttelemetrypop.md + - sportTelemetryPush(): api-reference/rf-module/sporttelemetrypush.md + - getRAS(): api-reference/rf-module/getras.md + - multiBuffer(address\[,value\]): api-reference/rf-module/multibuffer-address-value.md + - GPS: + - GPS: api-reference/gps/index.md + - getTxGPS(): api-reference/gps/gettxgps.md + - Variables: + - Variables: api-reference/variables/index.md + - getFieldInfo(source): api-reference/variables/getfieldinfo.md + - getFlightMode(mode): api-reference/variables/getflightmode.md + - getLogicalSwitchValue(id): api-reference/variables/getlogicalswitchvalue.md + - getOutputValue(outputIndex): api-reference/variables/getoutputvalue.md + - getShmVar(id): api-reference/variables/getshmvar.md + - getSourceIndex(sourceName): api-reference/variables/getsourceindex.md + - getSourceName(sourceIndex): api-reference/variables/getsourcename.md + - getSourceValue(source): api-reference/variables/getsourcevalue.md + - getSwitchIndex(positionName): api-reference/variables/getswitchindex.md + - getSwitchName(switchIndex): api-reference/variables/getswitchname.md + - getSwitchValue(switchIndex): api-reference/variables/getswitchvalue.md + - getValue(source): api-reference/variables/getvalue.md + - setShmVar(id, value): api-reference/variables/setshmvar.md + - setStickySwitch(id, value): api-reference/variables/setstickyswitch.md + - sources(\[first\[, last\]\]): api-reference/variables/sources.md + - switches(\[first\[, last\]\]): api-reference/variables/switches.md +- LUA API Programming: + - LUA API Programming: programming/index.md + - Data Exchange with the EdgeTX Model Setup: programming/data-exchange-with-the-edgetx-model-setup.md + - Drawing Flags and Colors: programming/drawing-flags-and-colors.md + - Init Function Syntax: programming/init-function-syntax.md + - Input Table Syntax: programming/input-table-syntax.md + - Loading Code Modules Dynamically: programming/loading-code-modules-dynamically.md + - Output Table Syntax: programming/output-table-syntax.md + - Return Statement Syntax: programming/return-statement-syntax.md + - Run Function Syntax: programming/run-function-syntax.md + - Saving Memory: programming/saving-memory.md + - Using Key and Touch Events: programming/using-key-and-touch-events.md + - Advanced Topics: + - Advanced Topics: programming/advanced-topics/index.md + - Debugging techniques: programming/advanced-topics/debugging-techniques.md + - Lua data sharing across scripts: programming/advanced-topics/lua-data-sharing-across-scripts.md + - Speed/memory optimizaton tricks: programming/advanced-topics/optimization-tricks.md +- Appendixes: + - Appendixes: appendix/index.md + - Fonts: appendix/fonts.md diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..b49058885 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "lua-reference-guide-docs" +version = "0.1.0" +description = "Docs tooling for the EdgeTX Lua Reference Guide migration" +requires-python = ">=3.11" +dependencies = [ + "mkdocs>=1.6,<2.0", + "mkdocs-material>=9.5,<10.0", + "mike>=2,<3", + "mkdocs-minify-plugin>=0.8,<1.0", + "markdown>=3.6,<4.0", +] + +[tool.uv] +package = false diff --git a/uv.lock b/uv.lock new file mode 100644 index 000000000..019bbe245 --- /dev/null +++ b/uv.lock @@ -0,0 +1,627 @@ +version = 1 +revision = 3 +requires-python = ">=3.11" + +[[package]] +name = "babel" +version = "2.18.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/b2/51899539b6ceeeb420d40ed3cd4b7a40519404f9baf3d4ac99dc413a834b/babel-2.18.0.tar.gz", hash = "sha256:b80b99a14bd085fcacfa15c9165f651fbb3406e66cc603abf11c5750937c992d", size = 9959554, upload-time = "2026-02-01T12:30:56.078Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/f5/21d2de20e8b8b0408f0681956ca2c69f1320a3848ac50e6e7f39c6159675/babel-2.18.0-py3-none-any.whl", hash = "sha256:e2b422b277c2b9a9630c1d7903c2a00d0830c409c59ac8cae9081c92f1aeba35", size = 10196845, upload-time = "2026-02-01T12:30:53.445Z" }, +] + +[[package]] +name = "backrefs" +version = "6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/a6/e325ec73b638d3ede4421b5445d4a0b8b219481826cc079d510100af356c/backrefs-6.2.tar.gz", hash = "sha256:f44ff4d48808b243b6c0cdc6231e22195c32f77046018141556c66f8bab72a49", size = 7012303, upload-time = "2026-02-16T19:10:15.828Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/39/3765df263e08a4df37f4f43cb5aa3c6c17a4bdd42ecfe841e04c26037171/backrefs-6.2-py310-none-any.whl", hash = "sha256:0fdc7b012420b6b144410342caeb8adc54c6866cf12064abc9bb211302e496f8", size = 381075, upload-time = "2026-02-16T19:10:04.322Z" }, + { url = "https://files.pythonhosted.org/packages/0f/f0/35240571e1b67ffb19dafb29ab34150b6f59f93f717b041082cdb1bfceb1/backrefs-6.2-py311-none-any.whl", hash = "sha256:08aa7fae530c6b2361d7bdcbda1a7c454e330cc9dbcd03f5c23205e430e5c3be", size = 392874, upload-time = "2026-02-16T19:10:06.314Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/77e8c9745b4d227cce9f5e0a6f68041278c5f9b18588b35905f5f19c1beb/backrefs-6.2-py312-none-any.whl", hash = "sha256:c3f4b9cb2af8cda0d87ab4f57800b57b95428488477be164dd2b47be54db0c90", size = 398787, upload-time = "2026-02-16T19:10:08.274Z" }, + { url = "https://files.pythonhosted.org/packages/c5/71/c754b1737ad99102e03fa3235acb6cb6d3ac9d6f596cbc3e5f236705abd8/backrefs-6.2-py313-none-any.whl", hash = "sha256:12df81596ab511f783b7d87c043ce26bc5b0288cf3bb03610fe76b8189282b2b", size = 400747, upload-time = "2026-02-16T19:10:09.791Z" }, + { url = "https://files.pythonhosted.org/packages/af/75/be12ba31a6eb20dccef2320cd8ccb3f7d9013b68ba4c70156259fee9e409/backrefs-6.2-py314-none-any.whl", hash = "sha256:e5f805ae09819caa1aa0623b4a83790e7028604aa2b8c73ba602c4454e665de7", size = 412602, upload-time = "2026-02-16T19:10:12.317Z" }, + { url = "https://files.pythonhosted.org/packages/21/f8/d02f650c47d05034dcd6f9c8cf94f39598b7a89c00ecda0ecb2911bc27e9/backrefs-6.2-py39-none-any.whl", hash = "sha256:664e33cd88c6840b7625b826ecf2555f32d491800900f5a541f772c485f7cda7", size = 381077, upload-time = "2026-02-16T19:10:13.74Z" }, +] + +[[package]] +name = "certifi" +version = "2026.2.25" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/2d/7bf41579a8986e348fa033a31cdd0e4121114f6bce2457e8876010b092dd/certifi-2026.2.25.tar.gz", hash = "sha256:e887ab5cee78ea814d3472169153c2d12cd43b14bd03329a39a9c6e2e80bfba7", size = 155029, upload-time = "2026-02-25T02:54:17.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3c/c17fb3ca2d9c3acff52e30b309f538586f9f5b9c9cf454f3845fc9af4881/certifi-2026.2.25-py3-none-any.whl", hash = "sha256:027692e4402ad994f1c42e52a4997a9763c646b73e4096e4d5d6db8af1d6f0fa", size = 153684, upload-time = "2026-02-25T02:54:15.766Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/60/e3bec1881450851b087e301bedc3daa9377a4d45f1c26aa90b0b235e38aa/charset_normalizer-3.4.6.tar.gz", hash = "sha256:1ae6b62897110aa7c79ea2f5dd38d1abca6db663687c0b1ad9aed6f6bae3d9d6", size = 143363, upload-time = "2026-03-15T18:53:25.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/28/ff6f234e628a2de61c458be2779cb182bc03f6eec12200d4a525bbfc9741/charset_normalizer-3.4.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:82060f995ab5003a2d6e0f4ad29065b7672b6593c8c63559beefe5b443242c3e", size = 293582, upload-time = "2026-03-15T18:50:25.454Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b7/b1a117e5385cbdb3205f6055403c2a2a220c5ea80b8716c324eaf75c5c95/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60c74963d8350241a79cb8feea80e54d518f72c26db618862a8f53e5023deaf9", size = 197240, upload-time = "2026-03-15T18:50:27.196Z" }, + { url = "https://files.pythonhosted.org/packages/a1/5f/2574f0f09f3c3bc1b2f992e20bce6546cb1f17e111c5be07308dc5427956/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6e4333fb15c83f7d1482a76d45a0818897b3d33f00efd215528ff7c51b8e35d", size = 217363, upload-time = "2026-03-15T18:50:28.601Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d1/0ae20ad77bc949ddd39b51bf383b6ca932f2916074c95cad34ae465ab71f/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:bc72863f4d9aba2e8fd9085e63548a324ba706d2ea2c83b260da08a59b9482de", size = 212994, upload-time = "2026-03-15T18:50:30.102Z" }, + { url = "https://files.pythonhosted.org/packages/60/ac/3233d262a310c1b12633536a07cde5ddd16985e6e7e238e9f3f9423d8eb9/charset_normalizer-3.4.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9cc4fc6c196d6a8b76629a70ddfcd4635a6898756e2d9cac5565cf0654605d73", size = 204697, upload-time = "2026-03-15T18:50:31.654Z" }, + { url = "https://files.pythonhosted.org/packages/25/3c/8a18fc411f085b82303cfb7154eed5bd49c77035eb7608d049468b53f87c/charset_normalizer-3.4.6-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:0c173ce3a681f309f31b87125fecec7a5d1347261ea11ebbb856fa6006b23c8c", size = 191673, upload-time = "2026-03-15T18:50:33.433Z" }, + { url = "https://files.pythonhosted.org/packages/ff/a7/11cfe61d6c5c5c7438d6ba40919d0306ed83c9ab957f3d4da2277ff67836/charset_normalizer-3.4.6-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c907cdc8109f6c619e6254212e794d6548373cc40e1ec75e6e3823d9135d29cc", size = 201120, upload-time = "2026-03-15T18:50:35.105Z" }, + { url = "https://files.pythonhosted.org/packages/b5/10/cf491fa1abd47c02f69687046b896c950b92b6cd7337a27e6548adbec8e4/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:404a1e552cf5b675a87f0651f8b79f5f1e6fd100ee88dc612f89aa16abd4486f", size = 200911, upload-time = "2026-03-15T18:50:36.819Z" }, + { url = "https://files.pythonhosted.org/packages/28/70/039796160b48b18ed466fde0af84c1b090c4e288fae26cd674ad04a2d703/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e3c701e954abf6fc03a49f7c579cc80c2c6cc52525340ca3186c41d3f33482ef", size = 192516, upload-time = "2026-03-15T18:50:38.228Z" }, + { url = "https://files.pythonhosted.org/packages/ff/34/c56f3223393d6ff3124b9e78f7de738047c2d6bc40a4f16ac0c9d7a1cb3c/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7a6967aaf043bceabab5412ed6bd6bd26603dae84d5cb75bf8d9a74a4959d398", size = 218795, upload-time = "2026-03-15T18:50:39.664Z" }, + { url = "https://files.pythonhosted.org/packages/e8/3b/ce2d4f86c5282191a041fdc5a4ce18f1c6bd40a5bd1f74cf8625f08d51c1/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5feb91325bbceade6afab43eb3b508c63ee53579fe896c77137ded51c6b6958e", size = 201833, upload-time = "2026-03-15T18:50:41.552Z" }, + { url = "https://files.pythonhosted.org/packages/3b/9b/b6a9f76b0fd7c5b5ec58b228ff7e85095370282150f0bd50b3126f5506d6/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f820f24b09e3e779fe84c3c456cb4108a7aa639b0d1f02c28046e11bfcd088ed", size = 213920, upload-time = "2026-03-15T18:50:43.33Z" }, + { url = "https://files.pythonhosted.org/packages/ae/98/7bc23513a33d8172365ed30ee3a3b3fe1ece14a395e5fc94129541fc6003/charset_normalizer-3.4.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b35b200d6a71b9839a46b9b7fff66b6638bb52fc9658aa58796b0326595d3021", size = 206951, upload-time = "2026-03-15T18:50:44.789Z" }, + { url = "https://files.pythonhosted.org/packages/32/73/c0b86f3d1458468e11aec870e6b3feac931facbe105a894b552b0e518e79/charset_normalizer-3.4.6-cp311-cp311-win32.whl", hash = "sha256:9ca4c0b502ab399ef89248a2c84c54954f77a070f28e546a85e91da627d1301e", size = 143703, upload-time = "2026-03-15T18:50:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/c6/e3/76f2facfe8eddee0bbd38d2594e709033338eae44ebf1738bcefe0a06185/charset_normalizer-3.4.6-cp311-cp311-win_amd64.whl", hash = "sha256:a9e68c9d88823b274cf1e72f28cb5dc89c990edf430b0bfd3e2fb0785bfeabf4", size = 153857, upload-time = "2026-03-15T18:50:47.563Z" }, + { url = "https://files.pythonhosted.org/packages/e2/dc/9abe19c9b27e6cd3636036b9d1b387b78c40dedbf0b47f9366737684b4b0/charset_normalizer-3.4.6-cp311-cp311-win_arm64.whl", hash = "sha256:97d0235baafca5f2b09cf332cc275f021e694e8362c6bb9c96fc9a0eb74fc316", size = 142751, upload-time = "2026-03-15T18:50:49.234Z" }, + { url = "https://files.pythonhosted.org/packages/e5/62/c0815c992c9545347aeea7859b50dc9044d147e2e7278329c6e02ac9a616/charset_normalizer-3.4.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:2ef7fedc7a6ecbe99969cd09632516738a97eeb8bd7258bf8a0f23114c057dab", size = 295154, upload-time = "2026-03-15T18:50:50.88Z" }, + { url = "https://files.pythonhosted.org/packages/a8/37/bdca6613c2e3c58c7421891d80cc3efa1d32e882f7c4a7ee6039c3fc951a/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a4ea868bc28109052790eb2b52a9ab33f3aa7adc02f96673526ff47419490e21", size = 199191, upload-time = "2026-03-15T18:50:52.658Z" }, + { url = "https://files.pythonhosted.org/packages/6c/92/9934d1bbd69f7f398b38c5dae1cbf9cc672e7c34a4adf7b17c0a9c17d15d/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:836ab36280f21fc1a03c99cd05c6b7af70d2697e374c7af0b61ed271401a72a2", size = 218674, upload-time = "2026-03-15T18:50:54.102Z" }, + { url = "https://files.pythonhosted.org/packages/af/90/25f6ab406659286be929fd89ab0e78e38aa183fc374e03aa3c12d730af8a/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f1ce721c8a7dfec21fcbdfe04e8f68174183cf4e8188e0645e92aa23985c57ff", size = 215259, upload-time = "2026-03-15T18:50:55.616Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ef/79a463eb0fff7f96afa04c1d4c51f8fc85426f918db467854bfb6a569ce3/charset_normalizer-3.4.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e28d62a8fc7a1fa411c43bd65e346f3bce9716dc51b897fbe930c5987b402d5", size = 207276, upload-time = "2026-03-15T18:50:57.054Z" }, + { url = "https://files.pythonhosted.org/packages/f7/72/d0426afec4b71dc159fa6b4e68f868cd5a3ecd918fec5813a15d292a7d10/charset_normalizer-3.4.6-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:530d548084c4a9f7a16ed4a294d459b4f229db50df689bfe92027452452943a0", size = 195161, upload-time = "2026-03-15T18:50:58.686Z" }, + { url = "https://files.pythonhosted.org/packages/bf/18/c82b06a68bfcb6ce55e508225d210c7e6a4ea122bfc0748892f3dc4e8e11/charset_normalizer-3.4.6-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:30f445ae60aad5e1f8bdbb3108e39f6fbc09f4ea16c815c66578878325f8f15a", size = 203452, upload-time = "2026-03-15T18:51:00.196Z" }, + { url = "https://files.pythonhosted.org/packages/44/d6/0c25979b92f8adafdbb946160348d8d44aa60ce99afdc27df524379875cb/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ac2393c73378fea4e52aa56285a3d64be50f1a12395afef9cce47772f60334c2", size = 202272, upload-time = "2026-03-15T18:51:01.703Z" }, + { url = "https://files.pythonhosted.org/packages/2e/3d/7fea3e8fe84136bebbac715dd1221cc25c173c57a699c030ab9b8900cbb7/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:90ca27cd8da8118b18a52d5f547859cc1f8354a00cd1e8e5120df3e30d6279e5", size = 195622, upload-time = "2026-03-15T18:51:03.526Z" }, + { url = "https://files.pythonhosted.org/packages/57/8a/d6f7fd5cb96c58ef2f681424fbca01264461336d2a7fc875e4446b1f1346/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e5a94886bedca0f9b78fecd6afb6629142fd2605aa70a125d49f4edc6037ee6", size = 220056, upload-time = "2026-03-15T18:51:05.269Z" }, + { url = "https://files.pythonhosted.org/packages/16/50/478cdda782c8c9c3fb5da3cc72dd7f331f031e7f1363a893cdd6ca0f8de0/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:695f5c2823691a25f17bc5d5ffe79fa90972cc34b002ac6c843bb8a1720e950d", size = 203751, upload-time = "2026-03-15T18:51:06.858Z" }, + { url = "https://files.pythonhosted.org/packages/75/fc/cc2fcac943939c8e4d8791abfa139f685e5150cae9f94b60f12520feaa9b/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:231d4da14bcd9301310faf492051bee27df11f2bc7549bc0bb41fef11b82daa2", size = 216563, upload-time = "2026-03-15T18:51:08.564Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b7/a4add1d9a5f68f3d037261aecca83abdb0ab15960a3591d340e829b37298/charset_normalizer-3.4.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a056d1ad2633548ca18ffa2f85c202cfb48b68615129143915b8dc72a806a923", size = 209265, upload-time = "2026-03-15T18:51:10.312Z" }, + { url = "https://files.pythonhosted.org/packages/6c/18/c094561b5d64a24277707698e54b7f67bd17a4f857bbfbb1072bba07c8bf/charset_normalizer-3.4.6-cp312-cp312-win32.whl", hash = "sha256:c2274ca724536f173122f36c98ce188fd24ce3dad886ec2b7af859518ce008a4", size = 144229, upload-time = "2026-03-15T18:51:11.694Z" }, + { url = "https://files.pythonhosted.org/packages/ab/20/0567efb3a8fd481b8f34f739ebddc098ed062a59fed41a8d193a61939e8f/charset_normalizer-3.4.6-cp312-cp312-win_amd64.whl", hash = "sha256:c8ae56368f8cc97c7e40a7ee18e1cedaf8e780cd8bc5ed5ac8b81f238614facb", size = 154277, upload-time = "2026-03-15T18:51:13.004Z" }, + { url = "https://files.pythonhosted.org/packages/15/57/28d79b44b51933119e21f65479d0864a8d5893e494cf5daab15df0247c17/charset_normalizer-3.4.6-cp312-cp312-win_arm64.whl", hash = "sha256:899d28f422116b08be5118ef350c292b36fc15ec2daeb9ea987c89281c7bb5c4", size = 142817, upload-time = "2026-03-15T18:51:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/1e/1d/4fdabeef4e231153b6ed7567602f3b68265ec4e5b76d6024cf647d43d981/charset_normalizer-3.4.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:11afb56037cbc4b1555a34dd69151e8e069bee82e613a73bef6e714ce733585f", size = 294823, upload-time = "2026-03-15T18:51:15.755Z" }, + { url = "https://files.pythonhosted.org/packages/47/7b/20e809b89c69d37be748d98e84dce6820bf663cf19cf6b942c951a3e8f41/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:423fb7e748a08f854a08a222b983f4df1912b1daedce51a72bd24fe8f26a1843", size = 198527, upload-time = "2026-03-15T18:51:17.177Z" }, + { url = "https://files.pythonhosted.org/packages/37/a6/4f8d27527d59c039dce6f7622593cdcd3d70a8504d87d09eb11e9fdc6062/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d73beaac5e90173ac3deb9928a74763a6d230f494e4bfb422c217a0ad8e629bf", size = 218388, upload-time = "2026-03-15T18:51:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/f6/9b/4770ccb3e491a9bacf1c46cc8b812214fe367c86a96353ccc6daf87b01ec/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d60377dce4511655582e300dc1e5a5f24ba0cb229005a1d5c8d0cb72bb758ab8", size = 214563, upload-time = "2026-03-15T18:51:20.374Z" }, + { url = "https://files.pythonhosted.org/packages/2b/58/a199d245894b12db0b957d627516c78e055adc3a0d978bc7f65ddaf7c399/charset_normalizer-3.4.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:530e8cebeea0d76bdcf93357aa5e41336f48c3dc709ac52da2bb167c5b8271d9", size = 206587, upload-time = "2026-03-15T18:51:21.807Z" }, + { url = "https://files.pythonhosted.org/packages/7e/70/3def227f1ec56f5c69dfc8392b8bd63b11a18ca8178d9211d7cc5e5e4f27/charset_normalizer-3.4.6-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:a26611d9987b230566f24a0a125f17fe0de6a6aff9f25c9f564aaa2721a5fb88", size = 194724, upload-time = "2026-03-15T18:51:23.508Z" }, + { url = "https://files.pythonhosted.org/packages/58/ab/9318352e220c05efd31c2779a23b50969dc94b985a2efa643ed9077bfca5/charset_normalizer-3.4.6-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:34315ff4fc374b285ad7f4a0bf7dcbfe769e1b104230d40f49f700d4ab6bbd84", size = 202956, upload-time = "2026-03-15T18:51:25.239Z" }, + { url = "https://files.pythonhosted.org/packages/75/13/f3550a3ac25b70f87ac98c40d3199a8503676c2f1620efbf8d42095cfc40/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f8ddd609f9e1af8c7bd6e2aca279c931aefecd148a14402d4e368f3171769fd", size = 201923, upload-time = "2026-03-15T18:51:26.682Z" }, + { url = "https://files.pythonhosted.org/packages/1b/db/c5c643b912740b45e8eec21de1bbab8e7fc085944d37e1e709d3dcd9d72f/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:80d0a5615143c0b3225e5e3ef22c8d5d51f3f72ce0ea6fb84c943546c7b25b6c", size = 195366, upload-time = "2026-03-15T18:51:28.129Z" }, + { url = "https://files.pythonhosted.org/packages/5a/67/3b1c62744f9b2448443e0eb160d8b001c849ec3fef591e012eda6484787c/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:92734d4d8d187a354a556626c221cd1a892a4e0802ccb2af432a1d85ec012194", size = 219752, upload-time = "2026-03-15T18:51:29.556Z" }, + { url = "https://files.pythonhosted.org/packages/f6/98/32ffbaf7f0366ffb0445930b87d103f6b406bc2c271563644bde8a2b1093/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:613f19aa6e082cf96e17e3ffd89383343d0d589abda756b7764cf78361fd41dc", size = 203296, upload-time = "2026-03-15T18:51:30.921Z" }, + { url = "https://files.pythonhosted.org/packages/41/12/5d308c1bbe60cabb0c5ef511574a647067e2a1f631bc8634fcafaccd8293/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2b1a63e8224e401cafe7739f77efd3f9e7f5f2026bda4aead8e59afab537784f", size = 215956, upload-time = "2026-03-15T18:51:32.399Z" }, + { url = "https://files.pythonhosted.org/packages/53/e9/5f85f6c5e20669dbe56b165c67b0260547dea97dba7e187938833d791687/charset_normalizer-3.4.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6cceb5473417d28edd20c6c984ab6fee6c6267d38d906823ebfe20b03d607dc2", size = 208652, upload-time = "2026-03-15T18:51:34.214Z" }, + { url = "https://files.pythonhosted.org/packages/f1/11/897052ea6af56df3eef3ca94edafee410ca699ca0c7b87960ad19932c55e/charset_normalizer-3.4.6-cp313-cp313-win32.whl", hash = "sha256:d7de2637729c67d67cf87614b566626057e95c303bc0a55ffe391f5205e7003d", size = 143940, upload-time = "2026-03-15T18:51:36.15Z" }, + { url = "https://files.pythonhosted.org/packages/a1/5c/724b6b363603e419829f561c854b87ed7c7e31231a7908708ac086cdf3e2/charset_normalizer-3.4.6-cp313-cp313-win_amd64.whl", hash = "sha256:572d7c822caf521f0525ba1bce1a622a0b85cf47ffbdae6c9c19e3b5ac3c4389", size = 154101, upload-time = "2026-03-15T18:51:37.876Z" }, + { url = "https://files.pythonhosted.org/packages/01/a5/7abf15b4c0968e47020f9ca0935fb3274deb87cb288cd187cad92e8cdffd/charset_normalizer-3.4.6-cp313-cp313-win_arm64.whl", hash = "sha256:a4474d924a47185a06411e0064b803c68be044be2d60e50e8bddcc2649957c1f", size = 143109, upload-time = "2026-03-15T18:51:39.565Z" }, + { url = "https://files.pythonhosted.org/packages/25/6f/ffe1e1259f384594063ea1869bfb6be5cdb8bc81020fc36c3636bc8302a1/charset_normalizer-3.4.6-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:9cc6e6d9e571d2f863fa77700701dae73ed5f78881efc8b3f9a4398772ff53e8", size = 294458, upload-time = "2026-03-15T18:51:41.134Z" }, + { url = "https://files.pythonhosted.org/packages/56/60/09bb6c13a8c1016c2ed5c6a6488e4ffef506461aa5161662bd7636936fb1/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ef5960d965e67165d75b7c7ffc60a83ec5abfc5c11b764ec13ea54fbef8b4421", size = 199277, upload-time = "2026-03-15T18:51:42.953Z" }, + { url = "https://files.pythonhosted.org/packages/00/50/dcfbb72a5138bbefdc3332e8d81a23494bf67998b4b100703fd15fa52d81/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b3694e3f87f8ac7ce279d4355645b3c878d24d1424581b46282f24b92f5a4ae2", size = 218758, upload-time = "2026-03-15T18:51:44.339Z" }, + { url = "https://files.pythonhosted.org/packages/03/b3/d79a9a191bb75f5aa81f3aaaa387ef29ce7cb7a9e5074ba8ea095cc073c2/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5d11595abf8dd942a77883a39d81433739b287b6aa71620f15164f8096221b30", size = 215299, upload-time = "2026-03-15T18:51:45.871Z" }, + { url = "https://files.pythonhosted.org/packages/76/7e/bc8911719f7084f72fd545f647601ea3532363927f807d296a8c88a62c0d/charset_normalizer-3.4.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7bda6eebafd42133efdca535b04ccb338ab29467b3f7bf79569883676fc628db", size = 206811, upload-time = "2026-03-15T18:51:47.308Z" }, + { url = "https://files.pythonhosted.org/packages/e2/40/c430b969d41dda0c465aa36cc7c2c068afb67177bef50905ac371b28ccc7/charset_normalizer-3.4.6-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:bbc8c8650c6e51041ad1be191742b8b421d05bbd3410f43fa2a00c8db87678e8", size = 193706, upload-time = "2026-03-15T18:51:48.849Z" }, + { url = "https://files.pythonhosted.org/packages/48/15/e35e0590af254f7df984de1323640ef375df5761f615b6225ba8deb9799a/charset_normalizer-3.4.6-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:22c6f0c2fbc31e76c3b8a86fba1a56eda6166e238c29cdd3d14befdb4a4e4815", size = 202706, upload-time = "2026-03-15T18:51:50.257Z" }, + { url = "https://files.pythonhosted.org/packages/5e/bd/f736f7b9cc5e93a18b794a50346bb16fbfd6b37f99e8f306f7951d27c17c/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7edbed096e4a4798710ed6bc75dcaa2a21b68b6c356553ac4823c3658d53743a", size = 202497, upload-time = "2026-03-15T18:51:52.012Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ba/2cc9e3e7dfdf7760a6ed8da7446d22536f3d0ce114ac63dee2a5a3599e62/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7f9019c9cb613f084481bd6a100b12e1547cf2efe362d873c2e31e4035a6fa43", size = 193511, upload-time = "2026-03-15T18:51:53.723Z" }, + { url = "https://files.pythonhosted.org/packages/9e/cb/5be49b5f776e5613be07298c80e1b02a2d900f7a7de807230595c85a8b2e/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:58c948d0d086229efc484fe2f30c2d382c86720f55cd9bc33591774348ad44e0", size = 220133, upload-time = "2026-03-15T18:51:55.333Z" }, + { url = "https://files.pythonhosted.org/packages/83/43/99f1b5dad345accb322c80c7821071554f791a95ee50c1c90041c157ae99/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:419a9d91bd238052642a51938af8ac05da5b3343becde08d5cdeab9046df9ee1", size = 203035, upload-time = "2026-03-15T18:51:56.736Z" }, + { url = "https://files.pythonhosted.org/packages/87/9a/62c2cb6a531483b55dddff1a68b3d891a8b498f3ca555fbcf2978e804d9d/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5273b9f0b5835ff0350c0828faea623c68bfa65b792720c453e22b25cc72930f", size = 216321, upload-time = "2026-03-15T18:51:58.17Z" }, + { url = "https://files.pythonhosted.org/packages/6e/79/94a010ff81e3aec7c293eb82c28f930918e517bc144c9906a060844462eb/charset_normalizer-3.4.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:0e901eb1049fdb80f5bd11ed5ea1e498ec423102f7a9b9e4645d5b8204ff2815", size = 208973, upload-time = "2026-03-15T18:51:59.998Z" }, + { url = "https://files.pythonhosted.org/packages/2a/57/4ecff6d4ec8585342f0c71bc03efaa99cb7468f7c91a57b105bcd561cea8/charset_normalizer-3.4.6-cp314-cp314-win32.whl", hash = "sha256:b4ff1d35e8c5bd078be89349b6f3a845128e685e751b6ea1169cf2160b344c4d", size = 144610, upload-time = "2026-03-15T18:52:02.213Z" }, + { url = "https://files.pythonhosted.org/packages/80/94/8434a02d9d7f168c25767c64671fead8d599744a05d6a6c877144c754246/charset_normalizer-3.4.6-cp314-cp314-win_amd64.whl", hash = "sha256:74119174722c4349af9708993118581686f343adc1c8c9c007d59be90d077f3f", size = 154962, upload-time = "2026-03-15T18:52:03.658Z" }, + { url = "https://files.pythonhosted.org/packages/46/4c/48f2cdbfd923026503dfd67ccea45c94fd8fe988d9056b468579c66ed62b/charset_normalizer-3.4.6-cp314-cp314-win_arm64.whl", hash = "sha256:e5bcc1a1ae744e0bb59641171ae53743760130600da8db48cbb6e4918e186e4e", size = 143595, upload-time = "2026-03-15T18:52:05.123Z" }, + { url = "https://files.pythonhosted.org/packages/31/93/8878be7569f87b14f1d52032946131bcb6ebbd8af3e20446bc04053dc3f1/charset_normalizer-3.4.6-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:ad8faf8df23f0378c6d527d8b0b15ea4a2e23c89376877c598c4870d1b2c7866", size = 314828, upload-time = "2026-03-15T18:52:06.831Z" }, + { url = "https://files.pythonhosted.org/packages/06/b6/fae511ca98aac69ecc35cde828b0a3d146325dd03d99655ad38fc2cc3293/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5ea69428fa1b49573eef0cc44a1d43bebd45ad0c611eb7d7eac760c7ae771bc", size = 208138, upload-time = "2026-03-15T18:52:08.239Z" }, + { url = "https://files.pythonhosted.org/packages/54/57/64caf6e1bf07274a1e0b7c160a55ee9e8c9ec32c46846ce59b9c333f7008/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:06a7e86163334edfc5d20fe104db92fcd666e5a5df0977cb5680a506fe26cc8e", size = 224679, upload-time = "2026-03-15T18:52:10.043Z" }, + { url = "https://files.pythonhosted.org/packages/aa/cb/9ff5a25b9273ef160861b41f6937f86fae18b0792fe0a8e75e06acb08f1d/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e1f6e2f00a6b8edb562826e4632e26d063ac10307e80f7461f7de3ad8ef3f077", size = 223475, upload-time = "2026-03-15T18:52:11.854Z" }, + { url = "https://files.pythonhosted.org/packages/fc/97/440635fc093b8d7347502a377031f9605a1039c958f3cd18dcacffb37743/charset_normalizer-3.4.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95b52c68d64c1878818687a473a10547b3292e82b6f6fe483808fb1468e2f52f", size = 215230, upload-time = "2026-03-15T18:52:13.325Z" }, + { url = "https://files.pythonhosted.org/packages/cd/24/afff630feb571a13f07c8539fbb502d2ab494019492aaffc78ef41f1d1d0/charset_normalizer-3.4.6-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:7504e9b7dc05f99a9bbb4525c67a2c155073b44d720470a148b34166a69c054e", size = 199045, upload-time = "2026-03-15T18:52:14.752Z" }, + { url = "https://files.pythonhosted.org/packages/e5/17/d1399ecdaf7e0498c327433e7eefdd862b41236a7e484355b8e0e5ebd64b/charset_normalizer-3.4.6-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:172985e4ff804a7ad08eebec0a1640ece87ba5041d565fff23c8f99c1f389484", size = 211658, upload-time = "2026-03-15T18:52:16.278Z" }, + { url = "https://files.pythonhosted.org/packages/b5/38/16baa0affb957b3d880e5ac2144caf3f9d7de7bc4a91842e447fbb5e8b67/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4be9f4830ba8741527693848403e2c457c16e499100963ec711b1c6f2049b7c7", size = 210769, upload-time = "2026-03-15T18:52:17.782Z" }, + { url = "https://files.pythonhosted.org/packages/05/34/c531bc6ac4c21da9ddfddb3107be2287188b3ea4b53b70fc58f2a77ac8d8/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:79090741d842f564b1b2827c0b82d846405b744d31e84f18d7a7b41c20e473ff", size = 201328, upload-time = "2026-03-15T18:52:19.553Z" }, + { url = "https://files.pythonhosted.org/packages/fa/73/a5a1e9ca5f234519c1953608a03fe109c306b97fdfb25f09182babad51a7/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:87725cfb1a4f1f8c2fc9890ae2f42094120f4b44db9360be5d99a4c6b0e03a9e", size = 225302, upload-time = "2026-03-15T18:52:21.043Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f6/cd782923d112d296294dea4bcc7af5a7ae0f86ab79f8fefbda5526b6cfc0/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:fcce033e4021347d80ed9c66dcf1e7b1546319834b74445f561d2e2221de5659", size = 211127, upload-time = "2026-03-15T18:52:22.491Z" }, + { url = "https://files.pythonhosted.org/packages/0e/c5/0b6898950627af7d6103a449b22320372c24c6feda91aa24e201a478d161/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:ca0276464d148c72defa8bb4390cce01b4a0e425f3b50d1435aa6d7a18107602", size = 222840, upload-time = "2026-03-15T18:52:24.113Z" }, + { url = "https://files.pythonhosted.org/packages/7d/25/c4bba773bef442cbdc06111d40daa3de5050a676fa26e85090fc54dd12f0/charset_normalizer-3.4.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:197c1a244a274bb016dd8b79204850144ef77fe81c5b797dc389327adb552407", size = 216890, upload-time = "2026-03-15T18:52:25.541Z" }, + { url = "https://files.pythonhosted.org/packages/35/1a/05dacadb0978da72ee287b0143097db12f2e7e8d3ffc4647da07a383b0b7/charset_normalizer-3.4.6-cp314-cp314t-win32.whl", hash = "sha256:2a24157fa36980478dd1770b585c0f30d19e18f4fb0c47c13aa568f871718579", size = 155379, upload-time = "2026-03-15T18:52:27.05Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7a/d269d834cb3a76291651256f3b9a5945e81d0a49ab9f4a498964e83c0416/charset_normalizer-3.4.6-cp314-cp314t-win_amd64.whl", hash = "sha256:cd5e2801c89992ed8c0a3f0293ae83c159a60d9a5d685005383ef4caca77f2c4", size = 169043, upload-time = "2026-03-15T18:52:28.502Z" }, + { url = "https://files.pythonhosted.org/packages/23/06/28b29fba521a37a8932c6a84192175c34d49f84a6d4773fa63d05f9aff22/charset_normalizer-3.4.6-cp314-cp314t-win_arm64.whl", hash = "sha256:47955475ac79cc504ef2704b192364e51d0d473ad452caedd0002605f780101c", size = 148523, upload-time = "2026-03-15T18:52:29.956Z" }, + { url = "https://files.pythonhosted.org/packages/2a/68/687187c7e26cb24ccbd88e5069f5ef00eba804d36dde11d99aad0838ab45/charset_normalizer-3.4.6-py3-none-any.whl", hash = "sha256:947cf925bc916d90adba35a64c82aace04fa39b46b52d4630ece166655905a69", size = 61455, upload-time = "2026-03-15T18:53:23.833Z" }, +] + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "csscompressor" +version = "0.9.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/2a/8c3ac3d8bc94e6de8d7ae270bb5bc437b210bb9d6d9e46630c98f4abd20c/csscompressor-0.9.5.tar.gz", hash = "sha256:afa22badbcf3120a4f392e4d22f9fff485c044a1feda4a950ecc5eba9dd31a05", size = 237808, upload-time = "2017-11-26T21:13:08.238Z" } + +[[package]] +name = "ghp-import" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343", size = 10943, upload-time = "2022-05-02T15:47:16.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, +] + +[[package]] +name = "htmlmin2" +version = "0.1.13" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/31/a76f4bfa885f93b8167cb4c85cf32b54d1f64384d0b897d45bc6d19b7b45/htmlmin2-0.1.13-py3-none-any.whl", hash = "sha256:75609f2a42e64f7ce57dbff28a39890363bde9e7e5885db633317efbdf8c79a2", size = 34486, upload-time = "2023-03-14T21:28:30.388Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jsmin" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/73/e01e4c5e11ad0494f4407a3f623ad4d87714909f50b17a06ed121034ff6e/jsmin-3.0.1.tar.gz", hash = "sha256:c0959a121ef94542e807a674142606f7e90214a2b3d1eb17300244bbb5cc2bfc", size = 13925, upload-time = "2022-01-16T20:35:59.13Z" } + +[[package]] +name = "lua-reference-guide-docs" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "markdown" }, + { name = "mike" }, + { name = "mkdocs" }, + { name = "mkdocs-material" }, + { name = "mkdocs-minify-plugin" }, +] + +[package.metadata] +requires-dist = [ + { name = "markdown", specifier = ">=3.6,<4.0" }, + { name = "mike", specifier = ">=2,<3" }, + { name = "mkdocs", specifier = ">=1.6,<2.0" }, + { name = "mkdocs-material", specifier = ">=9.5,<10.0" }, + { name = "mkdocs-minify-plugin", specifier = ">=0.8,<1.0" }, +] + +[[package]] +name = "markdown" +version = "3.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", size = 4661, upload-time = "2021-02-05T18:55:30.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, +] + +[[package]] +name = "mike" +version = "2.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "mkdocs" }, + { name = "pyparsing" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag" }, + { name = "verspec" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ec/09/de1cab0018eb5f1fbd9dcc26b6e61f9453c5ec2eb790949d6ed75e1ffe55/mike-2.1.4.tar.gz", hash = "sha256:75d549420b134603805a65fc67f7dcd9fcd0ad1454fb2c893d9e844cba1aa6e4", size = 38190, upload-time = "2026-03-08T02:46:29.187Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/48/f7/10f5e101db25741b91e4f4792c5d97b4fa834ead5cf509ae91097d939424/mike-2.1.4-py3-none-any.whl", hash = "sha256:39933e992e155dd70f2297e749a0ed78d8fd7942bc33a3666195d177758a280e", size = 33820, upload-time = "2026-03-08T02:46:28.149Z" }, +] + +[[package]] +name = "mkdocs" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "ghp-import" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "markupsafe" }, + { name = "mergedeep" }, + { name = "mkdocs-get-deps" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag" }, + { name = "watchdog" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e", size = 3864451, upload-time = "2024-08-30T12:24:05.054Z" }, +] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mergedeep" }, + { name = "platformdirs" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ce/25/b3cccb187655b9393572bde9b09261d267c3bf2f2cdabe347673be5976a6/mkdocs_get_deps-0.2.2.tar.gz", hash = "sha256:8ee8d5f316cdbbb2834bc1df6e69c08fe769a83e040060de26d3c19fad3599a1", size = 11047, upload-time = "2026-03-10T02:46:33.632Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/29/744136411e785c4b0b744d5413e56555265939ab3a104c6a4b719dad33fd/mkdocs_get_deps-0.2.2-py3-none-any.whl", hash = "sha256:e7878cbeac04860b8b5e0ca31d3abad3df9411a75a32cde82f8e44b6c16ff650", size = 9555, upload-time = "2026-03-10T02:46:32.256Z" }, +] + +[[package]] +name = "mkdocs-material" +version = "9.7.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "backrefs" }, + { name = "colorama" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "mkdocs" }, + { name = "mkdocs-material-extensions" }, + { name = "paginate" }, + { name = "pygments" }, + { name = "pymdown-extensions" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/45/29/6d2bcf41ae40802c4beda2432396fff97b8456fb496371d1bc7aad6512ec/mkdocs_material-9.7.6.tar.gz", hash = "sha256:00bdde50574f776d328b1862fe65daeaf581ec309bd150f7bff345a098c64a69", size = 4097959, upload-time = "2026-03-19T15:41:58.161Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/01/bc663630c510822c95c47a66af9fa7a443c295b47d5f041e5e6ae62ef659/mkdocs_material-9.7.6-py3-none-any.whl", hash = "sha256:71b84353921b8ea1ba84fe11c50912cc512da8fe0881038fcc9a0761c0e635ba", size = 9305470, upload-time = "2026-03-19T15:41:55.217Z" }, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, +] + +[[package]] +name = "mkdocs-minify-plugin" +version = "0.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "csscompressor" }, + { name = "htmlmin2" }, + { name = "jsmin" }, + { name = "mkdocs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/52/67/fe4b77e7a8ae7628392e28b14122588beaf6078b53eb91c7ed000fd158ac/mkdocs-minify-plugin-0.8.0.tar.gz", hash = "sha256:bc11b78b8120d79e817308e2b11539d790d21445eb63df831e393f76e52e753d", size = 8366, upload-time = "2024-01-29T16:11:32.982Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/cd/2e8d0d92421916e2ea4ff97f10a544a9bd5588eb747556701c983581df13/mkdocs_minify_plugin-0.8.0-py3-none-any.whl", hash = "sha256:5fba1a3f7bd9a2142c9954a6559a57e946587b21f133165ece30ea145c66aee6", size = 6723, upload-time = "2024-01-29T16:11:31.851Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "paginate" +version = "0.5.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, +] + +[[package]] +name = "pathspec" +version = "1.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.9.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/56/8d4c30c8a1d07013911a8fdbd8f89440ef9f08d07a1b50ab8ca8be5a20f9/platformdirs-4.9.4.tar.gz", hash = "sha256:1ec356301b7dc906d83f371c8f487070e99d3ccf9e501686456394622a01a934", size = 28737, upload-time = "2026-03-05T18:34:13.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/d7/97f7e3a6abb67d8080dd406fd4df842c2be0efaf712d1c899c32a075027c/platformdirs-4.9.4-py3-none-any.whl", hash = "sha256:68a9a4619a666ea6439f2ff250c12a853cd1cbd5158d258bd824a7df6be2f868", size = 21216, upload-time = "2026-03-05T18:34:12.172Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ba/63/06673d1eb6d8f83c0ea1f677d770e12565fb516928b4109c9e2055656a9e/pymdown_extensions-10.21.tar.gz", hash = "sha256:39f4a020f40773f6b2ff31d2cd2546c2c04d0a6498c31d9c688d2be07e1767d5", size = 853363, upload-time = "2026-02-15T20:44:06.748Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/2c/5b079febdc65e1c3fb2729bf958d18b45be7113828528e8a0b5850dd819a/pymdown_extensions-10.21-py3-none-any.whl", hash = "sha256:91b879f9f864d49794c2d9534372b10150e6141096c3908a455e45ca72ad9d3f", size = 268877, upload-time = "2026-02-15T20:44:05.464Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "pyyaml-env-tag" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/11/432f32f8097b03e3cd5fe57e88efb685d964e2e5178a48ed61e841f7fdce/pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04", size = 4722, upload-time = "2025-05-13T15:23:59.629Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "verspec" +version = "0.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/44/8126f9f0c44319b2efc65feaad589cadef4d77ece200ae3c9133d58464d0/verspec-0.1.0.tar.gz", hash = "sha256:c4504ca697b2056cdb4bfa7121461f5a0e81809255b41c03dda4ba823637c01e", size = 27123, upload-time = "2020-11-30T02:24:09.646Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/ce/3b6fee91c85626eaf769d617f1be9d2e15c1cca027bbdeb2e0d751469355/verspec-0.1.0-py3-none-any.whl", hash = "sha256:741877d5633cc9464c45a469ae2a31e801e6dbbaa85b9675d481cda100f11c31", size = 19640, upload-time = "2020-11-30T02:24:08.387Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/24/d9be5cd6642a6aa68352ded4b4b10fb0d7889cb7f45814fb92cecd35f101/watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c", size = 96393, upload-time = "2024-11-01T14:06:31.756Z" }, + { url = "https://files.pythonhosted.org/packages/63/7a/6013b0d8dbc56adca7fdd4f0beed381c59f6752341b12fa0886fa7afc78b/watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2", size = 88392, upload-time = "2024-11-01T14:06:32.99Z" }, + { url = "https://files.pythonhosted.org/packages/d1/40/b75381494851556de56281e053700e46bff5b37bf4c7267e858640af5a7f/watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c", size = 89019, upload-time = "2024-11-01T14:06:34.963Z" }, + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, + { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480, upload-time = "2024-11-01T14:06:42.952Z" }, + { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451, upload-time = "2024-11-01T14:06:45.084Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057, upload-time = "2024-11-01T14:06:47.324Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] diff --git a/lua-api-reference/audio-sound/flushaudio.md b/website/md-docs/api-reference/audio-sound/flushaudio.md similarity index 100% rename from lua-api-reference/audio-sound/flushaudio.md rename to website/md-docs/api-reference/audio-sound/flushaudio.md diff --git a/lua-api-reference/audio-sound/README.md b/website/md-docs/api-reference/audio-sound/index.md similarity index 93% rename from lua-api-reference/audio-sound/README.md rename to website/md-docs/api-reference/audio-sound/index.md index 52002aafa..ef880923f 100644 --- a/lua-api-reference/audio-sound/README.md +++ b/website/md-docs/api-reference/audio-sound/index.md @@ -1,2 +1 @@ # Audio-Sound - diff --git a/lua-api-reference/audio-sound/playduration.md b/website/md-docs/api-reference/audio-sound/playduration.md similarity index 100% rename from lua-api-reference/audio-sound/playduration.md rename to website/md-docs/api-reference/audio-sound/playduration.md diff --git a/lua-api-reference/audio-sound/playfile.md b/website/md-docs/api-reference/audio-sound/playfile.md similarity index 100% rename from lua-api-reference/audio-sound/playfile.md rename to website/md-docs/api-reference/audio-sound/playfile.md diff --git a/lua-api-reference/audio-sound/playhaptic.md b/website/md-docs/api-reference/audio-sound/playhaptic.md similarity index 100% rename from lua-api-reference/audio-sound/playhaptic.md rename to website/md-docs/api-reference/audio-sound/playhaptic.md diff --git a/lua-api-reference/audio-sound/playnumber.md b/website/md-docs/api-reference/audio-sound/playnumber.md similarity index 100% rename from lua-api-reference/audio-sound/playnumber.md rename to website/md-docs/api-reference/audio-sound/playnumber.md diff --git a/lua-api-reference/audio-sound/playtone.md b/website/md-docs/api-reference/audio-sound/playtone.md similarity index 100% rename from lua-api-reference/audio-sound/playtone.md rename to website/md-docs/api-reference/audio-sound/playtone.md diff --git a/lua-api-reference/bitmap/bitmap.resize.md b/website/md-docs/api-reference/bitmap/bitmap-resize.md similarity index 100% rename from lua-api-reference/bitmap/bitmap.resize.md rename to website/md-docs/api-reference/bitmap/bitmap-resize.md diff --git a/lua-api-reference/bitmap/bitmap.tomask.md b/website/md-docs/api-reference/bitmap/bitmap-tomask.md similarity index 100% rename from lua-api-reference/bitmap/bitmap.tomask.md rename to website/md-docs/api-reference/bitmap/bitmap-tomask.md diff --git a/lua-api-reference/bitmap/getsize.md b/website/md-docs/api-reference/bitmap/getsize.md similarity index 100% rename from lua-api-reference/bitmap/getsize.md rename to website/md-docs/api-reference/bitmap/getsize.md diff --git a/lua-api-reference/bitmap/README.md b/website/md-docs/api-reference/bitmap/index.md similarity index 95% rename from lua-api-reference/bitmap/README.md rename to website/md-docs/api-reference/bitmap/index.md index 751cdaae0..26b19d9bb 100644 --- a/lua-api-reference/bitmap/README.md +++ b/website/md-docs/api-reference/bitmap/index.md @@ -1,2 +1 @@ # Bitmap Functions - diff --git a/lua-api-reference/bitmap/open.md b/website/md-docs/api-reference/bitmap/open.md similarity index 100% rename from lua-api-reference/bitmap/open.md rename to website/md-docs/api-reference/bitmap/open.md diff --git a/lua-api-reference/constants/color-constants.md b/website/md-docs/api-reference/constants/color-constants.md similarity index 100% rename from lua-api-reference/constants/color-constants.md rename to website/md-docs/api-reference/constants/color-constants.md diff --git a/lua-api-reference/constants/flags-and-pattern-constants.md b/website/md-docs/api-reference/constants/flags-and-pattern-constants.md similarity index 100% rename from lua-api-reference/constants/flags-and-pattern-constants.md rename to website/md-docs/api-reference/constants/flags-and-pattern-constants.md diff --git a/lua-api-reference/constants/README.md b/website/md-docs/api-reference/constants/index.md similarity index 100% rename from lua-api-reference/constants/README.md rename to website/md-docs/api-reference/constants/index.md diff --git a/lua-api-reference/constants/key-event-constants.md b/website/md-docs/api-reference/constants/key-event-constants.md similarity index 95% rename from lua-api-reference/constants/key-event-constants.md rename to website/md-docs/api-reference/constants/key-event-constants.md index 194db2098..f8f0137d9 100644 --- a/lua-api-reference/constants/key-event-constants.md +++ b/website/md-docs/api-reference/constants/key-event-constants.md @@ -1,2 +1 @@ # Key Event Constants - diff --git a/lua-api-reference/constants/logical-switch-function-constants.md b/website/md-docs/api-reference/constants/logical-switch-function-constants.md similarity index 100% rename from lua-api-reference/constants/logical-switch-function-constants.md rename to website/md-docs/api-reference/constants/logical-switch-function-constants.md diff --git a/lua-api-reference/constants/screen-constants.md b/website/md-docs/api-reference/constants/screen-constants.md similarity index 100% rename from lua-api-reference/constants/screen-constants.md rename to website/md-docs/api-reference/constants/screen-constants.md diff --git a/lua-api-reference/constants/special-character-constants.md b/website/md-docs/api-reference/constants/special-character-constants.md similarity index 100% rename from lua-api-reference/constants/special-character-constants.md rename to website/md-docs/api-reference/constants/special-character-constants.md diff --git a/lua-api-reference/constants/special-function-constants.md b/website/md-docs/api-reference/constants/special-function-constants.md similarity index 100% rename from lua-api-reference/constants/special-function-constants.md rename to website/md-docs/api-reference/constants/special-function-constants.md diff --git a/lua-api-reference/constants/touch-event-constants.md b/website/md-docs/api-reference/constants/touch-event-constants.md similarity index 100% rename from lua-api-reference/constants/touch-event-constants.md rename to website/md-docs/api-reference/constants/touch-event-constants.md diff --git a/lua-api-reference/constants/units.md b/website/md-docs/api-reference/constants/units.md similarity index 100% rename from lua-api-reference/constants/units.md rename to website/md-docs/api-reference/constants/units.md diff --git a/lua-api-reference/constants/widget-options.md b/website/md-docs/api-reference/constants/widget-options.md similarity index 88% rename from lua-api-reference/constants/widget-options.md rename to website/md-docs/api-reference/constants/widget-options.md index d054dbad7..be2e669af 100644 --- a/lua-api-reference/constants/widget-options.md +++ b/website/md-docs/api-reference/constants/widget-options.md @@ -4,15 +4,15 @@ There are several option types that can be specified in the widget options table
TypeDescription
COLORDisplays a color picker, returns a color flag value
BOOLDisplays a toggle/checkbox, value toggles between 0 and 1
STRINGText input option, limited to 8 characters in 2.10 or earlier, 12 characters in 2.11.
TIMERChoice option, lets you pick from available timers
SOURCEChoice option, lets you pick from available sources (i.e. sticks, switches, LS)
SWITCHChoice option to select from available switches.
VALUENumerical input option, can specify default, min and max value
TEXT_SIZEChoice option, lets you pick from the available text sizes (i.e. small, large)
ALIGNMENTChoice option, lets you pick from available alignment options (i.e. left, center, right)
SLIDERSelect numerical value using a slider control (available in 2.11)
CHOICESelect numerical value using a custom popup list (available in 2.11)
FILESelect a file from SD card / internal storage (available in 2.11). Filename is limited to 12 characters maximum.
-{% hint style="warning" %} -Maximum five`options` are allowed. +!!! warning + Maximum five`options` are allowed. -Note: from 2.11 ten options are allowed per widget. -{% endhint %} + Note: from 2.11 ten options are allowed per widget. + + +!!! warning + Option variable name's length **must be 10 characters or less and no spaces.** -{% hint style="warning" %} -Option variable name's length **must be 10 characters or less and no spaces.** -{% endhint %} ## Example diff --git a/lua-api-reference/display-lcd/clear.md b/website/md-docs/api-reference/display-lcd/clear.md similarity index 68% rename from lua-api-reference/display-lcd/clear.md rename to website/md-docs/api-reference/display-lcd/clear.md index c6f276b98..702d0f148 100644 --- a/lua-api-reference/display-lcd/clear.md +++ b/website/md-docs/api-reference/display-lcd/clear.md @@ -16,13 +16,13 @@ none ### Notes -This function works only in stand-alone and telemetry & widget scripts. See [script types](../../overview/script-types/). +This function works only in stand-alone and telemetry & widget scripts. See [script types](../../overview/script-types/index.md). ### Available on -* [x] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [x] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [x] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [x] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status @@ -30,24 +30,24 @@ This function works only in stand-alone and telemetry & widget scripts. See [scr ### Examples -{% tabs %} -{% tab title="Example 1" %} +#### Example 1 + ```lua -- clearing lcd with system default color lcd.clear() ``` -{% endtab %} -{% tab title="Example 2" %} + +#### Example 2 + ```lua -- clearing lcd screen to dark red local darkred = lcd.RGB(20,0,0) -- create color_flag for color lcd.clear(darkred) ``` -{% endtab %} -{% endtabs %} + ### Related topics -* [Drawing flag](../../lua-api-programming/drawing-flags-and-colors.md) +* [Drawing flag](../../programming/drawing-flags-and-colors.md) * [Color constants](../constants/color-constants.md) diff --git a/lua-api-reference/display-lcd/drawannulus.md b/website/md-docs/api-reference/display-lcd/drawannulus.md similarity index 70% rename from lua-api-reference/display-lcd/drawannulus.md rename to website/md-docs/api-reference/display-lcd/drawannulus.md index 946779fa6..b1f4a5ead 100644 --- a/lua-api-reference/display-lcd/drawannulus.md +++ b/website/md-docs/api-reference/display-lcd/drawannulus.md @@ -15,9 +15,9 @@ none ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status diff --git a/lua-api-reference/display-lcd/drawarc.md b/website/md-docs/api-reference/display-lcd/drawarc.md similarity index 68% rename from lua-api-reference/display-lcd/drawarc.md rename to website/md-docs/api-reference/display-lcd/drawarc.md index 428a417ec..8a8fe4c63 100644 --- a/lua-api-reference/display-lcd/drawarc.md +++ b/website/md-docs/api-reference/display-lcd/drawarc.md @@ -15,9 +15,9 @@ none ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status diff --git a/lua-api-reference/display-lcd/drawbitmap.md b/website/md-docs/api-reference/display-lcd/drawbitmap.md similarity index 72% rename from lua-api-reference/display-lcd/drawbitmap.md rename to website/md-docs/api-reference/display-lcd/drawbitmap.md index 5fec6b778..9c68185cd 100644 --- a/lua-api-reference/display-lcd/drawbitmap.md +++ b/website/md-docs/api-reference/display-lcd/drawbitmap.md @@ -16,15 +16,15 @@ none ### Notes -{% hint style="info" %} -Omitting scale draws image in 1:1 scale and is faster than specifying 100 for scale parameter. -{% endhint %} +!!! info + Omitting scale draws image in 1:1 scale and is faster than specifying 100 for scale parameter. + ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status @@ -32,26 +32,26 @@ Omitting scale draws image in 1:1 scale and is faster than specifying 100 for sc ### Examples -{% tabs %} -{% tab title="Example 1" %} +#### Example 1 + ```lua -- drawing bitmap stored on sd card root folder with original size local myLogo = Bitmap.open("/logo.png") lcd.drawBitmap(myLogo,10,10) ``` -{% endtab %} -{% tab title="Example 2" %} + +#### Example 2 + ```lua -- drawing bitmap stored on sd card root folder doubling its size local myLogo = Bitmap.open("/logo.png") lcd.drawBitmap(myLogo,10,10,200) ``` -{% endtab %} -{% endtabs %} + ### Related topics -* [Drawing flag](../../lua-api-programming/drawing-flags-and-colors.md) +* [Drawing flag](../../programming/drawing-flags-and-colors.md) * [Color constants](../constants/color-constants.md) * [Bitmap.open](../bitmap/open.md) diff --git a/lua-api-reference/display-lcd/drawchannel.md b/website/md-docs/api-reference/display-lcd/drawchannel.md similarity index 83% rename from lua-api-reference/display-lcd/drawchannel.md rename to website/md-docs/api-reference/display-lcd/drawchannel.md index 8145b9a05..959ee32e1 100644 --- a/lua-api-reference/display-lcd/drawchannel.md +++ b/website/md-docs/api-reference/display-lcd/drawchannel.md @@ -18,9 +18,9 @@ none ### Available on -* [x] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [x] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [x] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [x] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status @@ -28,16 +28,15 @@ none ### Examples -{% tabs %} -{% tab title="Example 1" %} +#### Example 1 + ```lua -- example ``` -{% endtab %} -{% tab title="Example 2" %} + +#### Example 2 + ```lua -- example ``` -{% endtab %} -{% endtabs %} diff --git a/lua-api-reference/display-lcd/drawcircle.md b/website/md-docs/api-reference/display-lcd/drawcircle.md similarity index 66% rename from lua-api-reference/display-lcd/drawcircle.md rename to website/md-docs/api-reference/display-lcd/drawcircle.md index 8f8c3bb62..69c0691bd 100644 --- a/lua-api-reference/display-lcd/drawcircle.md +++ b/website/md-docs/api-reference/display-lcd/drawcircle.md @@ -14,11 +14,10 @@ none ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status
EdgeTX versionAction
2.4.0Introduced
- diff --git a/lua-api-reference/display-lcd/drawcombobox.md b/website/md-docs/api-reference/display-lcd/drawcombobox.md similarity index 100% rename from lua-api-reference/display-lcd/drawcombobox.md rename to website/md-docs/api-reference/display-lcd/drawcombobox.md diff --git a/lua-api-reference/display-lcd/drawfilledcircle.md b/website/md-docs/api-reference/display-lcd/drawfilledcircle.md similarity index 67% rename from lua-api-reference/display-lcd/drawfilledcircle.md rename to website/md-docs/api-reference/display-lcd/drawfilledcircle.md index 21047eb2a..b60dff4d9 100644 --- a/lua-api-reference/display-lcd/drawfilledcircle.md +++ b/website/md-docs/api-reference/display-lcd/drawfilledcircle.md @@ -14,9 +14,9 @@ none ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status diff --git a/lua-api-reference/display-lcd/drawfilledrectangle.md b/website/md-docs/api-reference/display-lcd/drawfilledrectangle.md similarity index 100% rename from lua-api-reference/display-lcd/drawfilledrectangle.md rename to website/md-docs/api-reference/display-lcd/drawfilledrectangle.md diff --git a/lua-api-reference/display-lcd/drawfilledtriangle.md b/website/md-docs/api-reference/display-lcd/drawfilledtriangle.md similarity index 66% rename from lua-api-reference/display-lcd/drawfilledtriangle.md rename to website/md-docs/api-reference/display-lcd/drawfilledtriangle.md index d8b8ad89c..f5f02efb6 100644 --- a/lua-api-reference/display-lcd/drawfilledtriangle.md +++ b/website/md-docs/api-reference/display-lcd/drawfilledtriangle.md @@ -13,11 +13,10 @@ none ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status
EdgeTX versionAction
2.4.0Introduced
- diff --git a/lua-api-reference/display-lcd/drawgauge.md b/website/md-docs/api-reference/display-lcd/drawgauge.md similarity index 100% rename from lua-api-reference/display-lcd/drawgauge.md rename to website/md-docs/api-reference/display-lcd/drawgauge.md diff --git a/lua-api-reference/display-lcd/drawhudrectangle.md b/website/md-docs/api-reference/display-lcd/drawhudrectangle.md similarity index 70% rename from lua-api-reference/display-lcd/drawhudrectangle.md rename to website/md-docs/api-reference/display-lcd/drawhudrectangle.md index 3663a9c16..f77e169df 100644 --- a/lua-api-reference/display-lcd/drawhudrectangle.md +++ b/website/md-docs/api-reference/display-lcd/drawhudrectangle.md @@ -14,9 +14,9 @@ none ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status diff --git a/lua-api-reference/display-lcd/drawline.md b/website/md-docs/api-reference/display-lcd/drawline.md similarity index 100% rename from lua-api-reference/display-lcd/drawline.md rename to website/md-docs/api-reference/display-lcd/drawline.md diff --git a/lua-api-reference/display-lcd/drawlinewithclipping.md b/website/md-docs/api-reference/display-lcd/drawlinewithclipping.md similarity index 100% rename from lua-api-reference/display-lcd/drawlinewithclipping.md rename to website/md-docs/api-reference/display-lcd/drawlinewithclipping.md diff --git a/lua-api-reference/display-lcd/drawnumber.md b/website/md-docs/api-reference/display-lcd/drawnumber.md similarity index 100% rename from lua-api-reference/display-lcd/drawnumber.md rename to website/md-docs/api-reference/display-lcd/drawnumber.md diff --git a/lua-api-reference/display-lcd/drawpie.md b/website/md-docs/api-reference/display-lcd/drawpie.md similarity index 100% rename from lua-api-reference/display-lcd/drawpie.md rename to website/md-docs/api-reference/display-lcd/drawpie.md diff --git a/lua-api-reference/display-lcd/drawpixmap.md b/website/md-docs/api-reference/display-lcd/drawpixmap.md similarity index 64% rename from lua-api-reference/display-lcd/drawpixmap.md rename to website/md-docs/api-reference/display-lcd/drawpixmap.md index ab8b88f4d..b49b70b06 100644 --- a/lua-api-reference/display-lcd/drawpixmap.md +++ b/website/md-docs/api-reference/display-lcd/drawpixmap.md @@ -16,19 +16,19 @@ none ### Notes -{% hint style="info" %} -Maximum image size is `[LCD_W / 2] x [LCD_H]` pixels. -{% endhint %} +!!! info + Maximum image size is `[LCD_W / 2] x [LCD_H]` pixels. + + +!!! info + If you draw the same image repeatedly, prefer loading it once with [`Bitmap.open`](../bitmap/open.md) and then drawing it with [`lcd.drawBitmap`](drawbitmap.md). -{% hint style="info" %} -If you draw the same image repeatedly, prefer loading it once with [`Bitmap.open`](../bitmap/open.md) and then drawing it with [`lcd.drawBitmap`](drawbitmap.md). -{% endhint %} ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [x] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [ ] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [x] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [ ] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status @@ -36,21 +36,21 @@ If you draw the same image repeatedly, prefer loading it once with [`Bitmap.open ### Examples -{% tabs %} -{% tab title="Example 1" %} +#### Example 1 + ```lua -- draw bitmap file stored on the SD card lcd.drawPixmap(10, 10, "/IMAGES/test.bmp") ``` -{% endtab %} -{% tab title="Example 2" %} + +#### Example 2 + ```lua -- draw at the top-left corner lcd.drawPixmap(0, 0, "/IMAGES/test.bmp") ``` -{% endtab %} -{% endtabs %} + ### Related topics diff --git a/lua-api-reference/display-lcd/drawpoint.md b/website/md-docs/api-reference/display-lcd/drawpoint.md similarity index 100% rename from lua-api-reference/display-lcd/drawpoint.md rename to website/md-docs/api-reference/display-lcd/drawpoint.md diff --git a/lua-api-reference/display-lcd/drawrectangle.md b/website/md-docs/api-reference/display-lcd/drawrectangle.md similarity index 100% rename from lua-api-reference/display-lcd/drawrectangle.md rename to website/md-docs/api-reference/display-lcd/drawrectangle.md diff --git a/lua-api-reference/display-lcd/drawscreentitle.md b/website/md-docs/api-reference/display-lcd/drawscreentitle.md similarity index 65% rename from lua-api-reference/display-lcd/drawscreentitle.md rename to website/md-docs/api-reference/display-lcd/drawscreentitle.md index 81032bdeb..34cbed211 100644 --- a/lua-api-reference/display-lcd/drawscreentitle.md +++ b/website/md-docs/api-reference/display-lcd/drawscreentitle.md @@ -14,11 +14,10 @@ none ### Available on -* [x] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [x] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [ ] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [x] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [x] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [ ] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status
EdgeTX versionAction
2.0.0Introduced
- diff --git a/lua-api-reference/display-lcd/drawsource.md b/website/md-docs/api-reference/display-lcd/drawsource.md similarity index 100% rename from lua-api-reference/display-lcd/drawsource.md rename to website/md-docs/api-reference/display-lcd/drawsource.md diff --git a/lua-api-reference/display-lcd/drawswitch.md b/website/md-docs/api-reference/display-lcd/drawswitch.md similarity index 100% rename from lua-api-reference/display-lcd/drawswitch.md rename to website/md-docs/api-reference/display-lcd/drawswitch.md diff --git a/lua-api-reference/display-lcd/drawtext.md b/website/md-docs/api-reference/display-lcd/drawtext.md similarity index 100% rename from lua-api-reference/display-lcd/drawtext.md rename to website/md-docs/api-reference/display-lcd/drawtext.md diff --git a/lua-api-reference/display-lcd/drawtimer.md b/website/md-docs/api-reference/display-lcd/drawtimer.md similarity index 100% rename from lua-api-reference/display-lcd/drawtimer.md rename to website/md-docs/api-reference/display-lcd/drawtimer.md diff --git a/lua-api-reference/display-lcd/drawtriangle.md b/website/md-docs/api-reference/display-lcd/drawtriangle.md similarity index 66% rename from lua-api-reference/display-lcd/drawtriangle.md rename to website/md-docs/api-reference/display-lcd/drawtriangle.md index 1487ac8c7..a42a5f91b 100644 --- a/lua-api-reference/display-lcd/drawtriangle.md +++ b/website/md-docs/api-reference/display-lcd/drawtriangle.md @@ -13,11 +13,10 @@ none ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status
EdgeTX versionAction
2.4.0Introduced
- diff --git a/lua-api-reference/display-lcd/getcolor.md b/website/md-docs/api-reference/display-lcd/getcolor.md similarity index 100% rename from lua-api-reference/display-lcd/getcolor.md rename to website/md-docs/api-reference/display-lcd/getcolor.md diff --git a/lua-api-reference/display-lcd/getlastleftpos.md b/website/md-docs/api-reference/display-lcd/getlastleftpos.md similarity index 100% rename from lua-api-reference/display-lcd/getlastleftpos.md rename to website/md-docs/api-reference/display-lcd/getlastleftpos.md diff --git a/lua-api-reference/display-lcd/getlastpos.md b/website/md-docs/api-reference/display-lcd/getlastpos.md similarity index 100% rename from lua-api-reference/display-lcd/getlastpos.md rename to website/md-docs/api-reference/display-lcd/getlastpos.md diff --git a/lua-api-reference/display-lcd/getlastrightpos.md b/website/md-docs/api-reference/display-lcd/getlastrightpos.md similarity index 100% rename from lua-api-reference/display-lcd/getlastrightpos.md rename to website/md-docs/api-reference/display-lcd/getlastrightpos.md diff --git a/lua-api-reference/display-lcd/grey.md b/website/md-docs/api-reference/display-lcd/grey.md similarity index 100% rename from lua-api-reference/display-lcd/grey.md rename to website/md-docs/api-reference/display-lcd/grey.md diff --git a/lua-api-reference/display-lcd/README.md b/website/md-docs/api-reference/display-lcd/index.md similarity index 93% rename from lua-api-reference/display-lcd/README.md rename to website/md-docs/api-reference/display-lcd/index.md index b5daed04e..29d9a5ba5 100644 --- a/lua-api-reference/display-lcd/README.md +++ b/website/md-docs/api-reference/display-lcd/index.md @@ -1,2 +1 @@ # Display LCD - diff --git a/lua-api-reference/display-lcd/lcd.drawbitmappattern.md b/website/md-docs/api-reference/display-lcd/lcd-drawbitmappattern.md similarity index 100% rename from lua-api-reference/display-lcd/lcd.drawbitmappattern.md rename to website/md-docs/api-reference/display-lcd/lcd-drawbitmappattern.md diff --git a/lua-api-reference/display-lcd/lcd.drawbitmappatternpie.md b/website/md-docs/api-reference/display-lcd/lcd-drawbitmappatternpie.md similarity index 100% rename from lua-api-reference/display-lcd/lcd.drawbitmappatternpie.md rename to website/md-docs/api-reference/display-lcd/lcd-drawbitmappatternpie.md diff --git a/lua-api-reference/display-lcd/lcd.drawtextlines.md b/website/md-docs/api-reference/display-lcd/lcd-drawtextlines.md similarity index 76% rename from lua-api-reference/display-lcd/lcd.drawtextlines.md rename to website/md-docs/api-reference/display-lcd/lcd-drawtextlines.md index f1e9eb474..0a81990bf 100644 --- a/lua-api-reference/display-lcd/lcd.drawtextlines.md +++ b/website/md-docs/api-reference/display-lcd/lcd-drawtextlines.md @@ -17,9 +17,9 @@ Draw text inside rectangle (x,y,w,h) with line breaks ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status @@ -27,17 +27,14 @@ Draw text inside rectangle (x,y,w,h) with line breaks ### Examples -{% tabs %} -{% tab title="Example 1" %} +#### Example 1 + ```lua local y _, y = lcd.drawTextLines(1, 0, 100, 40, "No TxGPS detected!", LEFT + TEXT_COLOR) lcd.drawTextLines(1, y, 100, 100, "Make sure your firmware has GPS support enabled", LEFT + TEXT_COLOR) ``` -{% endtab %} -{% tab title="Example 2" %} -{% endtab %} -{% endtabs %} +#### Example 2 diff --git a/lua-api-reference/display-lcd/lcd.exitfullscreen.md b/website/md-docs/api-reference/display-lcd/lcd-exitfullscreen.md similarity index 100% rename from lua-api-reference/display-lcd/lcd.exitfullscreen.md rename to website/md-docs/api-reference/display-lcd/lcd-exitfullscreen.md diff --git a/lua-api-reference/display-lcd/lcd-functions-overview.md b/website/md-docs/api-reference/display-lcd/lcd-functions-overview.md similarity index 100% rename from lua-api-reference/display-lcd/lcd-functions-overview.md rename to website/md-docs/api-reference/display-lcd/lcd-functions-overview.md diff --git a/lua-api-reference/display-lcd/lcd.invertrect.md b/website/md-docs/api-reference/display-lcd/lcd-invertrect.md similarity index 100% rename from lua-api-reference/display-lcd/lcd.invertrect.md rename to website/md-docs/api-reference/display-lcd/lcd-invertrect.md diff --git a/lua-api-reference/display-lcd/popupconfirmation.md b/website/md-docs/api-reference/display-lcd/popupconfirmation.md similarity index 100% rename from lua-api-reference/display-lcd/popupconfirmation.md rename to website/md-docs/api-reference/display-lcd/popupconfirmation.md diff --git a/lua-api-reference/display-lcd/popupinput.md b/website/md-docs/api-reference/display-lcd/popupinput.md similarity index 100% rename from lua-api-reference/display-lcd/popupinput.md rename to website/md-docs/api-reference/display-lcd/popupinput.md diff --git a/lua-api-reference/display-lcd/popupwarning.md b/website/md-docs/api-reference/display-lcd/popupwarning.md similarity index 100% rename from lua-api-reference/display-lcd/popupwarning.md rename to website/md-docs/api-reference/display-lcd/popupwarning.md diff --git a/lua-api-reference/display-lcd/refresh.md b/website/md-docs/api-reference/display-lcd/refresh.md similarity index 100% rename from lua-api-reference/display-lcd/refresh.md rename to website/md-docs/api-reference/display-lcd/refresh.md diff --git a/lua-api-reference/display-lcd/resetbacklighttimeout.md b/website/md-docs/api-reference/display-lcd/resetbacklighttimeout.md similarity index 100% rename from lua-api-reference/display-lcd/resetbacklighttimeout.md rename to website/md-docs/api-reference/display-lcd/resetbacklighttimeout.md diff --git a/lua-api-reference/display-lcd/rgb.md b/website/md-docs/api-reference/display-lcd/rgb.md similarity index 76% rename from lua-api-reference/display-lcd/rgb.md rename to website/md-docs/api-reference/display-lcd/rgb.md index d79af06e6..8e9d2e414 100644 --- a/lua-api-reference/display-lcd/rgb.md +++ b/website/md-docs/api-reference/display-lcd/rgb.md @@ -16,15 +16,15 @@ or ### Returns -* `color_flag`. See [Drawing Flags](../../lua-api-programming/drawing-flags-and-colors.md) +* `color_flag`. See [Drawing Flags](../../programming/drawing-flags-and-colors.md) ### Notes ### Available on -* [ ] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [ ] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [ ] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [ ] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status @@ -32,25 +32,25 @@ or ### Examples -{% tabs %} -{% tab title="Example 1" %} +#### Example 1 + ```lua -- RGB numeric parameters local darkred = lcd.RGB(20,0,0) -- create color_flag for color lcd.drawText(0,0,"Very dark red text", darkred) ``` -{% endtab %} -{% tab title="Example 2" %} + +#### Example 2 + ```lua -- RGB hex parameter local mygrey = lcd.RGB(0xAEAEAE) -- create color_flag for color lcd.drawText(0,20,"My grey color", mygrey) ``` -{% endtab %} -{% endtabs %} + ### Related topics -* [Drawing flag](../../lua-api-programming/drawing-flags-and-colors.md) +* [Drawing flag](../../programming/drawing-flags-and-colors.md) * [Color constants](../constants/color-constants.md) diff --git a/lua-api-reference/display-lcd/setcolor.md b/website/md-docs/api-reference/display-lcd/setcolor.md similarity index 100% rename from lua-api-reference/display-lcd/setcolor.md rename to website/md-docs/api-reference/display-lcd/setcolor.md diff --git a/lua-api-reference/display-lcd/sizetext.md b/website/md-docs/api-reference/display-lcd/sizetext.md similarity index 100% rename from lua-api-reference/display-lcd/sizetext.md rename to website/md-docs/api-reference/display-lcd/sizetext.md diff --git a/lua-api-reference/filesystem/chdir.md b/website/md-docs/api-reference/filesystem/chdir.md similarity index 100% rename from lua-api-reference/filesystem/chdir.md rename to website/md-docs/api-reference/filesystem/chdir.md diff --git a/lua-api-reference/filesystem/del.md b/website/md-docs/api-reference/filesystem/del.md similarity index 100% rename from lua-api-reference/filesystem/del.md rename to website/md-docs/api-reference/filesystem/del.md diff --git a/lua-api-reference/filesystem/dir.md b/website/md-docs/api-reference/filesystem/dir.md similarity index 100% rename from lua-api-reference/filesystem/dir.md rename to website/md-docs/api-reference/filesystem/dir.md diff --git a/lua-api-reference/filesystem/fstat.md b/website/md-docs/api-reference/filesystem/fstat.md similarity index 100% rename from lua-api-reference/filesystem/fstat.md rename to website/md-docs/api-reference/filesystem/fstat.md diff --git a/lua-api-reference/filesystem/README.md b/website/md-docs/api-reference/filesystem/index.md similarity index 92% rename from lua-api-reference/filesystem/README.md rename to website/md-docs/api-reference/filesystem/index.md index 7a2370799..6d41ab86f 100644 --- a/lua-api-reference/filesystem/README.md +++ b/website/md-docs/api-reference/filesystem/index.md @@ -1,2 +1 @@ # Filesystem - diff --git a/lua-api-reference/gps/gettxgps.md b/website/md-docs/api-reference/gps/gettxgps.md similarity index 100% rename from lua-api-reference/gps/gettxgps.md rename to website/md-docs/api-reference/gps/gettxgps.md diff --git a/lua-api-reference/gps/README.md b/website/md-docs/api-reference/gps/index.md similarity index 85% rename from lua-api-reference/gps/README.md rename to website/md-docs/api-reference/gps/index.md index 577230547..59b2faf37 100644 --- a/lua-api-reference/gps/README.md +++ b/website/md-docs/api-reference/gps/index.md @@ -1,2 +1 @@ # GPS - diff --git a/lua-api-reference/README.md b/website/md-docs/api-reference/index.md similarity index 100% rename from lua-api-reference/README.md rename to website/md-docs/api-reference/index.md diff --git a/lua-api-reference/key-inputs/getrotencmode.md b/website/md-docs/api-reference/key-inputs/getrotencmode.md similarity index 100% rename from lua-api-reference/key-inputs/getrotencmode.md rename to website/md-docs/api-reference/key-inputs/getrotencmode.md diff --git a/lua-api-reference/key-inputs/getrotencspeed.md b/website/md-docs/api-reference/key-inputs/getrotencspeed.md similarity index 100% rename from lua-api-reference/key-inputs/getrotencspeed.md rename to website/md-docs/api-reference/key-inputs/getrotencspeed.md diff --git a/lua-api-reference/key-inputs/README.md b/website/md-docs/api-reference/key-inputs/index.md similarity index 92% rename from lua-api-reference/key-inputs/README.md rename to website/md-docs/api-reference/key-inputs/index.md index e57d99adc..95ad5c48c 100644 --- a/lua-api-reference/key-inputs/README.md +++ b/website/md-docs/api-reference/key-inputs/index.md @@ -1,2 +1 @@ # Key Inputs - diff --git a/lua-api-reference/key-inputs/killevents.md b/website/md-docs/api-reference/key-inputs/killevents.md similarity index 100% rename from lua-api-reference/key-inputs/killevents.md rename to website/md-docs/api-reference/key-inputs/killevents.md diff --git a/lua-api-reference/lua-scripts/getavailablememory.md b/website/md-docs/api-reference/lua-scripts/getavailablememory.md similarity index 100% rename from lua-api-reference/lua-scripts/getavailablememory.md rename to website/md-docs/api-reference/lua-scripts/getavailablememory.md diff --git a/lua-api-reference/lua-scripts/getusage.md b/website/md-docs/api-reference/lua-scripts/getusage.md similarity index 100% rename from lua-api-reference/lua-scripts/getusage.md rename to website/md-docs/api-reference/lua-scripts/getusage.md diff --git a/lua-api-reference/lua-scripts/README.md b/website/md-docs/api-reference/lua-scripts/index.md similarity index 93% rename from lua-api-reference/lua-scripts/README.md rename to website/md-docs/api-reference/lua-scripts/index.md index 5d57d5429..f4080c50f 100644 --- a/lua-api-reference/lua-scripts/README.md +++ b/website/md-docs/api-reference/lua-scripts/index.md @@ -1,2 +1 @@ # LUA Scripts - diff --git a/lua-api-reference/lua-scripts/loadscript.md b/website/md-docs/api-reference/lua-scripts/loadscript.md similarity index 100% rename from lua-api-reference/lua-scripts/loadscript.md rename to website/md-docs/api-reference/lua-scripts/loadscript.md diff --git a/lua-api-reference/lvgl-for-lua/api.md b/website/md-docs/api-reference/lvgl-for-lua/api.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/api.md rename to website/md-docs/api-reference/lvgl-for-lua/api.md diff --git a/lua-api-reference/lvgl-for-lua/constants.md b/website/md-docs/api-reference/lvgl-for-lua/constants.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/constants.md rename to website/md-docs/api-reference/lvgl-for-lua/constants.md diff --git a/lua-api-reference/lvgl-for-lua/examples.md b/website/md-docs/api-reference/lvgl-for-lua/examples.md similarity index 93% rename from lua-api-reference/lvgl-for-lua/examples.md rename to website/md-docs/api-reference/lvgl-for-lua/examples.md index b5b58d47e..65ef3ede2 100644 --- a/lua-api-reference/lvgl-for-lua/examples.md +++ b/website/md-docs/api-reference/lvgl-for-lua/examples.md @@ -40,11 +40,11 @@ return {init = init, run = run, useLvgl=true} When run this produces the page shown below. -![](../../.gitbook/assets/screenshot_tx16s_24-08-08_19-41-54.png) +![](../../assets/legacy-2.11/screenshot_tx16s_24-08-08_19-41-54.png) The user can exit the script by tapping the 'CLOSE' button or tapping the 'EdgeTX' button in the top-left corner. In both cases a popup dialog will be shown - if the user selects 'Yes' the script will close. -![](../../.gitbook/assets/screenshot_tx16s_24-08-08_19-42-01.png) +![](../../assets/legacy-2.11/screenshot_tx16s_24-08-08_19-42-01.png) ### Widget script diff --git a/lua-api-reference/lvgl-for-lua/README.md b/website/md-docs/api-reference/lvgl-for-lua/index.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/README.md rename to website/md-docs/api-reference/lvgl-for-lua/index.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.align.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-align.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.align.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-align.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.arc.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-arc.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.arc.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-arc.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.box.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-box.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.box.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-box.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.build.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-build.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.build.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-build.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.button.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-button.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.button.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-button.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.choice.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-choice.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.choice.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-choice.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.circle.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-circle.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.circle.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-circle.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.clear.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-clear.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.clear.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-clear.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.color.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-color.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.color.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-color.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.confirm.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-confirm.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.confirm.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-confirm.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.dialog.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-dialog.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.dialog.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-dialog.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.exitfullscreen.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-exitfullscreen.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.exitfullscreen.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-exitfullscreen.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.file.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-file.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.file.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-file.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.font.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-font.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.font.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-font.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.getcontext.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-getcontext.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.getcontext.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-getcontext.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.getscrollpos.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-getscrollpos.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.getscrollpos.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-getscrollpos.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.hide.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-hide.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.hide.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-hide.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.hline.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-hline.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.hline.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-hline.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.image.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-image.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.image.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-image.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.isappmode.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-isappmode.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.isappmode.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-isappmode.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.isfullscreen.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-isfullscreen.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.isfullscreen.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-isfullscreen.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.label.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-label.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.label.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-label.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.line.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-line.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.line.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-line.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.menu.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-menu.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.menu.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-menu.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.message.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-message.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.message.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-message.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.momentarybutton.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-momentarybutton.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.momentarybutton.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-momentarybutton.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.numberedit.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-numberedit.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.numberedit.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-numberedit.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.page.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-page.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.page.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-page.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.qrcode.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-qrcode.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.qrcode.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-qrcode.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.rectangle.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-rectangle.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.rectangle.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-rectangle.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.set.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-set.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.set.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-set.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.setting.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-setting.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.setting.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-setting.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.show.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-show.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.show.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-show.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.slider.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-slider.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.slider.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-slider.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.source.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-source.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.source.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-source.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.switch.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-switch.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.switch.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-switch.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.textedit.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-textedit.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.textedit.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-textedit.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.timer.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-timer.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.timer.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-timer.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.toggle.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-toggle.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.toggle.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-toggle.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.triangle.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-triangle.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.triangle.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-triangle.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.verticalslider.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-verticalslider.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.verticalslider.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-verticalslider.md diff --git a/lua-api-reference/lvgl-for-lua/lvgl.vline.md b/website/md-docs/api-reference/lvgl-for-lua/lvgl-vline.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/lvgl.vline.md rename to website/md-docs/api-reference/lvgl-for-lua/lvgl-vline.md diff --git a/lua-api-reference/lvgl-for-lua/overview.md b/website/md-docs/api-reference/lvgl-for-lua/overview.md similarity index 100% rename from lua-api-reference/lvgl-for-lua/overview.md rename to website/md-docs/api-reference/lvgl-for-lua/overview.md diff --git a/lua-api-reference/model/defaultinputs.md b/website/md-docs/api-reference/model/defaultinputs.md similarity index 100% rename from lua-api-reference/model/defaultinputs.md rename to website/md-docs/api-reference/model/defaultinputs.md diff --git a/lua-api-reference/model/deleteflightmodes.md b/website/md-docs/api-reference/model/deleteflightmodes.md similarity index 100% rename from lua-api-reference/model/deleteflightmodes.md rename to website/md-docs/api-reference/model/deleteflightmodes.md diff --git a/lua-api-reference/model/deleteinput.md b/website/md-docs/api-reference/model/deleteinput.md similarity index 100% rename from lua-api-reference/model/deleteinput.md rename to website/md-docs/api-reference/model/deleteinput.md diff --git a/lua-api-reference/model/deleteinputs.md b/website/md-docs/api-reference/model/deleteinputs.md similarity index 100% rename from lua-api-reference/model/deleteinputs.md rename to website/md-docs/api-reference/model/deleteinputs.md diff --git a/lua-api-reference/model/deletemix.md b/website/md-docs/api-reference/model/deletemix.md similarity index 100% rename from lua-api-reference/model/deletemix.md rename to website/md-docs/api-reference/model/deletemix.md diff --git a/lua-api-reference/model/deletemixes.md b/website/md-docs/api-reference/model/deletemixes.md similarity index 100% rename from lua-api-reference/model/deletemixes.md rename to website/md-docs/api-reference/model/deletemixes.md diff --git a/lua-api-reference/model/getcurve.md b/website/md-docs/api-reference/model/getcurve.md similarity index 100% rename from lua-api-reference/model/getcurve.md rename to website/md-docs/api-reference/model/getcurve.md diff --git a/lua-api-reference/model/getcustomfunction.md b/website/md-docs/api-reference/model/getcustomfunction.md similarity index 100% rename from lua-api-reference/model/getcustomfunction.md rename to website/md-docs/api-reference/model/getcustomfunction.md diff --git a/lua-api-reference/model/getflightmode.md b/website/md-docs/api-reference/model/getflightmode.md similarity index 100% rename from lua-api-reference/model/getflightmode.md rename to website/md-docs/api-reference/model/getflightmode.md diff --git a/lua-api-reference/model/getglobalvariable.md b/website/md-docs/api-reference/model/getglobalvariable.md similarity index 100% rename from lua-api-reference/model/getglobalvariable.md rename to website/md-docs/api-reference/model/getglobalvariable.md diff --git a/lua-api-reference/model/getinfo.md b/website/md-docs/api-reference/model/getinfo.md similarity index 97% rename from lua-api-reference/model/getinfo.md rename to website/md-docs/api-reference/model/getinfo.md index bddda14de..2fd3c9bc5 100644 --- a/lua-api-reference/model/getinfo.md +++ b/website/md-docs/api-reference/model/getinfo.md @@ -16,9 +16,9 @@ none
FieldTypeDecription
namestringModel's name set.
filenamestringName of <???>
bitmapstringName of model's picture file located on SD Card in /IMAGES/ folder
extendedLimitsbooleantrue if extended limits are enabled otherwise false
jitterFilternumbermodel level ADC filter
-{% hint style="warning" %} -**bitmap** field is not available on BW radios -{% endhint %} +!!! warning + **bitmap** field is not available on BW radios + ## API Status diff --git a/lua-api-reference/model/getinput.md b/website/md-docs/api-reference/model/getinput.md similarity index 100% rename from lua-api-reference/model/getinput.md rename to website/md-docs/api-reference/model/getinput.md diff --git a/lua-api-reference/model/getinputscount.md b/website/md-docs/api-reference/model/getinputscount.md similarity index 100% rename from lua-api-reference/model/getinputscount.md rename to website/md-docs/api-reference/model/getinputscount.md diff --git a/lua-api-reference/model/getlogicalswitch.md b/website/md-docs/api-reference/model/getlogicalswitch.md similarity index 100% rename from lua-api-reference/model/getlogicalswitch.md rename to website/md-docs/api-reference/model/getlogicalswitch.md diff --git a/lua-api-reference/model/getmix.md b/website/md-docs/api-reference/model/getmix.md similarity index 100% rename from lua-api-reference/model/getmix.md rename to website/md-docs/api-reference/model/getmix.md diff --git a/lua-api-reference/model/getmixescount.md b/website/md-docs/api-reference/model/getmixescount.md similarity index 100% rename from lua-api-reference/model/getmixescount.md rename to website/md-docs/api-reference/model/getmixescount.md diff --git a/lua-api-reference/model/getmodule.md b/website/md-docs/api-reference/model/getmodule.md similarity index 100% rename from lua-api-reference/model/getmodule.md rename to website/md-docs/api-reference/model/getmodule.md diff --git a/lua-api-reference/model/getoutput.md b/website/md-docs/api-reference/model/getoutput.md similarity index 100% rename from lua-api-reference/model/getoutput.md rename to website/md-docs/api-reference/model/getoutput.md diff --git a/lua-api-reference/model/getsensor.md b/website/md-docs/api-reference/model/getsensor.md similarity index 100% rename from lua-api-reference/model/getsensor.md rename to website/md-docs/api-reference/model/getsensor.md diff --git a/lua-api-reference/model/gettimer.md b/website/md-docs/api-reference/model/gettimer.md similarity index 100% rename from lua-api-reference/model/gettimer.md rename to website/md-docs/api-reference/model/gettimer.md diff --git a/lua-api-reference/model/README.md b/website/md-docs/api-reference/model/index.md similarity index 94% rename from lua-api-reference/model/README.md rename to website/md-docs/api-reference/model/index.md index d92fe826b..3dca7cc69 100644 --- a/lua-api-reference/model/README.md +++ b/website/md-docs/api-reference/model/index.md @@ -1,2 +1 @@ # Model Functions - diff --git a/lua-api-reference/model/insertinput.md b/website/md-docs/api-reference/model/insertinput.md similarity index 100% rename from lua-api-reference/model/insertinput.md rename to website/md-docs/api-reference/model/insertinput.md diff --git a/lua-api-reference/model/insertmix.md b/website/md-docs/api-reference/model/insertmix.md similarity index 100% rename from lua-api-reference/model/insertmix.md rename to website/md-docs/api-reference/model/insertmix.md diff --git a/lua-api-reference/model/model.getswashring.md b/website/md-docs/api-reference/model/model-getswashring.md similarity index 100% rename from lua-api-reference/model/model.getswashring.md rename to website/md-docs/api-reference/model/model-getswashring.md diff --git a/lua-api-reference/model/model.setswashring-params.md b/website/md-docs/api-reference/model/model-setswashring-params.md similarity index 86% rename from lua-api-reference/model/model.setswashring-params.md rename to website/md-docs/api-reference/model/model-setswashring-params.md index 7d807055d..dadcc2947 100644 --- a/lua-api-reference/model/model.setswashring-params.md +++ b/website/md-docs/api-reference/model/model-setswashring-params.md @@ -6,7 +6,7 @@ Set heli swash parameters **Parameters** -* `value` (table) swash ring parameters, see [model.getSwashRing()](model.getswashring.md) for table format +* `value` (table) swash ring parameters, see [model.getSwashRing()](model-getswashring.md) for table format **Return value** diff --git a/lua-api-reference/model/resetsensor.md b/website/md-docs/api-reference/model/resetsensor.md similarity index 100% rename from lua-api-reference/model/resetsensor.md rename to website/md-docs/api-reference/model/resetsensor.md diff --git a/lua-api-reference/model/resettimer.md b/website/md-docs/api-reference/model/resettimer.md similarity index 100% rename from lua-api-reference/model/resettimer.md rename to website/md-docs/api-reference/model/resettimer.md diff --git a/lua-api-reference/model/setcurve.md b/website/md-docs/api-reference/model/setcurve.md similarity index 100% rename from lua-api-reference/model/setcurve.md rename to website/md-docs/api-reference/model/setcurve.md diff --git a/lua-api-reference/model/setcustomfunction.md b/website/md-docs/api-reference/model/setcustomfunction.md similarity index 100% rename from lua-api-reference/model/setcustomfunction.md rename to website/md-docs/api-reference/model/setcustomfunction.md diff --git a/lua-api-reference/model/setflightmode.md b/website/md-docs/api-reference/model/setflightmode.md similarity index 100% rename from lua-api-reference/model/setflightmode.md rename to website/md-docs/api-reference/model/setflightmode.md diff --git a/lua-api-reference/model/setglobalvariable.md b/website/md-docs/api-reference/model/setglobalvariable.md similarity index 100% rename from lua-api-reference/model/setglobalvariable.md rename to website/md-docs/api-reference/model/setglobalvariable.md diff --git a/lua-api-reference/model/setinfo.md b/website/md-docs/api-reference/model/setinfo.md similarity index 100% rename from lua-api-reference/model/setinfo.md rename to website/md-docs/api-reference/model/setinfo.md diff --git a/lua-api-reference/model/setlogicalswitch.md b/website/md-docs/api-reference/model/setlogicalswitch.md similarity index 100% rename from lua-api-reference/model/setlogicalswitch.md rename to website/md-docs/api-reference/model/setlogicalswitch.md diff --git a/lua-api-reference/model/setmodule.md b/website/md-docs/api-reference/model/setmodule.md similarity index 100% rename from lua-api-reference/model/setmodule.md rename to website/md-docs/api-reference/model/setmodule.md diff --git a/lua-api-reference/model/setoutput.md b/website/md-docs/api-reference/model/setoutput.md similarity index 100% rename from lua-api-reference/model/setoutput.md rename to website/md-docs/api-reference/model/setoutput.md diff --git a/lua-api-reference/model/settimer.md b/website/md-docs/api-reference/model/settimer.md similarity index 100% rename from lua-api-reference/model/settimer.md rename to website/md-docs/api-reference/model/settimer.md diff --git a/lua-api-reference/rf-module/accesstelemetrypush.md b/website/md-docs/api-reference/rf-module/accesstelemetrypush.md similarity index 100% rename from lua-api-reference/rf-module/accesstelemetrypush.md rename to website/md-docs/api-reference/rf-module/accesstelemetrypush.md diff --git a/lua-api-reference/rf-module/crossfiretelemetrypop.md b/website/md-docs/api-reference/rf-module/crossfiretelemetrypop.md similarity index 100% rename from lua-api-reference/rf-module/crossfiretelemetrypop.md rename to website/md-docs/api-reference/rf-module/crossfiretelemetrypop.md diff --git a/lua-api-reference/rf-module/crossfiretelemetrypush.md b/website/md-docs/api-reference/rf-module/crossfiretelemetrypush.md similarity index 100% rename from lua-api-reference/rf-module/crossfiretelemetrypush.md rename to website/md-docs/api-reference/rf-module/crossfiretelemetrypush.md diff --git a/lua-api-reference/rf-module/getras.md b/website/md-docs/api-reference/rf-module/getras.md similarity index 91% rename from lua-api-reference/rf-module/getras.md rename to website/md-docs/api-reference/rf-module/getras.md index 1745a36fd..92df59ee2 100644 --- a/lua-api-reference/rf-module/getras.md +++ b/website/md-docs/api-reference/rf-module/getras.md @@ -1,2 +1 @@ # getRAS() - diff --git a/lua-api-reference/rf-module/ghosttelemetrypop.md b/website/md-docs/api-reference/rf-module/ghosttelemetrypop.md similarity index 100% rename from lua-api-reference/rf-module/ghosttelemetrypop.md rename to website/md-docs/api-reference/rf-module/ghosttelemetrypop.md diff --git a/lua-api-reference/rf-module/ghosttelemetrypush.md b/website/md-docs/api-reference/rf-module/ghosttelemetrypush.md similarity index 100% rename from lua-api-reference/rf-module/ghosttelemetrypush.md rename to website/md-docs/api-reference/rf-module/ghosttelemetrypush.md diff --git a/lua-api-reference/rf-module/README.md b/website/md-docs/api-reference/rf-module/index.md similarity index 92% rename from lua-api-reference/rf-module/README.md rename to website/md-docs/api-reference/rf-module/index.md index a33fcc7f5..d8a9bb584 100644 --- a/lua-api-reference/rf-module/README.md +++ b/website/md-docs/api-reference/rf-module/index.md @@ -1,2 +1 @@ # RF module - diff --git a/lua-api-reference/rf-module/multibuffer-address-value.md b/website/md-docs/api-reference/rf-module/multibuffer-address-value.md similarity index 96% rename from lua-api-reference/rf-module/multibuffer-address-value.md rename to website/md-docs/api-reference/rf-module/multibuffer-address-value.md index 5be4c020e..def0401b3 100644 --- a/lua-api-reference/rf-module/multibuffer-address-value.md +++ b/website/md-docs/api-reference/rf-module/multibuffer-address-value.md @@ -1,2 +1 @@ # multiBuffer(address\[,value]) - diff --git a/lua-api-reference/rf-module/sporttelemetrypop.md b/website/md-docs/api-reference/rf-module/sporttelemetrypop.md similarity index 100% rename from lua-api-reference/rf-module/sporttelemetrypop.md rename to website/md-docs/api-reference/rf-module/sporttelemetrypop.md diff --git a/lua-api-reference/rf-module/sporttelemetrypush.md b/website/md-docs/api-reference/rf-module/sporttelemetrypush.md similarity index 100% rename from lua-api-reference/rf-module/sporttelemetrypush.md rename to website/md-docs/api-reference/rf-module/sporttelemetrypush.md diff --git a/lua-api-reference/serial-ports/README.md b/website/md-docs/api-reference/serial-ports/index.md similarity index 93% rename from lua-api-reference/serial-ports/README.md rename to website/md-docs/api-reference/serial-ports/index.md index 3f94014f5..a7e2fd53a 100644 --- a/lua-api-reference/serial-ports/README.md +++ b/website/md-docs/api-reference/serial-ports/index.md @@ -1,2 +1 @@ # Serial Ports - diff --git a/lua-api-reference/serial-ports/serialgetpower.md b/website/md-docs/api-reference/serial-ports/serialgetpower.md similarity index 100% rename from lua-api-reference/serial-ports/serialgetpower.md rename to website/md-docs/api-reference/serial-ports/serialgetpower.md diff --git a/lua-api-reference/serial-ports/serialread.md b/website/md-docs/api-reference/serial-ports/serialread.md similarity index 100% rename from lua-api-reference/serial-ports/serialread.md rename to website/md-docs/api-reference/serial-ports/serialread.md diff --git a/lua-api-reference/serial-ports/serialsetpower.md b/website/md-docs/api-reference/serial-ports/serialsetpower.md similarity index 100% rename from lua-api-reference/serial-ports/serialsetpower.md rename to website/md-docs/api-reference/serial-ports/serialsetpower.md diff --git a/lua-api-reference/serial-ports/serialwrite.md b/website/md-docs/api-reference/serial-ports/serialwrite.md similarity index 100% rename from lua-api-reference/serial-ports/serialwrite.md rename to website/md-docs/api-reference/serial-ports/serialwrite.md diff --git a/lua-api-reference/serial-ports/setserialbaudrate.md b/website/md-docs/api-reference/serial-ports/setserialbaudrate.md similarity index 100% rename from lua-api-reference/serial-ports/setserialbaudrate.md rename to website/md-docs/api-reference/serial-ports/setserialbaudrate.md diff --git a/lua-api-reference/system/defaultchannel.md b/website/md-docs/api-reference/system/defaultchannel.md similarity index 100% rename from lua-api-reference/system/defaultchannel.md rename to website/md-docs/api-reference/system/defaultchannel.md diff --git a/lua-api-reference/system/defaultstick.md b/website/md-docs/api-reference/system/defaultstick.md similarity index 100% rename from lua-api-reference/system/defaultstick.md rename to website/md-docs/api-reference/system/defaultstick.md diff --git a/lua-api-reference/system/getgeneralsettings.md b/website/md-docs/api-reference/system/getgeneralsettings.md similarity index 100% rename from lua-api-reference/system/getgeneralsettings.md rename to website/md-docs/api-reference/system/getgeneralsettings.md diff --git a/lua-api-reference/system/getversion.md b/website/md-docs/api-reference/system/getversion.md similarity index 100% rename from lua-api-reference/system/getversion.md rename to website/md-docs/api-reference/system/getversion.md diff --git a/lua-api-reference/system/README.md b/website/md-docs/api-reference/system/index.md similarity index 90% rename from lua-api-reference/system/README.md rename to website/md-docs/api-reference/system/index.md index 036fa78f9..35d37ed70 100644 --- a/lua-api-reference/system/README.md +++ b/website/md-docs/api-reference/system/index.md @@ -1,2 +1 @@ # System - diff --git a/lua-api-reference/system/rgb.md b/website/md-docs/api-reference/system/rgb.md similarity index 63% rename from lua-api-reference/system/rgb.md rename to website/md-docs/api-reference/system/rgb.md index e046249d1..beb394694 100644 --- a/lua-api-reference/system/rgb.md +++ b/website/md-docs/api-reference/system/rgb.md @@ -16,9 +16,9 @@ This command is currently not rate limited, so repeated frequent calls will slow ### Available on -* [x] [B\&W LCD radios](../../overview/radios/#radios-with-b-and-w-lcd-screen) -* [x] [Grayscale LCD radios](../../overview/radios/#radios-with-grayscale-lcd-screen) -* [x] [Color LCD radios](../../overview/radios/#radios-with-color-lcd-screen) +* [x] [B\&W LCD radios](../../overview/radios/index.md#radios-with-b-and-w-lcd-screen) +* [x] [Grayscale LCD radios](../../overview/radios/index.md#radios-with-grayscale-lcd-screen) +* [x] [Color LCD radios](../../overview/radios/index.md#radios-with-color-lcd-screen) ### API status @@ -26,16 +26,15 @@ This command is currently not rate limited, so repeated frequent calls will slow ### Examples -{% tabs %} -{% tab title="Example 1" %} +#### Example 1 + ```lua -- Take a screenshot screenshot() ``` -{% endtab %} -{% endtabs %} + ### Related topics -* [Drawing flag](../../lua-api-programming/drawing-flags-and-colors.md) +* [Drawing flag](../../programming/drawing-flags-and-colors.md) * [Color constants](../constants/color-constants.md) diff --git a/lua-api-reference/telemetry/getrssi.md b/website/md-docs/api-reference/telemetry/getrssi.md similarity index 92% rename from lua-api-reference/telemetry/getrssi.md rename to website/md-docs/api-reference/telemetry/getrssi.md index e6febf3ab..fcfcb0e71 100644 --- a/lua-api-reference/telemetry/getrssi.md +++ b/website/md-docs/api-reference/telemetry/getrssi.md @@ -1,2 +1 @@ # getRSSI() - diff --git a/lua-api-reference/telemetry/README.md b/website/md-docs/api-reference/telemetry/index.md similarity index 92% rename from lua-api-reference/telemetry/README.md rename to website/md-docs/api-reference/telemetry/index.md index 1a5e6d0a2..d7cadff76 100644 --- a/lua-api-reference/telemetry/README.md +++ b/website/md-docs/api-reference/telemetry/index.md @@ -1,2 +1 @@ # Telemetry - diff --git a/lua-api-reference/time/getdatetime.md b/website/md-docs/api-reference/time/getdatetime.md similarity index 100% rename from lua-api-reference/time/getdatetime.md rename to website/md-docs/api-reference/time/getdatetime.md diff --git a/lua-api-reference/time/getglobaltimer.md b/website/md-docs/api-reference/time/getglobaltimer.md similarity index 100% rename from lua-api-reference/time/getglobaltimer.md rename to website/md-docs/api-reference/time/getglobaltimer.md diff --git a/lua-api-reference/time/getrtctime.md b/website/md-docs/api-reference/time/getrtctime.md similarity index 100% rename from lua-api-reference/time/getrtctime.md rename to website/md-docs/api-reference/time/getrtctime.md diff --git a/lua-api-reference/time/gettime.md b/website/md-docs/api-reference/time/gettime.md similarity index 100% rename from lua-api-reference/time/gettime.md rename to website/md-docs/api-reference/time/gettime.md diff --git a/lua-api-reference/time/README.md b/website/md-docs/api-reference/time/index.md similarity index 87% rename from lua-api-reference/time/README.md rename to website/md-docs/api-reference/time/index.md index 4fabcd9b4..dc3a17f01 100644 --- a/lua-api-reference/time/README.md +++ b/website/md-docs/api-reference/time/index.md @@ -1,2 +1 @@ # Time - diff --git a/lua-api-reference/time/resetglobaltimer.md b/website/md-docs/api-reference/time/resetglobaltimer.md similarity index 100% rename from lua-api-reference/time/resetglobaltimer.md rename to website/md-docs/api-reference/time/resetglobaltimer.md diff --git a/lua-api-reference/variables/getfieldinfo.md b/website/md-docs/api-reference/variables/getfieldinfo.md similarity index 100% rename from lua-api-reference/variables/getfieldinfo.md rename to website/md-docs/api-reference/variables/getfieldinfo.md diff --git a/lua-api-reference/variables/getflightmode.md b/website/md-docs/api-reference/variables/getflightmode.md similarity index 100% rename from lua-api-reference/variables/getflightmode.md rename to website/md-docs/api-reference/variables/getflightmode.md diff --git a/lua-api-reference/variables/getlogicalswitchvalue.md b/website/md-docs/api-reference/variables/getlogicalswitchvalue.md similarity index 100% rename from lua-api-reference/variables/getlogicalswitchvalue.md rename to website/md-docs/api-reference/variables/getlogicalswitchvalue.md diff --git a/lua-api-reference/variables/getoutputvalue.md b/website/md-docs/api-reference/variables/getoutputvalue.md similarity index 100% rename from lua-api-reference/variables/getoutputvalue.md rename to website/md-docs/api-reference/variables/getoutputvalue.md diff --git a/lua-api-reference/variables/getshmvar.md b/website/md-docs/api-reference/variables/getshmvar.md similarity index 100% rename from lua-api-reference/variables/getshmvar.md rename to website/md-docs/api-reference/variables/getshmvar.md diff --git a/lua-api-reference/variables/getsourceindex.md b/website/md-docs/api-reference/variables/getsourceindex.md similarity index 100% rename from lua-api-reference/variables/getsourceindex.md rename to website/md-docs/api-reference/variables/getsourceindex.md diff --git a/lua-api-reference/variables/getsourcename.md b/website/md-docs/api-reference/variables/getsourcename.md similarity index 100% rename from lua-api-reference/variables/getsourcename.md rename to website/md-docs/api-reference/variables/getsourcename.md diff --git a/lua-api-reference/variables/getsourcevalue.md b/website/md-docs/api-reference/variables/getsourcevalue.md similarity index 100% rename from lua-api-reference/variables/getsourcevalue.md rename to website/md-docs/api-reference/variables/getsourcevalue.md diff --git a/lua-api-reference/variables/getswitchindex.md b/website/md-docs/api-reference/variables/getswitchindex.md similarity index 100% rename from lua-api-reference/variables/getswitchindex.md rename to website/md-docs/api-reference/variables/getswitchindex.md diff --git a/lua-api-reference/variables/getswitchname.md b/website/md-docs/api-reference/variables/getswitchname.md similarity index 100% rename from lua-api-reference/variables/getswitchname.md rename to website/md-docs/api-reference/variables/getswitchname.md diff --git a/lua-api-reference/variables/getswitchvalue.md b/website/md-docs/api-reference/variables/getswitchvalue.md similarity index 100% rename from lua-api-reference/variables/getswitchvalue.md rename to website/md-docs/api-reference/variables/getswitchvalue.md diff --git a/lua-api-reference/variables/getvalue.md b/website/md-docs/api-reference/variables/getvalue.md similarity index 100% rename from lua-api-reference/variables/getvalue.md rename to website/md-docs/api-reference/variables/getvalue.md diff --git a/lua-api-reference/variables/README.md b/website/md-docs/api-reference/variables/index.md similarity index 92% rename from lua-api-reference/variables/README.md rename to website/md-docs/api-reference/variables/index.md index 5df2cd1bd..ee1fba428 100644 --- a/lua-api-reference/variables/README.md +++ b/website/md-docs/api-reference/variables/index.md @@ -1,2 +1 @@ # Variables - diff --git a/lua-api-reference/variables/setshmvar.md b/website/md-docs/api-reference/variables/setshmvar.md similarity index 100% rename from lua-api-reference/variables/setshmvar.md rename to website/md-docs/api-reference/variables/setshmvar.md diff --git a/lua-api-reference/variables/setstickyswitch.md b/website/md-docs/api-reference/variables/setstickyswitch.md similarity index 100% rename from lua-api-reference/variables/setstickyswitch.md rename to website/md-docs/api-reference/variables/setstickyswitch.md diff --git a/lua-api-reference/variables/sources.md b/website/md-docs/api-reference/variables/sources.md similarity index 100% rename from lua-api-reference/variables/sources.md rename to website/md-docs/api-reference/variables/sources.md diff --git a/lua-api-reference/variables/switches.md b/website/md-docs/api-reference/variables/switches.md similarity index 100% rename from lua-api-reference/variables/switches.md rename to website/md-docs/api-reference/variables/switches.md diff --git a/appendix/fonts.md b/website/md-docs/appendix/fonts.md similarity index 100% rename from appendix/fonts.md rename to website/md-docs/appendix/fonts.md diff --git a/appendix/README.md b/website/md-docs/appendix/index.md similarity index 100% rename from appendix/README.md rename to website/md-docs/appendix/index.md diff --git a/website/md-docs/assets/edgetx-logo.svg b/website/md-docs/assets/edgetx-logo.svg new file mode 100644 index 000000000..2f0adba37 --- /dev/null +++ b/website/md-docs/assets/edgetx-logo.svg @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/md-docs/assets/fonts/Roboto-Bold.ttf b/website/md-docs/assets/fonts/Roboto-Bold.ttf new file mode 100644 index 000000000..d3f01ad24 Binary files /dev/null and b/website/md-docs/assets/fonts/Roboto-Bold.ttf differ diff --git a/website/md-docs/assets/fonts/Roboto-Regular.ttf b/website/md-docs/assets/fonts/Roboto-Regular.ttf new file mode 100644 index 000000000..2c97eeadf Binary files /dev/null and b/website/md-docs/assets/fonts/Roboto-Regular.ttf differ diff --git "a/.gitbook/assets/Screenshot 2025-04-07 at 10.02.29\342\200\257AM.png" "b/website/md-docs/assets/legacy-2.11/Screenshot 2025-04-07 at 10.02.29\342\200\257AM.png" similarity index 100% rename from ".gitbook/assets/Screenshot 2025-04-07 at 10.02.29\342\200\257AM.png" rename to "website/md-docs/assets/legacy-2.11/Screenshot 2025-04-07 at 10.02.29\342\200\257AM.png" diff --git "a/.gitbook/assets/Screenshot 2025-12-04 at 1.49.43\342\200\257pm.png" "b/website/md-docs/assets/legacy-2.11/Screenshot 2025-12-04 at 1.49.43\342\200\257pm.png" similarity index 100% rename from ".gitbook/assets/Screenshot 2025-12-04 at 1.49.43\342\200\257pm.png" rename to "website/md-docs/assets/legacy-2.11/Screenshot 2025-12-04 at 1.49.43\342\200\257pm.png" diff --git a/.gitbook/assets/flags (1).png b/website/md-docs/assets/legacy-2.11/flags (1).png similarity index 100% rename from .gitbook/assets/flags (1).png rename to website/md-docs/assets/legacy-2.11/flags (1).png diff --git a/.gitbook/assets/screenshot_tx16s_24-08-08_19-41-54.png b/website/md-docs/assets/legacy-2.11/screenshot_tx16s_24-08-08_19-41-54.png similarity index 100% rename from .gitbook/assets/screenshot_tx16s_24-08-08_19-41-54.png rename to website/md-docs/assets/legacy-2.11/screenshot_tx16s_24-08-08_19-41-54.png diff --git a/.gitbook/assets/screenshot_tx16s_24-08-08_19-42-01.png b/website/md-docs/assets/legacy-2.11/screenshot_tx16s_24-08-08_19-42-01.png similarity index 100% rename from .gitbook/assets/screenshot_tx16s_24-08-08_19-42-01.png rename to website/md-docs/assets/legacy-2.11/screenshot_tx16s_24-08-08_19-42-01.png diff --git a/website/md-docs/assets/luals/Bitmap.d.lua b/website/md-docs/assets/luals/Bitmap.d.lua new file mode 100644 index 000000000..7b72a925b --- /dev/null +++ b/website/md-docs/assets/luals/Bitmap.d.lua @@ -0,0 +1,59 @@ +---@meta + +-- GENERATED FILE — do not hand-edit. +-- Regenerated by `tools/docs_pipeline.py build` (see docs-system/README.md). +-- To fix API facts: edit the upstream EdgeTX /*luadoc*/ comment, then +-- re-extract and rebuild. To add narrative content: edit +-- docs-system/overlays/.md, then rebuild. + +--- LCD line pattern selector such as SOLID or DOTTED. +---@alias pen_type integer +--- Text rendering flags used by legacy LCD number APIs. +---@alias text_flags integer +--- Packed 16-bit RGB color value for color LCD APIs. +---@alias lcd_color_RGB565 integer +--- Font size selector such as XXLSIZE, DBLSIZE, MIDSIZE, or SMLSIZE. +---@alias lcd_font_size integer +--- Bitmask of LCD text rendering flags such as INVERS, BLINK, and SHADOWED. +---@alias lcd_text_flags integer +--- Combined LCD text formatting bitmask covering font size and text flags. +---@alias lcd_text_format integer +--- Signed EdgeTX source value in the normalized range from -1024 to 1024. +---@alias source_range_1024 integer +--- Global timer selector such as all, total, session, throttle, or throttlepct. +---@alias timer_type string +--- Telemetry unit identifier from the EdgeTX unit list. +---@alias unit_type integer +--- Telemetry precision selector controlling decimal places. +---@alias prec_type integer + +---@class Bitmap +Bitmap = {} + +--- Return width, height of a bitmap object +--- @since 2.2.0 +---@param name pointer point to a bitmap previously opened with Bitmap.open() +---@return integer width_in_pixels +---@return integer height_in_pixels +function Bitmap.getSize(name) end + +--- Loads a bitmap in memory, for later use with lcd.drawBitmap(). Bitmaps should be loaded only +once, returned object should be stored and used for drawing. If loading fails for whatever +reason the resulting bitmap object will have width and height set to zero. +--- @since 2.2.0 +---@param name string full path to the bitmap on SD card (i.e. “/IMAGES/test.bmp”) +---@return object bitmap +function Bitmap.open(name) end + +--- Return a resized bitmap object +--- @since 2.8.0 +---@param bitmap pointer point to a bitmap previously opened with Bitmap.open() +---@param width integer the new bitmap width +---@param height integer the new bitmap height +function Bitmap.resize(bitmap, width, height) end + +--- Return a 8bit bitmap mask that can be used with lcd.drawBitmapPattern() +--- @since 2.8.0 +---@param bitmap pointer point to a bitmap previously opened with Bitmap.open() +---@return unknown a +function Bitmap.toMask(bitmap) end diff --git a/website/md-docs/assets/luals/lcd.d.lua b/website/md-docs/assets/luals/lcd.d.lua new file mode 100644 index 000000000..d845fa01f --- /dev/null +++ b/website/md-docs/assets/luals/lcd.d.lua @@ -0,0 +1,353 @@ +---@meta + +-- GENERATED FILE — do not hand-edit. +-- Regenerated by `tools/docs_pipeline.py build` (see docs-system/README.md). +-- To fix API facts: edit the upstream EdgeTX /*luadoc*/ comment, then +-- re-extract and rebuild. To add narrative content: edit +-- docs-system/overlays/.md, then rebuild. + +--- LCD line pattern selector such as SOLID or DOTTED. +---@alias pen_type integer +--- Text rendering flags used by legacy LCD number APIs. +---@alias text_flags integer +--- Packed 16-bit RGB color value for color LCD APIs. +---@alias lcd_color_RGB565 integer +--- Font size selector such as XXLSIZE, DBLSIZE, MIDSIZE, or SMLSIZE. +---@alias lcd_font_size integer +--- Bitmask of LCD text rendering flags such as INVERS, BLINK, and SHADOWED. +---@alias lcd_text_flags integer +--- Combined LCD text formatting bitmask covering font size and text flags. +---@alias lcd_text_format integer +--- Signed EdgeTX source value in the normalized range from -1024 to 1024. +---@alias source_range_1024 integer +--- Global timer selector such as all, total, session, throttle, or throttlepct. +---@alias timer_type string +--- Telemetry unit identifier from the EdgeTX unit list. +---@alias unit_type integer +--- Telemetry precision selector controlling decimal places. +---@alias prec_type integer + +---@class lcd +lcd = {} + +--- Returns a drawing flag with RGB color code +--- @since 2.2.0 +---@param r integer a number between 0 and 255 that expresses the amount of red in the color +---@param g integer a number between 0 and 255 that expresses the amount of green in the color +---@param b integer a number between 0 and 255 that expresses the amount of blue in the color +---@param rgb integer a number between 0 and 0xFFFFFF that expresses the RGB value (0xFF000=RED, 0x00FF00=GREEN, 0x0000FF=BLUE) +---@return integer flag +function lcd.RGB(r, g, b, rgb) end + +--- Clear the LCD screen +--- @since 2.0.0 +---@param color? unknown +function lcd.clear(color) end + +--- Draw an arc +--- @since 2.4.0 +---@param x integer coordinates of the center +---@param y integer coordinates of the center +---@param r1 integer radii of the inside and outside of the annulus +---@param r2 integer radii of the inside and outside of the annulus +---@param start integer start and end of the annulus +---@param end integer start and end of the annulus +---@param flags? integer please see the Lcd functions overview +function lcd.drawAnnulus(x, y, r1, r2, start, end, flags) end + +--- Draw an arc +--- @since 2.4.0 +---@param x integer coordinates of the center +---@param y integer coordinates of the center +---@param r integer radius +---@param start integer start and end of the arc +---@param end integer start and end of the arc +---@param flags? integer please see the Lcd functions overview +function lcd.drawArc(x, y, r, start, end, flags) end + +--- Displays a bitmap at (x,y) +--- @since 2.2.0 +---@param bitmap pointer point to a bitmap previously opened with Bitmap.open() +---@param x integer starting coordinates +---@param y integer starting coordinates +---@param scale? integer scale in %, 50 divides size by two, 100 is unchanged, 200 doubles size. Omitting scale draws image in 1:1 scale and is faster than specifying 100 for scale. +function lcd.drawBitmap(bitmap, x, y, scale) end + +--- Displays a bitmap pattern at (x,y) +--- @since 2.8.0 +---@param bitmap pointer point to a bitmap previously opened with Bitmap.open() +---@param x integer starting coordinates +---@param y integer starting coordinates +---@param flags? integer please see the Lcd functions overview +function lcd.drawBitmapPattern(bitmap, x, y, flags) end + +--- Displays a bitmap pattern pie at (x,y) +--- @since 2.8.0 +---@param bitmap pointer point to a bitmap previously opened with Bitmap.open() +---@param x integer starting coordinates +---@param y integer starting coordinates +---@param startangle unknown Start angle +---@param endangle unknown End angle +---@param flags? integer please see the Lcd functions overview +function lcd.drawBitmapPatternPie(bitmap, x, y, startangle, endangle, flags) end + +--- Display a telemetry value at (x,y) +--- @since 2.0.6 +---@param x integer starting coordinate +---@param y integer starting coordinate +---@param source integer|string can be a source identifier (number) or a source name (string). See getValue() +---@param flags integer please see the Lcd functions overview +function lcd.drawChannel(x, y, source, flags) end + +--- Draw a circle at (x, y) of specified radius +--- @since 2.4.0 +---@param x integer center position +---@param y integer center position +---@param r integer radius in pixels +---@param flags? integer please see the Lcd functions overview +function lcd.drawCircle(x, y, r, flags) end + +--- Draw a combo box +--- @since 2.0.0 +---@param x integer top left corner position +---@param y integer top left corner position +---@param w integer width of combo box in pixels +---@param list table combo box elements, each element is a string +---@param idx integer index of entry to highlight +---@param flags? integer drawing flags, the flags can not be combined: * BLINK combo box is expanded * INVERS combo box collapsed, text inversed * 0 or not present combo box collapsed, text normal +function lcd.drawCombobox(x, y, w, list, idx, flags) end + +--- Draw a filled circle at (x, y) of specified radius +--- @since 2.4.0 +---@param x integer center position +---@param y integer center position +---@param r integer radius in pixels +---@param flags? integer please see the Lcd functions overview +function lcd.drawFilledCircle(x, y, r, flags) end + +--- Draw a solid rectangle from top left corner (x,y) of specified width and height +--- @since 2.0.0 +---@param x integer top left corner position +---@param y integer top left corner position +---@param w integer width in pixels +---@param h integer height in pixels +---@param flags? integer please see the Lcd functions overview +---@param opacity? integer opacity defaults to 0 (only on radios with color display) +function lcd.drawFilledRectangle(x, y, w, h, flags, opacity) end + +--- Draw a filled triangle +--- @since 2.4.0 +---@param x1 integer coordinates of the three vertices +---@param y1 integer coordinates of the three vertices +---@param x2 integer coordinates of the three vertices +---@param y2 integer coordinates of the three vertices +---@param x3 integer coordinates of the three vertices +---@param y3 integer coordinates of the three vertices +---@param flags? integer please see the Lcd functions overview +function lcd.drawFilledTriangle(x1, y1, x2, y2, x3, y3, flags) end + +--- Draw a simple gauge that is filled based upon fill value +--- @since 2.0.0 +---@param x integer top left corner position +---@param y integer top left corner position +---@param w integer width in pixels +---@param h integer height in pixels +---@param fill integer amount of fill to apply +---@param maxfill integer total value of fill +---@param flags? integer please see the Lcd functions overview +function lcd.drawGauge(x, y, w, h, fill, maxfill, flags) end + +--- Draw a rectangle in perspective +--- @since 2.4.0 +---@param pitch integer pitch and roll to define the orientation of the rectangle +---@param roll integer pitch and roll to define the orientation of the rectangle +---@param xmin integer the limits of the rectangle +---@param xmax integer the limits of the rectangle +---@param ymin integer the limits of the rectangle +---@param ymax integer the limits of the rectangle +---@param flags? integer please see the Lcd functions overview +function lcd.drawHudRectangle(pitch, roll, xmin, xmax, ymin, ymax, flags) end + +--- Draw a straight line on LCD +--- @since 2.0.0 +---@param x1 integer starting coordinate +---@param y1 integer starting coordinate +---@param x2 integer end coordinate +---@param y2 integer end coordinate +---@param pattern unknown SOLID or DOTTED +---@param flags? integer lcdflags +function lcd.drawLine(x1, y1, x2, y2, pattern, flags) end + +--- Draw a line only inside a rectangle +--- @since 2.4.0 +---@param x1 integer coordinates of the start and end of the unclipped line +---@param y1 integer coordinates of the start and end of the unclipped line +---@param x2 integer coordinates of the start and end of the unclipped line +---@param y2 integer coordinates of the start and end of the unclipped line +---@param xmin integer the limits of the rectangle inside which the line is drawn +---@param xmax integer the limits of the rectangle inside which the line is drawn +---@param ymin integer the limits of the rectangle inside which the line is drawn +---@param ymax integer the limits of the rectangle inside which the line is drawn +---@param pattern FORCE please see the Lcd functions overview +---@param flags? integer please see the Lcd functions overview +function lcd.drawLineWithClipping(x1, y1, x2, y2, xmin, xmax, ymin, ymax, pattern, flags) end + +--- Display a number at (x,y) +--- @since 2.0.0 +---@param x integer starting coordinate +---@param y integer starting coordinate +---@param value integer value to display +---@param flags? integer please see the Lcd functions overview +---@param inverscolor? unknown overrides the inverse text color for INVERS +function lcd.drawNumber(x, y, value, flags, inverscolor) end + +--- Draw a pie slice +--- @since 2.4.0 +---@param x integer coordinates of the center +---@param y integer coordinates of the center +---@param r integer radius +---@param start integer start and end of the pie slice +---@param end integer start and end of the pie slice +---@param flags? integer please see the Lcd functions overview +function lcd.drawPie(x, y, r, start, end, flags) end + +--- Draw a bitmap at (x,y) +--- @since 2.0.0 +---@param x integer starting coordinates +---@param y integer starting coordinates +---@param name string full path to the bitmap on SD card (i.e. “/IMAGES/test.bmp”) +function lcd.drawPixmap(x, y, name) end + +--- Draw a single pixel at (x,y) position +--- @since 2.0.0 +---@param x integer x position +---@param y integer y position +---@param flags? integer please see the Lcd functions overview +function lcd.drawPoint(x, y, flags) end + +--- Draw a rectangle from top left corner (x,y) of specified width and height +--- @since 2.0.0 +---@param x integer top left corner position +---@param y integer top left corner position +---@param w integer width in pixels +---@param h integer height in pixels +---@param flags? integer please see the Lcd functions overview +---@param t? integer thickness in pixels, defaults to 1 (only on radios with color display) +---@param opacity? integer opacity defaults to 0 (only on radios with color display) +function lcd.drawRectangle(x, y, w, h, flags, t, opacity) end + +--- Draw a title bar +--- @since 2.0.0 +---@param title string text for the title +---@param page integer page number +---@param pages integer total number of pages. Only used as indicator on the right side of title bar. (i.e. idx=2, cnt=5, display 2/5) +function lcd.drawScreenTitle(title, page, pages) end + +--- Displays the name of the corresponding input as defined by the source at (x,y) +--- @since 2.0.0 +---@param x integer starting coordinate +---@param y integer starting coordinate +---@param source integer source index +---@param flags? integer please see the Lcd functions overview +function lcd.drawSource(x, y, source, flags) end + +--- Draw a text representation of switch at (x,y) +--- @since 2.0.0 +---@param x integer starting coordinate +---@param y integer starting coordinate +---@param switch integer number of switch to display, negative number displays negated switch +---@param flags integer please see the Lcd functions overview, only SMLSIZE, BLINK and INVERS. +function lcd.drawSwitch(x, y, switch, flags) end + +--- Draw a text beginning at (x,y) +--- @since 2.0.0 +---@param x integer starting coordinate +---@param y integer starting coordinate +---@param text string text to display +---@param flags? integer please see the Lcd functions overview for drawing flags and colors, and the Appendix for available characters in each font set. +---@param inverscolor? unknown overrides the inverse text color for INVERS +function lcd.drawText(x, y, text, flags, inverscolor) end + +--- Draw text inside rectangle (x,y,w,h) with line breaks +--- @since 2.5.0 +---@param x integer starting coordinate +---@param y integer starting coordinate +---@param w integer width and height of bounding rectangle +---@param h integer width and height of bounding rectangle +---@param text string text to display +---@param flags? integer please see the Lcd functions overview for drawing flags and colors, and the Appendix for available characters in each font set. RIGHT, CENTER and VCENTER are not implemented. +---@return integer x_y +function lcd.drawTextLines(x, y, w, h, text, flags) end + +--- Display a value formatted as time at (x,y) +--- @since 2.0.0 +---@param x integer starting coordinate +---@param y integer starting coordinate +---@param value integer time in seconds +---@param flags? integer please see the Lcd functions overview +---@param inverscolor? unknown overrides the inverse text color for INVERS +function lcd.drawTimer(x, y, value, flags, inverscolor) end + +--- Draw a triangle +--- @since 2.4.0 +---@param x1 integer coordinates of the three vertices +---@param y1 integer coordinates of the three vertices +---@param x2 integer coordinates of the three vertices +---@param y2 integer coordinates of the three vertices +---@param x3 integer coordinates of the three vertices +---@param y3 integer coordinates of the three vertices +---@param flags? integer please see the Lcd functions overview +function lcd.drawTriangle(x1, y1, x2, y2, x3, y3, flags) end + +--- Exit full screen widget mode. +--- @since 2.5.0 +function lcd.exitFullScreen() end + +--- Get the color value from flags +--- @since 2.3.11 +---@param flags integer please see the Lcd functions overview +---@return integer color +function lcd.getColor(flags) end + +--- Returns the leftmost x position from previous drawtext or drawNumber output +--- @since 2.2.0 +---@return integer number +function lcd.getLastLeftPos() end + +--- Returns the rightmost x position from previous output +--- @since 2.0.0 +---@return integer number +function lcd.getLastPos() end + +--- Returns the rightest x position from previous drawtext or drawNumber output +--- @since 2.2.0 +---@return integer number +function lcd.getLastRightPos() end + +--- Invert a rectangle zone from top left corner (x,y) of specified width and height +--- @since 2.8.0 +---@param x integer top left corner position +---@param y integer top left corner position +---@param w integer width in pixels +---@param h integer height in pixels +---@param flags? integer please see the Lcd functions overview +function lcd.invertRect(x, y, w, h, flags) end + +--- Refresh the LCD screen +--- @since 2.2.0 +function lcd.refresh() end + +--- Reset the backlight timeout +--- @since 2.3.6 +function lcd.resetBacklightTimeout() end + +--- Change an indexed color (theme colors and CUSTOM_COLOR). Please see the Lcd functions overview for indexed color constants +--- @since 2.2.0 +function lcd.setColor() end + +--- Get the width and height of a text string drawn with flags +--- @since 2.5.0 +---@param text string +---@param flags? integer please see the Lcd functions overview +---@return integer w_h +function lcd.sizeText(text, flags) end diff --git a/website/md-docs/assets/luals/lvgl.d.lua b/website/md-docs/assets/luals/lvgl.d.lua new file mode 100644 index 000000000..d03f10350 --- /dev/null +++ b/website/md-docs/assets/luals/lvgl.d.lua @@ -0,0 +1,326 @@ +---@meta + +-- GENERATED FILE — do not hand-edit. +-- Regenerated by `tools/docs_pipeline.py build` (see docs-system/README.md). +-- To fix API facts: edit the upstream EdgeTX /*luadoc*/ comment, then +-- re-extract and rebuild. To add narrative content: edit +-- docs-system/overlays/.md, then rebuild. + +--- LCD line pattern selector such as SOLID or DOTTED. +---@alias pen_type integer +--- Text rendering flags used by legacy LCD number APIs. +---@alias text_flags integer +--- Packed 16-bit RGB color value for color LCD APIs. +---@alias lcd_color_RGB565 integer +--- Font size selector such as XXLSIZE, DBLSIZE, MIDSIZE, or SMLSIZE. +---@alias lcd_font_size integer +--- Bitmask of LCD text rendering flags such as INVERS, BLINK, and SHADOWED. +---@alias lcd_text_flags integer +--- Combined LCD text formatting bitmask covering font size and text flags. +---@alias lcd_text_format integer +--- Signed EdgeTX source value in the normalized range from -1024 to 1024. +---@alias source_range_1024 integer +--- Global timer selector such as all, total, session, throttle, or throttlepct. +---@alias timer_type string +--- Telemetry unit identifier from the EdgeTX unit list. +---@alias unit_type integer +--- Telemetry precision selector controlling decimal places. +---@alias prec_type integer + +---@class lvgl +lvgl = {} + +--- Display a button showing a text alignment name. Tapping it opens a popup menu to choose an alignment from, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called on every refresh cycle to keep the displayed value in sync, to get the currently selected alignment, defaults to nil * set (function) called when the user taps an alignment in the popup; passed the selected alignment value, defaults to nil +---@return table +function lvgl.align(parent, params) end + +--- Display an arc. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * thickness (number) width of the arc's line, defaults to 1 * radius (number or function) radius of the arc, defaults to 0 * startAngle (number or function) starting angle in degrees (0-360), 0 is 3 o'clock, defaults to 0 * endAngle (number or function) ending angle in degrees, defaults to 360 * opacity (number or function) opacity from 0 (transparent) to 255 (opaque), defaults to 255 * rounded (boolean) if true the ends of the arc are rounded, defaults to false * bgColor (color or function) color of the background arc, not used by default * bgOpacity (number or function) opacity of the background arc, defaults to 0 (not visible) * bgStartAngle (number or function) starting angle of the background arc in degrees, defaults to 0 * bgEndAngle (number or function) ending angle of the background arc in degrees, defaults to 360 +---@return table +function lvgl.arc(parent, params) end + +--- Create a container for managing object layout. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * flexFlow (lvgl.FLOW_COLUMN or lvgl.FLOW_ROW) enables flex layout for this box, not used by default * flexPad (number) padding between rows/columns when flex layout is used; recommend using lvgl.PAD_xxx values, defaults to PAD_OUTLINE * scrollBar (boolean) enables/disables scroll bars, defaults to true * scrollDir (lvgl.SCROLL_xx) allowed scroll directions when child objects extend past the box bounds (stand alone scripts only), defaults to lvgl.SCROLL_ALL * scrolled (function) called when the box content is scrolled; passed x, y of the current scroll position, defaults to nil * scrollTo (function) overrides the box scroll position; must return x, y to scroll to, defaults to nil * align (alignment type (LEFT, RIGHT, CENTER, VTOP, VBOTTOM, VCENTER)) alignment used with flex layouts (added in 2.11.4); avoid combining an alignment with a scrollbar on the same axis, defaults to CENTER | VTOP * borderPad (number or table) border padding around the container edges; a single number applies to all sides, or a table {left=?, right=?, top=?, bottom=?} (added in 2.11.5), defaults to PAD_OUTLINE if flexFlow is set, otherwise 0 +---@return table +function lvgl.box(parent, params) end + +--- Build a complex UI in a single operation from a table of object definitions. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the built objects to; if omitted they attach to the top-level script window +---@param params table a table of tables, each defining one LVGL object: * type (string or type constant) mandatory, selects the kind of object to create, e.g. "rectangle" or lvgl.RECTANGLE; named type constants (e.g. lvgl.RECTANGLE) added in 2.11.4, string names work in all versions * name (string) optional name used to look up this object in the returned table, defaults to an empty string * children (table) optional nested table of the same shape, to create child objects * any other key accepted by the constructor function for the chosen type +---@return table +function lvgl.build(parent, params) end + +--- Add a text button using the EdgeTX style. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * text (string or function) text displayed in the button, defaults to an empty string * press (function) called when the user taps the button, after releasing ENTER or the screen; may optionally return a non-zero integer to display the button in the checked state, defaults to nil * longpress (function) called on a long tap; may optionally return a non-zero integer to display the button in the checked state, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil * checked (boolean) sets the initial checked state; can be updated with lvgl.set(), defaults to false * color (color or function) background color, defaults to the EdgeTX button style PRIMARY2 theme color * textColor (color or function) text color, defaults to the EdgeTX button style SECONDARY1 theme color * cornerRadius (number) radius for the button's corners, defaults to the EdgeTX button style radius * font (font value or function) sets the font size, e.g. MIDSIZE, DBLSIZE; defaults to STDSIZE +---@return table +function lvgl.button(parent, params) end + +--- Display a button showing an option value. Tapping it opens a popup menu of options to choose from, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * title (string) text displayed in the popup menu's header, defaults to an empty string * values (table) simple table of option strings shown in the popup; can be changed via lvgl.set() since 2.11.6, defaults to an empty list * get (function) called on every refresh cycle to keep the displayed value in sync, to get the index of the currently selected option (1..number of values), defaults to nil * set (function) called when the user taps a menu item; passed the selected item's index (1..number of values), defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil * filter (function) called for each option when the popup opens, passed the option's index; return true to show it, false to hide it, defaults to nil * popupWidth (number) width of the popup window, defaults to 0 (use default width) +---@return table +function lvgl.choice(parent, params) end + +--- Display a solid or outlined circle. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * thickness (number) width of the border line, defaults to 1 * filled (boolean) if true the circle is filled with color, defaults to false * radius (number or function) radius of the circle, defaults to 0 * opacity (number or function) opacity from 0 (transparent) to 255 (opaque), defaults to 255 +---@return table +function lvgl.circle(parent, params) end + +--- Delete LVGL objects. +--- @since 2.11.0 +---@param parent? object optional LVGL object whose children should be deleted; if omitted, the entire script UI is deleted +---@return unknown none +function lvgl.clear(parent) end + +--- Close an LVGL object that represents a closable container or dialog. +--- @since 2.11.0 +---@param obj object LVGL object previously created by the lvgl library +---@return unknown none +function lvgl.close(obj) end + +--- Display a button showing a color swatch. Tapping it opens the color picker dialog, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called once when the object is created, to get the initial color, defaults to nil * set (function) called when the user picks a color; passed the selected color value, defaults to nil +---@return table +function lvgl.color(parent, params) end + +--- Display a Yes/No confirmation dialog box. +--- @since 2.11.0 +---@param params table * title (string) text displayed in the dialog's header, defaults to an empty string * message (string) text displayed in the dialog's body, defaults to an empty string * confirm (function) called when the user taps Yes, defaults to nil * cancel (function) called when the user taps No, defaults to nil +---@return unknown none +function lvgl.confirm(params) end + +--- Display a dialog box. +--- @since 2.11.0 +---@param params table * title (string) text displayed in the dialog's header, defaults to an empty string * close (function) called when the dialog is closed, defaults to nil * flexFlow (lvgl.FLOW_COLUMN or lvgl.FLOW_ROW) enables flex layout for this box, not used by default * flexPad (number) padding between rows/columns when flex layout is used, defaults to PAD_OUTLINE +---@return table +function lvgl.dialog(params) end + +--- Disable interaction for an LVGL control object. +--- @since 2.11.0 +---@param obj object LVGL object previously created by the lvgl library +---@return unknown none +function lvgl.disable(obj) end + +--- Enable interaction for an LVGL control object. +--- @since 2.11.0 +---@param obj object LVGL object previously created by the lvgl library +---@return unknown none +function lvgl.enable(obj) end + +--- If the script is running in full screen mode, return it to normal mode. +--- @since 2.11.0 +---@return unknown none +function lvgl.exitFullScreen() end + +--- Display a button showing a filename. Tapping it opens a popup file picker, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * title (string) text displayed in the popup's header, defaults to an empty string * get (function) called when the popup is opened, and after the selection changes, to get the currently selected filename; must return a string, defaults to nil * set (function) called when the user picks a file; passed the selected filename (without path), defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil * folder (string) SD card folder to browse for files, defaults to nil * extension (string) extension filter, e.g. .png or concatenated .png.bmp to match multiple, defaults to nil (no filter) * hideExtension (boolean) if true, the extension is stripped before set is called and hidden in the picker list, defaults to false * maxLen (number) maximum filename length (measured after hideExtension stripping, if set); files with longer names are not shown in the picker list, defaults to 255 +---@return table +function lvgl.file(parent, params) end + +--- Display a button showing a font name. Tapping it opens a popup menu to choose a font from, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called on every refresh cycle to keep the displayed value in sync, to get the currently selected font, defaults to nil * set (function) called when the user taps a font in the popup; passed the selected font value, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil +---@return table +function lvgl.font(parent, params) end + +--- For a widget script, returns the local instance table created by (and returned from) the script's `create()` function. +--- @since 2.11.0 +---@return table +function lvgl.getContext() end + +--- Get the current scroll position of a container object. +--- @since 2.11.2 +---@param parent object LVGL container object (e.g. box, rectangle, or page) +---@return unknown number +function lvgl.getScrollPos(parent) end + +--- Hide an LVGL object. +--- @since 2.11.0 +---@param parent object LVGL object to hide +---@return unknown none +function lvgl.hide(parent) end + +--- Display a horizontal line. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * rounded (boolean) if true the line's end caps are rounded, defaults to false * opacity (number or function) opacity from 0 (transparent) to 255 (opaque), defaults to 255 * dashGap (number) gap size for dashed lines, defaults to 0 * dashWidth (number) dash size for dashed lines, defaults to 0; both dashGap and dashWidth must be > 0 to draw dashed lines +---@return table +function lvgl.hline(parent, params) end + +--- Display an image, centered in the frame `(x, y, w, h)`. Images can be scaled to fit entirely within the frame or to fill it completely. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * file (string) full path to the image file on the SD card, defaults to an empty string * fill (boolean) if true the image is scaled to completely fill the frame (may be cropped); if false it is scaled to fit entirely within the frame (may have empty borders), defaults to false +---@return table +function lvgl.image(parent, params) end + +--- Test if the script is running in App Mode. +--- @since 2.11.0 +---@return boolean +function lvgl.isAppMode() end + +--- Test if the script is running in full screen mode. +--- @since 2.11.0 +---@return boolean +function lvgl.isFullScreen() end + +--- Display a text label. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * text (string or function) text to display, defaults to an empty string * font (font value or function) sets the font size, e.g. MIDSIZE, DBLSIZE; defaults to STDSIZE * align (text alignment value or function) sets the text justification, e.g. RIGHT, VCENTER; defaults to LEFT. RIGHT/CENTER require w to be set. LEFT/RIGHT/CENTER align text horizontally within the label's bounding box (x,y,w,h); VCENTER/VTOP/VBOTTOM align the label's bounding box vertically within the parent object +---@return table +function lvgl.label(parent, params) end + +--- Display one or more connected line segments. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * rounded (boolean) if true the line's end caps are rounded, defaults to false * thickness (number) thickness of each line segment, defaults to 1 * opacity (number or function) opacity from 0 (transparent) to 255 (opaque), defaults to 255 * pts (table or function) table of points, each a {x, y} pair; at least two points are required, defaults to nil +---@return table +function lvgl.line(parent, params) end + +--- Open a popup menu with multiple options to choose from, using EdgeTX styling. +--- @since 2.11.1 +---@param params table * title (string) text displayed in the popup's header, defaults to an empty string * values (table) simple table of option strings shown in the popup, defaults to an empty list * get (function) called when the popup is opened, to get the index of the currently selected option (1..number of values), defaults to nil * set (function) called when the user taps a menu item; passed the selected item's index (1..number of values), defaults to nil +---@return unknown none +function lvgl.menu(params) end + +--- Display a message dialog box. +--- @since 2.11.0 +---@param params table * title (string) text displayed in the dialog's header, defaults to an empty string * message (string) text displayed in the dialog's body, defaults to an empty string * details (string) additional text displayed in the dialog's body, defaults to an empty string +---@return unknown none +function lvgl.message(params) end + +--- Add a momentary text button using the EdgeTX style. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * text (string or function) text displayed in the button, defaults to an empty string * press (function) called immediately when the user first taps the button or presses ENTER, defaults to nil * release (function) called when the user releases ENTER or stops touching the screen, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil * color (color or function) background color, defaults to the EdgeTX button style PRIMARY2 theme color * textColor (color or function) text color, defaults to the EdgeTX button style SECONDARY1 theme color * cornerRadius (number) radius for the button's corners, defaults to the EdgeTX button style radius * font (font value or function) sets the font size, e.g. MIDSIZE, DBLSIZE; defaults to STDSIZE +---@return table +function lvgl.momentaryButton(parent, params) end + +--- Add a number edit box using the EdgeTX style. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called to get the current value to display, defaults to nil * set (function) called for every change to the number while editing; passed the new value, defaults to nil * edited (function) called after the user finishes editing; passed the final value (added in 2.11.5), defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil * min (number) minimum allowed value, defaults to -1024 * max (number) maximum allowed value, defaults to 1024 * display (function) overrides how the value is displayed; passed the current value, must return a string, defaults to nil +---@return table +function lvgl.numberEdit(parent, params) end + +--- Create a page layout for a One-Time script using EdgeTX styling: a header with title/sub-title lines and a back button in the top-left corner. Should be created as the top-level LVGL object, with all other objects added as its children. +--- @since 2.11.0 +---@param params table * title (string or function) title text in the header; function support added in 2.11.4, defaults to an empty string * subtitle (string or function) sub-title text in the header; function support added in 2.11.4, defaults to an empty string * icon (string) full path to a 30x30 grey-scale mask image for the back button icon (white = transparent, black = opaque); defaults to the EdgeTX logo icon * back (function) called when RTN is pressed, or when the back button is tapped -- the top-left header button if backButton is not set, otherwise a second button on the top-right, defaults to nil * menu (function) called when the top-left header button is tapped, but only if backButton is set to true -- in that case back moves to a second button on the top-right, defaults to nil * prevButton (table) adds a prev navigation button; table has a press function and optional active function (added in 2.11.4), defaults to nil * nextButton (table) adds a next navigation button; table has a press function and optional active function (added in 2.11.4), defaults to nil * flexFlow (lvgl.FLOW_COLUMN or lvgl.FLOW_ROW) enables flex layout for this page, not used by default * flexPad (number) padding between rows/columns when flex layout is used, defaults to PAD_OUTLINE * scrollBar (boolean) enables/disables scroll bars, defaults to true * scrollDir (lvgl.SCROLL_xx) allowed scroll directions when child objects extend past the page bounds (stand alone scripts only), defaults to lvgl.SCROLL_ALL * scrolled (function) called when the page content is scrolled; passed x, y of the current scroll position, defaults to nil * scrollTo (function) overrides the page scroll position; must return x, y to scroll to, defaults to nil * align (alignment type (LEFT, RIGHT, CENTER, VTOP, VBOTTOM, VCENTER)) alignment used with flex layouts (added in 2.11.4), defaults to CENTER | VTOP * backButton (boolean) if true, adds a second header button on the top-right calling back, and repurposes the top-left button to call menu instead (added in 2.11.4), defaults to false * borderPad (number or table) border padding around the container edges; a single number applies to all sides, or a table {left=?, right=?, top=?, bottom=?} (added in 2.11.5), defaults to PAD_OUTLINE if flexFlow is set, otherwise 0 +---@return table +function lvgl.page(params) end + +--- Display a QR code. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * data (string) URL or other content to encode, defaults to an empty string * bgColor (color) background color for the QR code image, defaults to COLOR_THEME_SECONDARY3 +---@return table +function lvgl.qrcode(parent, params) end + +--- Display a rectangle. Based on `lvgl.box`, so all `lvgl.box` settings also apply. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * thickness (number) width of the border line, defaults to 1 * filled (boolean or function) if true the rectangle is filled with color, defaults to false (function support added in 2.11.4) * rounded (number) if greater than 0, rounds the corners with this radius; must be >= thickness if set, defaults to 0 * opacity (number or function) opacity from 0 (transparent) to 255 (opaque), defaults to 255 +---@return table +function lvgl.rectangle(parent, params) end + +--- Update the settings of an existing LVGL object. Can also be used to change settings that have no dedicated update function (e.g. rectangle thickness). Can also be called as `parent:set(params)`. +--- @since 2.11.0 +---@param parent object LVGL object to update; unlike the constructor functions, this parameter is required, not optional +---@param params table settings to update; use the same keys documented for the object's constructor function +---@return unknown none +function lvgl.set(parent, params) end + +--- Create a container for a single row of a settings page, automatically padded for controls such as toggle/textEdit/button. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * title (string or function) text displayed on the left; function support added in 2.11.6, defaults to an empty string +---@return table +function lvgl.setting(parent, params) end + +--- Show an LVGL object. +--- @since 2.11.0 +---@param parent object LVGL object to show +---@return unknown none +function lvgl.show(parent) end + +--- Add a horizontal slider using the EdgeTX style. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * min (number) minimum value at the left end of the range, defaults to 0 * max (number) maximum value at the right end of the range, defaults to 100 * get (function) called to get the current knob value; should return a value between min and max inclusive, defaults to nil * set (function) called when the user moves the knob; passed the new value, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil +---@return table +function lvgl.slider(parent, params) end + +--- Display a button showing a source name. Tapping it opens the source-select popup, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called on every refresh cycle to keep the displayed value in sync, to get the currently selected source, defaults to nil * set (function) called when the user picks a source; passed the selected source value, defaults to nil * filter (number) controls which source types the user can pick; combine lvgl.SRC_xxx constants to build a custom filter, defaults to lvgl.SRC_ALL +---@return table +function lvgl.source(parent, params) end + +--- Display a button showing a switch name. Tapping it opens the switch-select popup, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called on every refresh cycle to keep the displayed value in sync, to get the currently selected switch, defaults to nil * set (function) called when the user picks a switch; passed the selected switch value, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil * filter (number) controls which switch types the user can pick; combine lvgl.SW_xxx constants to build a custom filter, defaults to lvgl.SW_ALL +---@return table +function lvgl.switch(parent, params) end + +--- Add a text edit box using the EdgeTX style. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * value (string or function) text to edit; if a function, the text can be changed by both script and user, defaults to an empty string * length (number) maximum editable text length, 1 to 128, defaults to 32 * set (function) called when the user edits the text; passed the new string content, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil +---@return table +function lvgl.textEdit(parent, params) end + +--- Display a button showing a timer name. Tapping it opens a popup menu to choose a timer from, using EdgeTX styling. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called on every refresh cycle to keep the displayed value in sync, to get the currently selected timer, defaults to nil * set (function) called when the user taps a timer in the popup; passed the selected timer value, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil +---@return table +function lvgl.timer(parent, params) end + +--- Add a toggle switch using the EdgeTX style. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * get (function) called to get the current state; must return a boolean or number (0/false = off, 1/true = on), defaults to nil * set (function) called when the user interacts with the switch; passed a single number, 0 = off, 1 = on, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil +---@return table +function lvgl.toggle(parent, params) end + +--- Display a filled triangle. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * opacity (number or function) opacity from 0 (transparent) to 255 (opaque), defaults to 255 * pts (table or function) table of exactly three points, each a {x, y} pair, defaults to nil +---@return table +function lvgl.triangle(parent, params) end + +--- Add a vertical slider using the EdgeTX style. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * min (number) minimum value at the bottom end of the range, defaults to 0 * max (number) maximum value at the top end of the range, defaults to 100 * get (function) called to get the current knob value; should return a value between min and max inclusive, defaults to nil * set (function) called when the user moves the knob; passed the new value, defaults to nil * active (function) sets the enabled/disabled state; must return a boolean, true to enable, defaults to nil +---@return table +function lvgl.verticalSlider(parent, params) end + +--- Display a vertical line. +--- @since 2.11.0 +---@param parent? object optional LVGL object to attach the new object to; if omitted the object is created in the top-level script window +---@param params table * x (number) position relative to the top-left of the parent * y (number) position relative to the top-left of the parent * w (number) width * h (number) height * color (color or function) primary color for the object * pos (function) dynamic position callback returning x, y * size (function) dynamic size callback returning w, h * visible (function) dynamic visibility callback * floating (boolean) keep the object fixed inside a scrollable container, added in 2.11.6, defaults to false * rounded (boolean) if true the line's end caps are rounded, defaults to false * opacity (number or function) opacity from 0 (transparent) to 255 (opaque), defaults to 255 * dashGap (number) gap size for dashed lines, defaults to 0 * dashWidth (number) dash size for dashed lines, defaults to 0; both dashGap and dashWidth must be > 0 to draw dashed lines +---@return table +function lvgl.vline(parent, params) end diff --git a/website/md-docs/assets/luals/model.d.lua b/website/md-docs/assets/luals/model.d.lua new file mode 100644 index 000000000..7eb9437f7 --- /dev/null +++ b/website/md-docs/assets/luals/model.d.lua @@ -0,0 +1,259 @@ +---@meta + +-- GENERATED FILE — do not hand-edit. +-- Regenerated by `tools/docs_pipeline.py build` (see docs-system/README.md). +-- To fix API facts: edit the upstream EdgeTX /*luadoc*/ comment, then +-- re-extract and rebuild. To add narrative content: edit +-- docs-system/overlays/.md, then rebuild. + +--- LCD line pattern selector such as SOLID or DOTTED. +---@alias pen_type integer +--- Text rendering flags used by legacy LCD number APIs. +---@alias text_flags integer +--- Packed 16-bit RGB color value for color LCD APIs. +---@alias lcd_color_RGB565 integer +--- Font size selector such as XXLSIZE, DBLSIZE, MIDSIZE, or SMLSIZE. +---@alias lcd_font_size integer +--- Bitmask of LCD text rendering flags such as INVERS, BLINK, and SHADOWED. +---@alias lcd_text_flags integer +--- Combined LCD text formatting bitmask covering font size and text flags. +---@alias lcd_text_format integer +--- Signed EdgeTX source value in the normalized range from -1024 to 1024. +---@alias source_range_1024 integer +--- Global timer selector such as all, total, session, throttle, or throttlepct. +---@alias timer_type string +--- Telemetry unit identifier from the EdgeTX unit list. +---@alias unit_type integer +--- Telemetry precision selector controlling decimal places. +---@alias prec_type integer + +---@class model +model = {} + +--- Set all inputs to defaults +--- @since 2.0.0 +function model.defaultInputs() end + +--- Clear all flightModes +--- @since 2.3.10 +function model.deleteFlightModes() end + +--- Delete line from specified input +--- @since 2.0.0 +---@param input integer input number (use 0 for Input1) +---@param line integer input line (use 0 for first line) +function model.deleteInput(input, line) end + +--- Delete all Inputs +--- @since 2.0.0 +function model.deleteInputs() end + +--- Delete mixer line from specified Channel +--- @since 2.0.0 +---@param channel integer channel number (use 0 for CH1) +---@param line integer mix number (use 0 for first line(mix)) +function model.deleteMix(channel, line) end + +--- Remove all mixers +--- @since 2.0.0 +function model.deleteMixes() end + +--- Get Curve parameters +--- @since 2.0.12 +---@param curve integer curve number (use 0 for Curve1) +---@return nil +---@return table +function model.getCurve(curve) end + +--- Get Custom Function parameters +--- @since 2.0.0 +---@param function integer custom function number (use 0 for CF1) +---@return nil +---@return table +function model.getCustomFunction(function) end + +--- +--- @since 2.3.10 +---@param index integer flight mode number (use 0 for FM0) +---@return nil +---@return table +function model.getFlightMode(index) end + +--- Return current global variable value +--- @since unknown +---@param index integer zero based global variable index, use 0 for GV1, 8 for GV9 +---@param flight_mode integer Flight mode number (0 = FM0, 8 = FM8) +---@return nil +---@return integer +function model.getGlobalVariable(index, flight_mode) end + +--- Returns details about a Global Variable, but not values +--- @since 2.11.0 +---@param index integer zero based global variable index, use 0 for GV1, 8 for GV9 +---@return table +function model.getGlobalVariableDetails(index) end + +--- Get current Model information +--- @since 2.0.6 +---@return table +function model.getInfo() end + +--- Return input data for given input and line number +--- @since 2.0.0 +---@param input integer input number (use 0 for Input1) +---@param line integer input line (use 0 for first line) +---@return nil +---@return table +function model.getInput(input, line) end + +--- Return number of lines for given input +--- @since 2.0.0 +---@param input integer input number (use 0 for Input1) +---@return integer +function model.getInputsCount(input) end + +--- Get Logical Switch parameters +--- @since 2.0.0 +---@param switch integer logical switch number (use 0 for LS1) +---@return nil +---@return table +function model.getLogicalSwitch(switch) end + +--- Get configuration for specified Mix +--- @since 2.0.0 +---@param channel integer channel number (use 0 for CH1) +---@param line integer mix number (use 0 for first line(mix)) +---@return nil +---@return table +function model.getMix(channel, line) end + +--- Get the number of Mixer lines that the specified Channel has +--- @since 2.0.0 +---@param channel integer channel number (use 0 for CH1) +---@return integer +function model.getMixesCount(channel) end + +--- Get RF module parameters +--- @since 2.2.0 +---@param index integer module index (0 for internal, 1 for external) +---@return nil +---@return table +function model.getModule(index) end + +--- Get servo parameters +--- @since 2.0.0 +---@param index integer output number (use 0 for CH1) +---@return nil +---@return table +function model.getOutput(index) end + +--- Get Telemetry Sensor parameters +--- @since 2.3.0 +---@param sensor integer sensor number (use 0 for sensor 1) +---@return nil +---@return table +function model.getSensor(sensor) end + +--- Get heli swash parameters +--- @since 2.8.0 +---@return table +function model.getSwashRing() end + +--- Get model timer parameters +--- @since 2.0.0 +---@param timer integer timer index (0 for Timer 1) +---@return nil +---@return table +function model.getTimer(timer) end + +--- Insert an Input at specified line +--- @since 2.0.0 +---@param input integer input number (use 0 for Input1) +---@param line integer input line (use 0 for first line) +---@param value table input data, see model.getInput() +function model.insertInput(input, line, value) end + +--- Insert a mixer line into Channel +--- @since 2.0.0 +---@param channel integer channel number (use 0 for CH1) +---@param line integer mix number (use 0 for first line(mix)) +---@param value table see model.getMix() for table format +function model.insertMix(channel, line, value) end + +--- Reset Telemetry Sensor parameters +--- @since 2.3.11 +---@param sensor integer sensor number (use 0 for sensor 1) +---@return nil +function model.resetSensor(sensor) end + +--- Reset model timer to a startup value +--- @since unknown +---@param timer integer timer index (0 for Timer 1) +function model.resetTimer(timer) end + +--- Set Curve parameters +--- @since 2.2.0 +---@param curve integer curve number (use 0 for Curve1) +---@param params integer see model.getCurve return format for table format. setCurve uses standard lua array indexing and arrays start at index 1 +---@return integer 0 +function model.setCurve(curve, params) end + +--- Set Custom Function parameters +--- @since 2.0.0 +---@param function integer custom function number (use 0 for CF1) +---@param value table custom function parameters, see model.getCustomFunction() for table format +function model.setCustomFunction(function, value) end + +--- Set Flight mode parameters +--- @since 2.3.10 +---@param index integer flight mode number (use 0 for FM0) +---@param params unknown see model.getFlightMode return format for table format. +function model.setFlightMode(index, params) end + +--- Sets current global variable value. See also model.getGlobalVariable() +--- @since unknown +---@param index integer zero based global variable index, use 0 for GV1, 8 for GV9 +---@param flight_mode integer Flight mode number (0 = FM0, 8 = FM8) +---@param value unknown new value for global variable. Permitted range is from -1024 to 1024. +function model.setGlobalVariable(index, flight_mode, value) end + +--- Sets details about a Global Variable, but not values +--- @since 2.11.0 +---@param index integer zero based global variable index, use 0 for GV1, 8 for GV9 +---@param params table see model.getGlobalVariableDetails(index) return format for table format +---@return unknown none +function model.setGlobalVariableDetails(index, params) end + +--- Set the current Model information +--- @since 2.0.6 +---@param value unknown model information data, see model.getInfo() +function model.setInfo(value) end + +--- Set Logical Switch parameters +--- @since 2.0.0 +---@param switch integer logical switch number (use 0 for LS1) +---@param value table see model.getLogicalSwitch() for table format +function model.setLogicalSwitch(switch, value) end + +--- Set RF module parameters +--- @since 2.2.0 +---@param index integer module index (0 for internal, 1 for external) +---@param value unknown module parameters, see model.getModule() +function model.setModule(index, value) end + +--- Set servo parameters +--- @since 2.0.0 +---@param index integer channel number (use 0 for CH1) +---@param value table servo parameters, see model.getOutput() for table format +function model.setOutput(index, value) end + +--- Set heli swash parameters +--- @since 2.8.0 +---@param params table swash ring parameters, see model.getSwashRing() for table format +function model.setSwashRing(params) end + +--- Set model timer parameters +--- @since 2.0.0 +---@param timer integer timer index (0 for Timer 1) +---@param value unknown timer parameters, see model.getTimer() +function model.setTimer(timer, value) end diff --git a/website/md-docs/assets/luals/runtime.d.lua b/website/md-docs/assets/luals/runtime.d.lua new file mode 100644 index 000000000..4020f70e1 --- /dev/null +++ b/website/md-docs/assets/luals/runtime.d.lua @@ -0,0 +1,514 @@ +---@meta + +-- GENERATED FILE — do not hand-edit. +-- Regenerated by `tools/docs_pipeline.py build` (see docs-system/README.md). +-- To fix API facts: edit the upstream EdgeTX /*luadoc*/ comment, then +-- re-extract and rebuild. To add narrative content: edit +-- docs-system/overlays/.md, then rebuild. + +--- LCD line pattern selector such as SOLID or DOTTED. +---@alias pen_type integer +--- Text rendering flags used by legacy LCD number APIs. +---@alias text_flags integer +--- Packed 16-bit RGB color value for color LCD APIs. +---@alias lcd_color_RGB565 integer +--- Font size selector such as XXLSIZE, DBLSIZE, MIDSIZE, or SMLSIZE. +---@alias lcd_font_size integer +--- Bitmask of LCD text rendering flags such as INVERS, BLINK, and SHADOWED. +---@alias lcd_text_flags integer +--- Combined LCD text formatting bitmask covering font size and text flags. +---@alias lcd_text_format integer +--- Signed EdgeTX source value in the normalized range from -1024 to 1024. +---@alias source_range_1024 integer +--- Global timer selector such as all, total, session, throttle, or throttlepct. +---@alias timer_type string +--- Telemetry unit identifier from the EdgeTX unit list. +---@alias unit_type integer +--- Telemetry precision selector controlling decimal places. +---@alias prec_type integer + +--- Returns gray value which can be used in LCD functions +--- @since 2.0.13 +---@return integer +function GREY() end + +--- This functions allows for sending SPORT / ACCESS telemetry data toward the receiver, +and more generally, to anything connected SPORT bus on the receiver or transmitter. +--- @since 2.3 +---@param module integer module index (0 = internal, 1 = external) +---@param rxuid integer receiver index +---@param sensorid unknown physical sensor ID +---@param frameid unknown frame ID +---@param dataid unknown data ID +---@param value unknown value +---@return boolean +function accessTelemetryPush(module, rxuid, sensorid, frameid, dataid, value) end + +--- Apply RGB led colors previously defined by setRGBLedColor +--- @since 2.10 +function applyRGBLedColors() end + +--- Change the working directory +--- @since 2.3.0 +---@param directory string New working directory +function chdir(directory) end + +--- Pops a received Crossfire Telemetry packet from the queue. +--- @since 2.2.0 +---@return nil +---@return integer command +---@return table packet +function crossfireTelemetryPop() end + +--- This functions allows for sending telemetry data toward the TBS Crossfire link. +--- @since 2.2.0 +---@param command unknown command +---@param data table table of data bytes +---@return boolean +---@return nil +function crossfireTelemetryPush(command, data) end + +--- Get channel assigned to stick. See Default Channel Order in General Settings +--- @since 2.0.0 +---@param stick integer stick number (from 0 to 3) +---@return integer +---@return nil +function defaultChannel(stick) end + +--- Get stick that is assigned to a channel. See Default Channel Order in General Settings. +--- @since 2.0.0 +---@param channel integer channel number (0 means CH1) +---@return integer +function defaultStick(channel) end + +--- Returns FRESULT (e.g. 0=OK, 4=File not found, 5=Path not found, 6=Path invalid) +--- @since 2.9.0 +function del() end + +--- Return an iterator listing all the files and directories name in a directory +--- @since 2.5.0 +---@param directory string Working directory +function dir(directory) end + +--- flushes audio queue +--- @since unknown +function flushAudio() end + +--- Checks the existence of file or directory. + If not exist, return nil. + If exist, return the object information. +--- @since 2.5.0 +---@param path string path to the object +---@return table +function fstat(path) end + +--- Get available memory remaining in the Heap for Lua. +--- @since unknown +---@return integer usage +function getAvailableMemory() end + +--- Return current system date and time that is kept by the RTC unit +--- @since unknown +---@return table +function getDateTime() end + +--- Return detailed information about field (source) +--- @since 2.0.8 +---@param source string can be an index (number) (which was obtained by getFieldInfo or getSourceIndex) or a name (string) of the source. +---@return table +---@return nil +function getFieldInfo(source) end + +--- Return flight mode data. +--- @since 2.1.7 +---@param mode integer flight mode number to return (0 - 8). If mode parameter is not specified (or contains invalid value), then the current flight mode data is returned. +---@return integer current_flight_mode_number_0_8 +---@return string current_flight_mode_name +function getFlightMode(mode) end + +--- Returns (some of) the general radio settings +--- @since 2.0.6 +---@return table +function getGeneralSettings() end + +--- Returns radio timers +--- @since unknown +---@return table +function getGlobalTimer() end + +--- +--- @since 2.6 +---@param id integer identifying the logical switch (zero for LS1 etc.). +---@return true/false value +function getLogicalSwitchValue(id) end + +--- +--- @since 2.8.0 +---@param outputindex integer identifying the output channel number 0 for CH1, up to MAX_OUTPUT_CHANNELS - 1. +---@return integer +function getOutputValue(outputindex) end + +--- Return the RAS value or nil if no valid hardware found +--- @since 2.2.0 +---@return integer +function getRAS() end + +--- Get RSSI value as well as low and critical RSSI alarm levels (in dB) +--- @since 2.2.0 +---@return unknown rssi +---@return unknown alarm_low +---@return unknown alarm_crit +function getRSSI() end + +--- Return rotary encoder mode +--- @since 2.8.0 +---@return integer +function getRotEncMode() end + +--- Return rotary encoder current speed +--- @since 2.3.10 +---@return integer +function getRotEncSpeed() end + +--- Return current RTC system date as unix timstamp (in seconds since 1. Jan 1970) +--- @since unknown +---@return integer +function getRtcTime() end + +--- +--- @since 2.6 +---@param id integer between 1 and 16 identifying the shared memory variable. +---@return integer value +function getShmVar(id) end + +--- +--- @since 2.6 +---@param sourcename string naming a value source as it is shown on radio menus where you can select it. Notice that many names have special characters in them. +---@return integer sourceindex +function getSourceIndex(sourcename) end + +--- +--- @since 2.6 +---@param sourceindex integer identifying a value source as returned by getSourceIndex(sourceName) or the id field in the table returned by getFieldInfo. +---@return string sourcename +function getSourceName(sourceindex) end + +--- Returns the value of a source. Superseeds getValue. +--- @since 2.0.0 +---@param source string can be an index (number) (which was obtained by getFieldInfo or getSourceIndex) or a name (string) of the source. +---@return integer +---@return unknown iscurrent +---@return unknown isfresh +function getSourceValue(source) end + +--- +--- @since 3.0 +---@return integer +function getStickMode() end + +--- +--- @since 2.6 +---@param positionname string naming a switch position as it is shown on radio menus where you can select a switch. Notice that many names have special characters in them like arrow up/down etc. +---@return integer value +function getSwitchIndex(positionname) end + +--- +--- @since 2.12 +---@param sourceindex integer identifying a value source as returned by getSourceIndex(sourceName) or the id field in the table returned by getFieldInfo. +---@return table +function getSwitchInfo(sourceindex) end + +--- +--- @since 2.6 +---@param switchindex integer identifying a switch as returned by getSwitchIndex(positionName) or fields in the table returned by model.getLogicalSwitch(switch) identifying switches. +---@return string value +function getSwitchName(switchindex) end + +--- +--- @since 2.6 +---@param switchindex integer identifying a switch as returned by getSwitchIndex(positionName) or fields in the table returned by model.getLogicalSwitch(switch) identifying switches. +---@return integer value +function getSwitchValue(switchindex) end + +--- Return the time since the radio was started in multiple of 10ms +--- @since 2.0.0 +---@return integer +function getTime() end + +--- +--- @since 2.9.0 +---@return integer +function getTrainerStatus() end + +--- Return the internal GPS position or nil if no valid hardware found +--- @since 2.2.2 +---@return table +function getTxGPS() end + +--- Get percent of already used Lua instructions in current script execution cycle. +--- @since 2.2.1 +---@return integer usage +function getUsage() end + +--- Returns the value of a source. +--- @since 2.0.0 +---@param source string can be an index (number) (which was obtained by getFieldInfo or getSourceIndex) or a name (string) of the source. +---@return integer +---@return table +---@return table +---@return table +function getValue(source) end + +--- Return OpenTX version +--- @since 2.0.0 +---@return string +---@return string opentx_version_ie_2 +---@return string radio_type_x12s_x10_x9e_x9d_x9d_or_x7 +---@return integer major_version_ie_2_if_version_2 +---@return integer minor_version_ie_1_if_version_2 +---@return integer revision_number_ie_5_if_version_2 +---@return string os_name_i +function getVersion() end + +--- Pops a received Ghost Telemetry packet from the queue. +--- @since 2.7.0 +---@return nil +---@return integer type +---@return table packet +function ghostTelemetryPop() end + +--- This functions allows for sending telemetry data toward the Ghost link. +--- @since 2.7.0 +---@param command unknown command +---@param data table table of data bytes +---@return boolean +---@return nil +function ghostTelemetryPush(command, data) end + +--- Stops key state machine. See [Key Events](../key_events.md) for the detailed description. +--- @since 2.0.0 +---@param key integer key to be killed, can also include event type (only the key part is used) +function killEvents(key) end + +--- Load a Lua script file. This is similar to Lua's own [loadfile()](https://www.lua.org/manual/5.2/manual.html#pdf-loadfile) +API method, but it uses OpenTx's optional pre-compilation feature to save memory and time during load. +--- @since 2.2.0 +---@param file string Full path and file name of script. The file extension is optional and ignored (see mode param to control which extension will be used). However, if an extension is specified, it should be ".lua" (or ".luac"), otherwise it is treated as part of the file name and the .lua/.luac will be appended to that. +---@param mode? string (optional) Controls whether to force loading the text (.lua) or pre-compiled binary (.luac) version of the script. By default ETX will load the newest version and compile a new binary if necessary (overwriting any existing .luac version of the same script, and stripping some debug info like line numbers). You can use mode to control the loading behavior more specifically. Possible values are: * b only binary. * t only text. * T (default on simulator) prefer text but load binary if that is the only version available. * bt (default on radio) either binary or text, whichever is newer (binary preferred when timestamps are equal). * Add x to avoid automatic compilation of source file to .luac version. Eg: "tx", "bx", or "btx". * Add c to force compilation of source file to .luac version (even if existing version is newer than source file). Eg: "tc" or "btc" (forces "t", overrides "x"). * Add d to keep extra debug info in the compiled binary. Eg: "td", "btd", or "tcd" (no effect with just "b" or with "x"). +---@param env? integer See documentation for Lua function loadfile(). +---@return function|nil +---@return string|nil +function loadScript(file, mode, env) end + +--- Create a directory +--- @since 2.11.0 +---@param directory string Directory to create +function mkdir(directory) end + +--- This function reads/writes the Multi protocol buffer to interact with a protocol. +--- @since 2.3.2 +---@param address unknown to read/write in the buffer @param (optional): value to write in the buffer +---@return integer +function multiBuffer(address) end + +--- Play a time value (text to speech) +--- @since 2.1.0 +---@param duration integer number of seconds to play. Only integral part is used. +---@param hourformat? integer * 0 or not present play format: minutes and seconds. * != 0 play format: hours, minutes and seconds. * @param volume (number): - (1..5) override radio settings Wav volume for the duration of file - omitting the parameter uses radio settings Wav volume +---@return unknown none +function playDuration(duration, hourformat) end + +--- Play a file from the SD card +--- @since 2.0.0 +---@param filename string full path to wav file (i.e. "/SOUNDS/en/system/tada.wav") Introduced in 2.1.0: If you use a relative path, the current language is appended to the path (example: for English language: /SOUNDS/en is appended) +---@param volume? integer - (1..5) override radio settings Wav volume for the duration of file - omitting the parameter uses radio settings Wav volume +---@return unknown none +function playFile(filename, volume) end + +--- Generate haptic feedback +--- @since 2.2.0 +---@param duration integer length of the haptic feedback in milliseconds +---@param pause integer length of the silence after haptic feedback in milliseconds +---@param flags? integer * 0 or not present play with normal priority * PLAY_NOW play immediately +function playHaptic(duration, pause, flags) end + +--- Play a numerical value (text to speech) +--- @since 2.0.0 +---@param value integer number to play. Value is interpreted as integer. +---@param unit integer unit identifier, see the Units reference for the full list +---@param attributes? integer possible values: * 0 or not present plays integral part of the number (for a number 123 it plays 123) * PREC1 plays a number with one decimal place (for a number 123 it plays 12.3) * PREC2 plays a number with two decimal places (for a number 123 it plays 1.23) +---@param volume? integer - (1..5) override radio settings Wav volume for the duration of file - omitting the parameter uses radio settings Wav volume +---@return unknown none +function playNumber(value, unit, attributes, volume) end + +--- Play a tone +--- @since 2.1.0 +---@param frequency integer tone frequency in Hz (from 150 to 15000) +---@param duration integer length of the tone in milliseconds +---@param pause integer length of the silence after the tone in milliseconds +---@param flags? integer * 0 or not present play with normal priority. * PLAY_BACKGROUND play in background (built in vario function uses this context) * PLAY_NOW play immediately +---@param freqincr? integer positive number increases the tone pitch (frequency with time), negative number decreases it. The frequency changes every 10 milliseconds, the change is freqIncr * 10Hz. The valid range is from -127 to 127. +---@param volume? integer - (1..5) override radio settings Beep volume for the duration of file - omitting the parameter uses radio settings Beep volume +---@return unknown none +function playTone(frequency, duration, pause, flags, freqincr, volume) end + +--- Raises a pop-up on screen that asks for confirmation +--- @since 2.2.0 +---@param title string title to display +---@param message string text to display +---@param event integer the event variable that is passed in from the Run function (key pressed) +---@return unknown cancel +function popupConfirmation(title, message, event) end + +--- Raises a pop-up on screen that allows uses input +--- @since 2.0.0 +---@param title string text to display +---@param event integer the event variable that is passed in from the Run function (key pressed) +---@param input integer value that can be adjusted by the +/- keys +---@param min integer min value that input can reach (by pressing the - key) +---@param max integer max value that input can reach +---@return integer +---@return unknown ok +---@return unknown cancel +function popupInput(title, event, input, min, max) end + +--- Raises a pop-up on screen that shows a warning +--- @since 2.2.0 +---@param title string text to display +---@param event integer the event variable that is passed in from the Run function (key pressed) +---@return unknown cancel +function popupWarning(title, event) end + +--- Rename a file or directory + If the file or directory is being moved to a new parent directory, then the new parent + directory must already exist. +--- @since 2.11.0 +---@param from_path string Current path to rename @param to_path (string) Path to rename to +function rename(from_path) end + +--- Resets the radio global timer to 0. +--- @since 2.2.2 +---@param type? unknown : if set to 'all', throttle ,throttle percent and session timers are reset too if set to 'session', radio session timer is reset too if set to 'ttimer', radio throttle timer is reset too if set to 'tptimer', radio throttle percent timer is reset too +function resetGlobalTimer(type) end + +--- Takes a screenshot, which is saved to the SCREENSHOTS folder on the radio SD card. +--- @since 2.11 +---@return unknown none +function screenshot() end + +--- +--- @since 2.9.0 +---@param port_nr valid values are only 0 and 1 on radios that have SWSERIALPOWER defined 0 - first serial port, e.g. on TX16S AUX1 1 - second serial port, e.g. on TX16S AUX2 +---@return true value +---@return nil +function serialGetPower(port_nr) end + +--- +--- @since 2.3.8 +---@param num? integer maximum number of bytes to read. If non-zero, serialRead will read up to num characters from the buffer. If 0 or left out, serialRead will read up to and including the first newline character or the end of the buffer. Note that the returned string may not end in a newline if this character is not present in the buffer. +---@return unknown str +function serialRead(num) end + +--- +--- @since 2.9.0 +---@param port_nr valid values are only 0 and 1 on radios that have SWSERIALPOWER defined 0 - first serial port, e.g. on TX16S AUX1 1 - second serial port, e.g. on TX16S AUX2 +---@param value 0 - disable power 1 - enable power +---@return true/false success +function serialSetPower(port_nr, value) end + +--- +--- @since 2.3.10 +---@param str string String to be written to the serial port. +function serialWrite(str) end + +--- Overrides the LED color for a custom function switch +--- @since 3.0.0 +---@param id string identifying a custom function switch name +---@param rvalue integer value of red channel +---@param bvalue integer value of green channel +---@param cvalue integer value of blue channel +function setCFSLedColor(id, rvalue, bvalue, cvalue) end + +--- +--- @since 3.0 +---@param offset integer offset in angular degree. -1 to offset to current X position +---@param range integer range in angular degree. 180° max.90 means min/max value will be reached at 45° from offset position +function setIMU_X(offset, range) end + +--- +--- @since 3.0 +---@param offset integer offset in angular degree. -1 to offset to current Y position +---@param range integer range in angular degree, 180° max. 90 means min/max value will be reached at 45° from offset position +function setIMU_Y(offset, range) end + +--- +--- @since 2.10 +---@param id integer identifying a led in the led chain +---@param rvalue integer value of red channel +---@param bvalue integer value of green channel +---@param cvalue integer value of blue channel +function setRGBLedColor(id, rvalue, bvalue, cvalue) end + +--- +--- @since 2.3.12 +---@param baudrate unknown Desired baurate +function setSerialBaudrate(baudrate) end + +--- +--- @since 2.6 +---@param id integer between 1 and 16 identifying the shared memory variable. +---@param value integer . The value of the shared memory variable. +function setShmVar(id, value) end + +--- +--- @since 2.6 +---@param id integer identifying the sticky logical switch (zero for LS1 etc.). +---@param value integer . The new value of the sticky logical switch. +---@return true/false bufferfull +function setStickySwitch(id, value) end + +--- +--- @since 2.2.0 +---@param id unknown Id of the sensor, valid range is from 0 to 0xFFFF +---@param subid unknown subID of the sensor, usually 0, valid range is from 0 to 7 +---@param instance unknown instance of the sensor (SensorID), valid range is from 0 to 0xFF +---@param value unknown fed to the sensor +---@param unit? unknown unit of the sensor, see the Units reference for the full list +---@param precision? unknown the precision of the sensor * 0 or not present no decimal precision. * != 0 value is divided by 10^precision, e.g. value=1000, prec=2 => 10.00. +---@param name? string Name of the sensor if it does not yet exist (4 chars). * not present Name defaults to the Id. * present Sensor takes name of the argument. Argument must have name surrounded by quotes: e.g., "Name" +---@return unknown true +function setTelemetryValue(id, subid, instance, value, unit, precision, name) end + +--- +--- @since 2.6 +---@param first? integer first source index. If nil or omitted, the first available source is used. +---@param last? integer last soure index. If nil or omitted, the last available source is used. +function sources(first, last) end + +--- Pops a received SPORT packet from the queue. Please note that only packets using a data ID within 0x5000 to 0x50FF +(frame ID == 0x10), as well as packets with a frame ID equal 0x32 (regardless of the data ID) will be passed to +the LUA telemetry receive queue. +--- @since 2.2.0 +---@return nil +---@return integer sensor_id +---@return integer frame_id +---@return integer data_id +---@return integer value +function sportTelemetryPop() end + +--- This functions allows for sending SPORT telemetry data toward the receiver, +and more generally, to anything connected SPORT bus on the receiver or transmitter. +--- @since 2.2.0 +---@param sensorid unknown physical sensor ID +---@param frameid unknown frame ID +---@param dataid unknown data ID +---@param value unknown value +---@return boolean +---@return nil +function sportTelemetryPush(sensorid, frameid, dataid, value) end + +--- +--- @since 2.6 +---@param first? integer first switch index. If nil or omitted, the first available switch is used. +---@param last? integer last switch index. If nil or omitted, the last available switch is used. +function switches(first, last) end diff --git a/website/md-docs/assets/radios/betafpv-literadio-3-pro-500.png b/website/md-docs/assets/radios/betafpv-literadio-3-pro-500.png new file mode 100644 index 000000000..1ccf8a21b Binary files /dev/null and b/website/md-docs/assets/radios/betafpv-literadio-3-pro-500.png differ diff --git a/website/md-docs/assets/radios/fatfish-f16-500.png b/website/md-docs/assets/radios/fatfish-f16-500.png new file mode 100644 index 000000000..0c469ba97 Binary files /dev/null and b/website/md-docs/assets/radios/fatfish-f16-500.png differ diff --git a/website/md-docs/assets/radios/flysky-el18-500.png b/website/md-docs/assets/radios/flysky-el18-500.png new file mode 100644 index 000000000..8df8f1ffe Binary files /dev/null and b/website/md-docs/assets/radios/flysky-el18-500.png differ diff --git a/website/md-docs/assets/radios/flysky-nb4-500.png b/website/md-docs/assets/radios/flysky-nb4-500.png new file mode 100644 index 000000000..e31c7d174 Binary files /dev/null and b/website/md-docs/assets/radios/flysky-nb4-500.png differ diff --git a/website/md-docs/assets/radios/flysky-nv14-500.png b/website/md-docs/assets/radios/flysky-nv14-500.png new file mode 100644 index 000000000..1a0055799 Binary files /dev/null and b/website/md-docs/assets/radios/flysky-nv14-500.png differ diff --git a/website/md-docs/assets/radios/flysky-pa01-500.png b/website/md-docs/assets/radios/flysky-pa01-500.png new file mode 100644 index 000000000..8ddbe074e Binary files /dev/null and b/website/md-docs/assets/radios/flysky-pa01-500.png differ diff --git a/website/md-docs/assets/radios/flysky-pl18-500.png b/website/md-docs/assets/radios/flysky-pl18-500.png new file mode 100644 index 000000000..905beb4f8 Binary files /dev/null and b/website/md-docs/assets/radios/flysky-pl18-500.png differ diff --git a/website/md-docs/assets/radios/flysky-pl18u-500.png b/website/md-docs/assets/radios/flysky-pl18u-500.png new file mode 100644 index 000000000..02389bbf4 Binary files /dev/null and b/website/md-docs/assets/radios/flysky-pl18u-500.png differ diff --git a/website/md-docs/assets/radios/flysky-st16-500.png b/website/md-docs/assets/radios/flysky-st16-500.png new file mode 100644 index 000000000..6d30321b9 Binary files /dev/null and b/website/md-docs/assets/radios/flysky-st16-500.png differ diff --git a/website/md-docs/assets/radios/frsky-qx7-500.png b/website/md-docs/assets/radios/frsky-qx7-500.png new file mode 100644 index 000000000..d77e04d98 Binary files /dev/null and b/website/md-docs/assets/radios/frsky-qx7-500.png differ diff --git a/website/md-docs/assets/radios/frsky-x10-500.png b/website/md-docs/assets/radios/frsky-x10-500.png new file mode 100644 index 000000000..51775c634 Binary files /dev/null and b/website/md-docs/assets/radios/frsky-x10-500.png differ diff --git a/website/md-docs/assets/radios/frsky-x12s-500.png b/website/md-docs/assets/radios/frsky-x12s-500.png new file mode 100644 index 000000000..95830a1c4 Binary files /dev/null and b/website/md-docs/assets/radios/frsky-x12s-500.png differ diff --git a/website/md-docs/assets/radios/frsky-x9-lite-500.png b/website/md-docs/assets/radios/frsky-x9-lite-500.png new file mode 100644 index 000000000..450b3f59f Binary files /dev/null and b/website/md-docs/assets/radios/frsky-x9-lite-500.png differ diff --git a/website/md-docs/assets/radios/frsky-x9d-2019-500.png b/website/md-docs/assets/radios/frsky-x9d-2019-500.png new file mode 100644 index 000000000..f04ac7d43 Binary files /dev/null and b/website/md-docs/assets/radios/frsky-x9d-2019-500.png differ diff --git a/website/md-docs/assets/radios/frsky-x9d-500.png b/website/md-docs/assets/radios/frsky-x9d-500.png new file mode 100644 index 000000000..d3dbdf2e1 Binary files /dev/null and b/website/md-docs/assets/radios/frsky-x9d-500.png differ diff --git a/website/md-docs/assets/radios/frsky-x9e-500.png b/website/md-docs/assets/radios/frsky-x9e-500.png new file mode 100644 index 000000000..34fceec79 Binary files /dev/null and b/website/md-docs/assets/radios/frsky-x9e-500.png differ diff --git a/website/md-docs/assets/radios/frsky-xlite-pro-500.png b/website/md-docs/assets/radios/frsky-xlite-pro-500.png new file mode 100644 index 000000000..ee9f8f729 Binary files /dev/null and b/website/md-docs/assets/radios/frsky-xlite-pro-500.png differ diff --git a/website/md-docs/assets/radios/hrs-v12-500.png b/website/md-docs/assets/radios/hrs-v12-500.png new file mode 100644 index 000000000..38bfeaf0e Binary files /dev/null and b/website/md-docs/assets/radios/hrs-v12-500.png differ diff --git a/website/md-docs/assets/radios/hrs-v14-500.png b/website/md-docs/assets/radios/hrs-v14-500.png new file mode 100644 index 000000000..9825353ec Binary files /dev/null and b/website/md-docs/assets/radios/hrs-v14-500.png differ diff --git a/website/md-docs/assets/radios/hrs-v16-500.png b/website/md-docs/assets/radios/hrs-v16-500.png new file mode 100644 index 000000000..ee9f75246 Binary files /dev/null and b/website/md-docs/assets/radios/hrs-v16-500.png differ diff --git a/website/md-docs/assets/radios/iflight-commando-14-500.png b/website/md-docs/assets/radios/iflight-commando-14-500.png new file mode 100644 index 000000000..cb2e8e92b Binary files /dev/null and b/website/md-docs/assets/radios/iflight-commando-14-500.png differ diff --git a/website/md-docs/assets/radios/iflight-commando-8-500.png b/website/md-docs/assets/radios/iflight-commando-8-500.png new file mode 100644 index 000000000..a94109fc7 Binary files /dev/null and b/website/md-docs/assets/radios/iflight-commando-8-500.png differ diff --git a/website/md-docs/assets/radios/jumper-bumblebee-500.png b/website/md-docs/assets/radios/jumper-bumblebee-500.png new file mode 100644 index 000000000..5248e450b Binary files /dev/null and b/website/md-docs/assets/radios/jumper-bumblebee-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t-lite-500.png b/website/md-docs/assets/radios/jumper-t-lite-500.png new file mode 100644 index 000000000..75d667706 Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t-lite-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t12-500.png b/website/md-docs/assets/radios/jumper-t12-500.png new file mode 100644 index 000000000..1b6865365 Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t12-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t14-500.png b/website/md-docs/assets/radios/jumper-t14-500.png new file mode 100644 index 000000000..daecb7e10 Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t14-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t15-500.png b/website/md-docs/assets/radios/jumper-t15-500.png new file mode 100644 index 000000000..bced67014 Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t15-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t15-pro-500.png b/website/md-docs/assets/radios/jumper-t15-pro-500.png new file mode 100644 index 000000000..d50b6f6ab Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t15-pro-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t16-500.png b/website/md-docs/assets/radios/jumper-t16-500.png new file mode 100644 index 000000000..d6bf9633d Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t16-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t18-500.png b/website/md-docs/assets/radios/jumper-t18-500.png new file mode 100644 index 000000000..e5ae77d1a Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t18-500.png differ diff --git a/website/md-docs/assets/radios/jumper-t20-500.png b/website/md-docs/assets/radios/jumper-t20-500.png new file mode 100644 index 000000000..7747e5070 Binary files /dev/null and b/website/md-docs/assets/radios/jumper-t20-500.png differ diff --git a/website/md-docs/assets/radios/jumper-tpro-500.png b/website/md-docs/assets/radios/jumper-tpro-500.png new file mode 100644 index 000000000..99e217286 Binary files /dev/null and b/website/md-docs/assets/radios/jumper-tpro-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-boxer-500.png b/website/md-docs/assets/radios/radiomaster-boxer-500.png new file mode 100644 index 000000000..cc82c1a2b Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-boxer-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-gx12-500.png b/website/md-docs/assets/radios/radiomaster-gx12-500.png new file mode 100644 index 000000000..1c05bd228 Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-gx12-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-mt12-500.png b/website/md-docs/assets/radios/radiomaster-mt12-500.png new file mode 100644 index 000000000..c09cc6cbe Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-mt12-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-pocket-500.png b/website/md-docs/assets/radios/radiomaster-pocket-500.png new file mode 100644 index 000000000..f72c17ed4 Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-pocket-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-t8pro-500.png b/website/md-docs/assets/radios/radiomaster-t8pro-500.png new file mode 100644 index 000000000..ff213c1b6 Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-t8pro-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-tx12-500.png b/website/md-docs/assets/radios/radiomaster-tx12-500.png new file mode 100644 index 000000000..7f696a386 Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-tx12-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-tx15-500.png b/website/md-docs/assets/radios/radiomaster-tx15-500.png new file mode 100644 index 000000000..45444c663 Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-tx15-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-tx16s-max-500.png b/website/md-docs/assets/radios/radiomaster-tx16s-max-500.png new file mode 100644 index 000000000..e5a6008e1 Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-tx16s-max-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-tx16s-mk3-max-500.png b/website/md-docs/assets/radios/radiomaster-tx16s-mk3-max-500.png new file mode 100644 index 000000000..050c970c3 Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-tx16s-mk3-max-500.png differ diff --git a/website/md-docs/assets/radios/radiomaster-zorro-500.png b/website/md-docs/assets/radios/radiomaster-zorro-500.png new file mode 100644 index 000000000..08f3a8d6c Binary files /dev/null and b/website/md-docs/assets/radios/radiomaster-zorro-500.png differ diff --git a/website/md-docs/index.md b/website/md-docs/index.md new file mode 100644 index 000000000..60aab63f9 --- /dev/null +++ b/website/md-docs/index.md @@ -0,0 +1,36 @@ +# EdgeTX LUA Reference Guide + +This guide covers the development of user-written scripts for R/C transmitters running the EdgeTX operating system with Lua support. Readers should be familiar with EdgeTX, the EdgeTX Companion, and know how to transfer files the SD card in the transmitter. + +!!! info + The latest version of this guide will always be available [here](https://luadoc.edgetx.org). At the top of the left sidebar there is a version option if you are running an older version of EdgeTX and need the docs for that specific version. + + +## Sections + +| Chapter | Content | +| ------------------------------------------- | ----------------------------------------------------------------------------- | +| [Overview](overview/index.md) | Covers various topics of LUA implementation in EdgeTX operating system system | +| [LUA API Reference](api-reference/index.md) | Reference of all constants and functions available in EdgeTX LUA API | +| [LUA API Programming](programming/index.md) | EdgeTX LUA programming guide that covers coding techniques with examples. | +| [Appendixes](appendix/index.md) | | + +## EdgeTX LUA development support + +Quickest way to get support from seasoned EdgeTX LUA developers is to join our Discord server and ask on dedicated #lua channel + +[Join the chat on Discord](https://discord.gg/DrHkAn28sq) + +## LUA Reference guide collaboration + +Please feel free to make suggestions or corrections to the documentation. + +* Preferred method of editing is to use [GitBook](https://www.gitbook.com), as it uses WYSWIG editor allowing two-stage publication. If you want to change or add whole page or become collaborator _\_. + +## Project support + +The EdgeTX team has no intention of making a profit from their work - EdgeTX is free and open source and will remain free and open source. However, the project is more expensive to maintain than most open source projects. This in mainly because there is a never ending flood of hardware to integrate and maintain code for. Hardware that costs. In addition, in order to develop for this hardware, certain specalised test and measurement equipment is also required. + +In order to support this, EdgeTX has chosen to use OpenCollective to allow for donations from the community, as well as funding from manufacturers who choose to partner with and sponsor the project. This also allows for transparent accounting of what the funds are spent on. + +Please visit [our OpenCollective page](https://opencollective.com/edgetx) if you would like to financially help support the project! diff --git a/website/md-docs/javascripts/legacy-version-banner.js b/website/md-docs/javascripts/legacy-version-banner.js new file mode 100644 index 000000000..aa99e476f --- /dev/null +++ b/website/md-docs/javascripts/legacy-version-banner.js @@ -0,0 +1,117 @@ +// Shows a notice above the page content when the version being viewed is +// the development build ("dev") or anything other than the one mike aliases +// as "latest". The version is worked out at runtime from the URL and mike's +// versions.json rather than from per-version config, so every version can +// ship the same mkdocs.yml (main is a straight copy of the release branch). +// Material doesn't expose `extra` in #__config, so config can't drive this. + +const DEV_VERSION = "dev"; +const LATEST_ALIAS = "latest"; + +function getSiteConfig() { + const configNode = document.querySelector("#__config"); + if (!configNode) return null; + + try { + return JSON.parse(configNode.textContent || "{}"); + } catch { + return null; + } +} + +function getVersionRoot(config) { + // config.base is the relative path from this page to the version root, + // e.g. "../.." -- resolving it against the page URL gives //. + const base = config?.base; + if (typeof base !== "string") return null; + return new URL(base.endsWith("/") ? base : `${base}/`, window.location.href); +} + +async function loadVersions(siteRoot) { + try { + const response = await fetch(new URL("versions.json", siteRoot)); + if (!response.ok) return null; + const versions = await response.json(); + return Array.isArray(versions) ? versions : null; + } catch { + return null; + } +} + +function buildBanner({ label, message, linkText, linkHref }) { + const banner = document.createElement("aside"); + banner.className = "legacy-version-banner"; + banner.setAttribute("role", "note"); + banner.setAttribute("aria-label", label); + + const labelNode = document.createElement("p"); + labelNode.className = "legacy-version-banner__label"; + labelNode.textContent = label; + + const messageNode = document.createElement("p"); + messageNode.className = "legacy-version-banner__message"; + messageNode.textContent = `${message} `; + + if (linkHref) { + const link = document.createElement("a"); + link.href = linkHref; + link.textContent = linkText; + messageNode.appendChild(link); + } + + banner.appendChild(labelNode); + banner.appendChild(messageNode); + return banner; +} + +async function mountVersionBanner() { + const container = document.querySelector(".md-content__inner"); + if (!container || container.querySelector(".legacy-version-banner")) return; + + const versionRoot = getVersionRoot(getSiteConfig()); + if (!versionRoot) return; + + // Not served through mike (e.g. plain `mkdocs serve`): no versions.json + // one level up, so no banner. + const siteRoot = new URL("../", versionRoot); + const versions = await loadVersions(siteRoot); + if (!versions) return; + + const segment = decodeURIComponent(versionRoot.pathname.split("/").filter(Boolean).pop() || ""); + const current = versions.find( + (entry) => entry.version === segment || (entry.aliases || []).includes(segment), + ); + if (!current) return; + + const latest = versions.find((entry) => (entry.aliases || []).includes(LATEST_ALIAS)); + const latestHref = latest ? new URL(`${LATEST_ALIAS}/`, siteRoot).href : null; + const latestTitle = latest?.title || latest?.version; + + let banner = null; + if (current.version === DEV_VERSION) { + banner = buildBanner({ + label: "Development version", + message: + "These docs track EdgeTX development and may describe features or changes that are not in a released version yet.", + linkText: latest ? `View the ${latestTitle} release docs.` : "", + linkHref: latestHref, + }); + } else if (latest && current.version !== latest.version) { + banner = buildBanner({ + label: "Legacy version", + message: `You are viewing the documentation for EdgeTX ${current.title || current.version}. It is kept for reference and may not include later corrections.`, + linkText: `Go to the latest version (${latestTitle}).`, + linkHref: latestHref, + }); + } + + if (banner && !container.querySelector(".legacy-version-banner")) { + container.insertBefore(banner, container.firstChild); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", mountVersionBanner, { once: true }); +} else { + mountVersionBanner(); +} diff --git a/website/md-docs/javascripts/mobile-nav-inline.js b/website/md-docs/javascripts/mobile-nav-inline.js new file mode 100644 index 000000000..f6135777f --- /dev/null +++ b/website/md-docs/javascripts/mobile-nav-inline.js @@ -0,0 +1,265 @@ +(function () { + const mobileMedia = window.matchMedia("(max-width: 76.234375em)"); + const rootClass = "mobile-desktop-nav-active"; + + function directChild(element, selector) { + const children = Array.from(element.children); + return children.find((child) => child.matches(selector)) || null; + } + + function directChildren(element, selector) { + return Array.from(element.children).filter((child) => child.matches(selector)); + } + + function textOf(element) { + return (element?.textContent || "").trim(); + } + + // With the navigation.indexes theme feature enabled, a section that has + // its own index page gets its toggle