- The theoretical background and discussion is here.
- This is a natural continuation of the work done in Edit and run javascript code inside Logseq itself
- The implementation there supports multiple languages, so it is not repeated here.
- This is opened as a separate thread, in order to hold the python-specific material and discussion.
This is far from an original idea, consider reading Logseq like Jupyter Notebook et similia
Among other things, there @aarimond suggested the use of Pyodide, which is adopted here.
Current Features:
- It loads Pyodide the first time that is needed per Logseq’s restart.
- The predefined address is at jsdelivr.com , which needs an internet connection.
- You may provide a different address by setting
Python.pyodideUri
- You may provide a different address by setting
- The predefined address is at jsdelivr.com , which needs an internet connection.
- It doesn’t load other packages.
- Instructions can be found online (e.g. here).
- All the integrated parts are provided from third parties.
- Their quality is not perfect.
- Use at own risk.
- Expect failures in various cases.
- Thoroughly test all code before using it in production.
- More info and abilities found in Edit and run javascript code inside Logseq itself, so not repeated here.
Check for the following messages during first run:
Simple example
Graphics example using matplotlib
Example of mixing and running javascript and python in the same page
Use the following markdown in a page:
- Code
- {{runpage}}
-
```javascript
logseq.can_run = "java?";
```
-
```python
import js
def pyfun(str):
return js.logseq.can_run[:-1] + str + " & py"
js.logseq.kits.pyfun = pyfun
```
-
```javascript
logseq.can_run = logseq.kits.pyfun("script");
```
-
```python
js.logseq.can_run += "thon"
```
-
```javascript
alert("Logseq can edit & run: clojure & " + logseq.can_run + " & r-language");
```
Should look like this:
Press the button for javascript and python to collaborate back and forth, joining forces to produce a fact.