diff --git a/docs/assets/images/pyeditor-stop.gif b/docs/assets/images/pyeditor-stop.gif
new file mode 100644
index 0000000..8c0f0b7
Binary files /dev/null and b/docs/assets/images/pyeditor-stop.gif differ
diff --git a/docs/beginning-pyscript.md b/docs/beginning-pyscript.md
index 38da6ac..d9a63e7 100644
--- a/docs/beginning-pyscript.md
+++ b/docs/beginning-pyscript.md
@@ -117,8 +117,8 @@ module in the document's `
` tag:
🦜 Polyglot - Piratical PyScript
-
-
+
+
@@ -168,8 +168,8 @@ In the end, our HTML should look like this:
🦜 Polyglot - Piratical PyScript
-
-
+
+
Polyglot 🦜 💬 🇬🇧 ➡️ 🏴☠️
diff --git a/docs/user-guide/editor.md b/docs/user-guide/editor.md
index 1951fad..ba54f0e 100644
--- a/docs/user-guide/editor.md
+++ b/docs/user-guide/editor.md
@@ -67,6 +67,21 @@ The outcome of these code fragments should look something like this:
Hovering over the Python editor reveals the "run" button.
+### Stop evaluation
+
+Sometimes, for whatever reason, the fragment of code in the editor will never
+complete. Perhaps it's stuck in an infinite loop and you need to stop the
+evaluation of your code so you can fix the problem and start it again.
+
+When the code is running, hovering over the editor will reveal a stop button
+(where the run button was found). Click on it, confirm you want to stop your
+code, and then the code will stop and the editor will refresh so you can fix
+your code.
+
+It looks something like this:
+
+
+
### Setup
Sometimes you need to create a pre-baked Pythonic context for a shared
diff --git a/docs/user-guide/filesystem.md b/docs/user-guide/filesystem.md
index b82de37..b977a3f 100644
--- a/docs/user-guide/filesystem.md
+++ b/docs/user-guide/filesystem.md
@@ -30,7 +30,7 @@ PyScript interacts with two filesystems.
Access to the device's local filesystem **is only available in Chromium
based browsers**. The maximum capacity for files shared in this way is
- 4GB, and **if this size is exceeded may result in lost data**.
+ 4GB.
Firefox and Safari do not support this capability (yet), and so it is not
available to PyScript running in these browsers.
diff --git a/docs/user-guide/first-steps.md b/docs/user-guide/first-steps.md
index abe37f8..f0c20fc 100644
--- a/docs/user-guide/first-steps.md
+++ b/docs/user-guide/first-steps.md
@@ -20,9 +20,9 @@ CSS:
-
+
-
+
diff --git a/docs/user-guide/plugins.md b/docs/user-guide/plugins.md
index 7aed1cb..9a353f0 100644
--- a/docs/user-guide/plugins.md
+++ b/docs/user-guide/plugins.md
@@ -100,7 +100,7 @@ For example, this will work because all references are contained within the
registered function:
```js
-import { hooks } from "https://pyscript.net/releases/2025.2.3/core.js";
+import { hooks } from "https://pyscript.net/releases/2025.2.4/core.js";
hooks.worker.onReady.add(() => {
// NOT suggested, just an example!
@@ -114,7 +114,7 @@ hooks.worker.onReady.add(() => {
However, due to the outer reference to the variable `i`, this will fail:
```js
-import { hooks } from "https://pyscript.net/releases/2025.2.3/core.js";
+import { hooks } from "https://pyscript.net/releases/2025.2.4/core.js";
// NO NO NO NO NO! ☠️
let i = 0;
@@ -147,7 +147,7 @@ the page.
```js title="log.js - a plugin that simply logs to the console."
// import the hooks from PyScript first...
-import { hooks } from "https://pyscript.net/releases/2025.2.3/core.js";
+import { hooks } from "https://pyscript.net/releases/2025.2.4/core.js";
// The `hooks.main` attribute defines plugins that run on the main thread.
hooks.main.onReady.add((wrap, element) => {
@@ -197,8 +197,8 @@ hooks.worker.onAfterRun.add(() => {
-
-
+
+
+
PyWorker - mpy bootstrapping pyodide example
diff --git a/version.json b/version.json
index 142d482..439bf46 100644
--- a/version.json
+++ b/version.json
@@ -1,3 +1,3 @@
{
- "version": "2025.2.3"
+ "version": "2025.2.4"
}