From f25b5d03d4fdcbca3244776d5a164d87e8c29cc1 Mon Sep 17 00:00:00 2001 From: Murilo Polese Date: Mon, 15 Apr 2024 09:52:27 +0200 Subject: [PATCH 1/4] Update readme --- README.md | 38 +++++++----------- ui/arduino/README.md | 23 +++++++++++ .../Screenshot from 2024-04-15 09-47-03.png | Bin 0 -> 30826 bytes .../Screenshot from 2024-04-15 09-48-25.png | Bin 0 -> 36611 bytes 4 files changed, 38 insertions(+), 23 deletions(-) create mode 100644 ui/arduino/README.md create mode 100644 ui/arduino/documents/Screenshot from 2024-04-15 09-47-03.png create mode 100644 ui/arduino/documents/Screenshot from 2024-04-15 09-48-25.png diff --git a/README.md b/README.md index a4e436f..653bf05 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,31 @@ # Arduino Lab for MicroPython -Arduino Lab for MicroPython is a lightweight editor for MicroPython programs, supporting connection with a board, code upload, file transfer, interactive REPL shell. -This project is sponsored by Arduino, based on original work by Murilo Polese. This is an experimental pre-release software, please direct any questions only to Github issues. +Arduino Lab for MicroPython is a lightweight editor for MicroPython programs, supporting connection with a board, code upload, file transfer and interactive REPL shell. +This project is sponsored by Arduino, based on original work by [Murilo Polese](http://www.murilopolese.com). This is an experimental pre-release software, please direct any questions only to Github issues. ## Features - MicroPython's Read Eval Print Loop (REPL) - Enter paste mode - Enter raw repl - Software reset + - Tab to autocomplete - File system management (Disk and MicroPython File System) - Create - Rename + - Multiple file and folder selection - Remove - Upload - Download -- Text editor with Python syntax highlight -- Code execution controls +- Text editor + - Python syntax highlight and autocomplete + - Multiple tabs + - Rename tabs +- Code execution - Run what's on text editor - Stop (keyboard interrupt) - Soft reset -## Technical +## Technical overview Arduino Lab for MicroPython is an [Electron](https://www.electronjs.org/) app that has its main purpose to communicate over serial with a microprocessor running [MicroPython](https://micropython.org/). All Electron code is at `/index.js`. @@ -36,33 +41,21 @@ At the root of the repository you will find: - `/.github`: Github's workflow configuration. - `/build_resources`: Icons and other assets used during the build process. -- `/scripts`: Scripts executed during the build process. - `/ui`: Available user interfaces. - `/index.js`: Main Electron code. -- `/preload.js`: Creates Disk and Serial APIs on Electron's main process and exposes it to Electron's renderer process (context bridge). +- `/preload.js`: Creates Disk, Serial and Window APIs on Electron's main process and exposes it to Electron's renderer process (context bridge). -## Arduino UI +## User interface -Default UI is a [choo-choo](https://github.com/choojs/choo) app. It has pre-built dependencies so no build process is required for the interface. - -The dependencies and source code are included manually in the `/ui/arduino/index.html` file. - -The app is a standard [choo-choo](https://github.com/choojs/choo) app and it has: - -- `/ui/arduino/app.js`: A router deciding which view to load. -- `/ui/arduino/components`: HTML templates and components. -- `/ui/arduino/store.js`: A "store" that handles events emitted by the views, change the app state and orchestrate re-rendering. -- `/ui/arduino/libs`: Prebuilt dependencies. - -It can be useful to learn more about [Choo](https://github.com/choojs/choo) or the [Elm Architecture](https://guide.elm-lang.org/architecture/). +Read more at [`/ui/arduino/README.md`](./ui/arduino/README.md) ## Disk and Serial API In order for the UI code to be independent of Electron code, there is an API defined at `/preload.js` that describes all the allowed operations. -There are 2 main operation "channels": Serial communication and local Filesystem operations. Both channels offer methods that always return promises and are used mostly through [`async`/`await`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function). +There are 3 main operation "channels": Serial communication, local filesystem and window operations. These channels offer methods that should always return promises and are used mostly through [`async`/`await`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function). -While the serial communication is mediated by `/micropython.js`, the local filesystem operations are done through Electron's `ipcRenderer` calls. The handlers for these calls are defined at `/index.js` +While the serial communication is mediated by `/micropython.js`, the local filesystem and window operations are done through Electron's `ipcRenderer` calls. The handlers for these calls are defined at `/index.js` ## Running Arduino Lab for MicroPython from source code @@ -73,7 +66,6 @@ While the serial communication is mediated by `/micropython.js`, the local files Some changes on the Electron code will require reopening the app but all UI changes will only require refreshing the window (ctrl-r/cmd-r). - ## Trademarks "Python" and the Python Logo are trademarks of the Python Software Foundation. diff --git a/ui/arduino/README.md b/ui/arduino/README.md new file mode 100644 index 0000000..e6de2d8 --- /dev/null +++ b/ui/arduino/README.md @@ -0,0 +1,23 @@ +# Arduino Lab for MicroPython Editor + +![Arduino Lab for MicroPython Editor interface](./documents/Screenshot from 2024-04-15 09-48-25.png) +![Arduino Lab for MicroPython Editor interface](./documents/Screenshot from 2024-04-15 09-47-03.png) + +This UI is a [choo-choo](https://github.com/choojs/choo) app. It has pre-built dependencies so *no build process* is required for the interface. + +The dependencies and source code are included manually in the `/ui/arduino/index.html` file. *No installation process* is required for the UI. + +The is a standard [choo-choo](https://github.com/choojs/choo) app. It can be useful to learn more about [Choo](https://github.com/choojs/choo) or the [Elm Architecture](https://guide.elm-lang.org/architecture/). + +In this folder you will find: + +- `/ui/arduino/main.js`: A router deciding which view to load. +- `/ui/arduino/store.js`: A "store" that handles events emitted by the views, change the app state and orchestrate re-rendering. +- `/ui/arduino/libs`: Prebuilt dependencies. +- `/ui/arduino/views`: HTML views, components and elements. + - Views: Page size layouts + - Components: Independent sections that assemble the page layout + - Elements: Thin abstraction on top of HTML tags. +- `/ui/arduino/media`: Icons and image assets. +- `/ui/arduino/documents`: System model and layout. +- `/ui/arduino/helpers.py`: MicroPython functions that enable some of the UI features. diff --git a/ui/arduino/documents/Screenshot from 2024-04-15 09-47-03.png b/ui/arduino/documents/Screenshot from 2024-04-15 09-47-03.png new file mode 100644 index 0000000000000000000000000000000000000000..f018400f620e76de3ff02839a1578445552c37db GIT binary patch literal 30826 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 literal 0 HcmV?d00001 diff --git a/ui/arduino/documents/Screenshot from 2024-04-15 09-48-25.png b/ui/arduino/documents/Screenshot from 2024-04-15 09-48-25.png new file mode 100644 index 0000000000000000000000000000000000000000..be2a8c788ea11082918f1732bfc1d3e51daf4e27 GIT binary patch literal 36611 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 literal 0 HcmV?d00001 From a2a118de1d50f49243b2c20c855cbc7f2ec3bb26 Mon Sep 17 00:00:00 2001 From: Murilo Polese Date: Mon, 15 Apr 2024 09:52:35 +0200 Subject: [PATCH 2/4] Remove unused components --- ui/arduino/views/components/elements/message.js | 0 ui/arduino/views/components/elements/options.js | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 ui/arduino/views/components/elements/message.js delete mode 100644 ui/arduino/views/components/elements/options.js diff --git a/ui/arduino/views/components/elements/message.js b/ui/arduino/views/components/elements/message.js deleted file mode 100644 index e69de29..0000000 diff --git a/ui/arduino/views/components/elements/options.js b/ui/arduino/views/components/elements/options.js deleted file mode 100644 index e69de29..0000000 From f9ad4f50a70505f057c6100aa04b695da43d4f3c Mon Sep 17 00:00:00 2001 From: Murilo Polese Date: Mon, 15 Apr 2024 09:52:56 +0200 Subject: [PATCH 3/4] Update text line-height --- ui/arduino/main.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/arduino/main.css b/ui/arduino/main.css index defb54c..3272d3f 100644 --- a/ui/arduino/main.css +++ b/ui/arduino/main.css @@ -168,7 +168,7 @@ button.small .icon { color: #000; font-style: normal; font-weight: 400; - line-height: normal; + line-height: 1.1em; flex: 1 0 0; max-width: calc(100% - 46px); overflow: hidden; @@ -553,11 +553,11 @@ button.small .icon { font-style: normal; font-weight: 400; line-height: normal; - white-space: nowrap; width: 100%; overflow: hidden; text-overflow: ellipsis; + line-height: 1.1em; } .file-list .item .checkbox .icon.off, From c688247f2dd9cde680ae5cb3c1cf71d1b1c8dbec Mon Sep 17 00:00:00 2001 From: Murilo Polese Date: Mon, 15 Apr 2024 10:10:42 +0200 Subject: [PATCH 4/4] Add image to readme --- README.md | 6 ++++++ ui/arduino/README.md | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 653bf05..10ba3ee 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # Arduino Lab for MicroPython +

+ + + +

+ Arduino Lab for MicroPython is a lightweight editor for MicroPython programs, supporting connection with a board, code upload, file transfer and interactive REPL shell. This project is sponsored by Arduino, based on original work by [Murilo Polese](http://www.murilopolese.com). This is an experimental pre-release software, please direct any questions only to Github issues. diff --git a/ui/arduino/README.md b/ui/arduino/README.md index e6de2d8..5cd8c74 100644 --- a/ui/arduino/README.md +++ b/ui/arduino/README.md @@ -1,7 +1,12 @@ # Arduino Lab for MicroPython Editor -![Arduino Lab for MicroPython Editor interface](./documents/Screenshot from 2024-04-15 09-48-25.png) -![Arduino Lab for MicroPython Editor interface](./documents/Screenshot from 2024-04-15 09-47-03.png) +

+ + + + + +

This UI is a [choo-choo](https://github.com/choojs/choo) app. It has pre-built dependencies so *no build process* is required for the interface. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy

Alternative Proxy