brython-code
Title (title)
Mit dem title-Parameter kann ein Titel für den Code-Block hinzugefügt werden.
Ein Leerschlag wird nicht unterstützt, da er als Trennzeichen im Meta-String eines Code-Blocks verwendet wird. Stattdessen können Unterstriche _ oder Bindestriche - verwendet werden.
```py live_py title=example.py
```
_ in the titleUm einen Unterstrich zu verwenden, kann folgende Syntax verwendet werden:
```py live_py title=example__file.py
```
Slim Mode (slim)
Manchmal ist ein Editor mit einem Header visuell zu gross. Für kleine Code-Schnipsel kann der slim-Modus verwendet werden, um die Grösse des Editors zu reduzieren. Dies entfernt den Header und blendet die Zeilennummern aus.
```py live_py slim
print('Hello Slim Mode')
```
Bei der Verwendung des slim-Modus wird der id-Parameter ignoriert.
Read-Only Mode (readonly)
Ein Editor kann auch im Read-Only-Modus angezeigt werden, indem der readonly-Parameter hinzugefügt wird.
```py live_py readonly
print('Hello Read-Only Mode')
```
Auch wenn der Code von der API geladen wird, wird der Read-Only-Modus beibehalten.
Use Case: Schulunterricht
Download Button verstecken (noDownload)
Der Download-Button ermöglicht es, den Code als Datei herunterzuladen. Mit dem noDownload-Meta-String kann der Download-Button ausgeblendet werden.
```py live_py noDownload
print('Hello No Download Button')
```
Vergleich-Button ausblenden (noCompare)
Wenn Änderungen am Code vorgenommen wurden, können diese mit dem Originalcode verglichen werden. Der Vergleichsbutton kann über den noCompare-Meta-String ausgeblendet werden.
```py live_py noCompare hideWarning
print('Hello No Compare Button')
```
Ändere den Code und beachte, dass kein Vergleichsbutton angezeigt wird.
Reset-Button ausblenden (noReset)
Der Reset-Button ermöglicht es, den Code auf den ursprünglichen Code zurückzusetzen. Der Reset-Button kann über den noReset-Meta-String ausgeblendet werden.
```py live_py noReset
print('Hello No Reset Button')
```
Ändere den Code und beachte, dass der Reset-Button ausgeblendet ist.
Max Line Number bevor gescrollt wird (maxLines)
Es kann die maximale Anzahl von Zeilen angegeben werden, bevor der Editor scrollt. Dies ist nützlich für lange Code-Schnipsel. Der Standardwert ist 25.
```py live_py maxLines=5
print('Line 1')
print('Line 2')
print('Line 3')
print('Line 4')
print('Line 5')
print('Line 6 - scrolled')
```
Minimale Anzahl Zeilen (minLines)
Es kann die minimale Anzahl von Zeilen angegeben werden, die der Editor mindestens anzeigen soll. Dies ist nützlich falls Code-Blöcke miteinander verglichen werden sollen.
```py live_py minLines=5
print('Line 1')
print('Line 2')
```
Imports
Standardmässig können alle Python-Skripte, die sich im Verzeichnis static/bry-libs/ befinden, direkt aus den Code-Blöcken importiert werden. Dies ermöglicht es Ihnen, wiederverwendbare Module zu erstellen, die in Ihre Code-Blöcke importiert werden können.
Das folgende Beispiel zeigt, wie ein Modul importiert und verwendet werden kann. Das Skript grid.py ist standardmässig in static/bry-libs/grid.py enthalten und kann somit importiert werden.
The script grid.py is added by default to static/bry-libs/grid.py when you run the dev-server.
Sourcecode von grid.py
grid.pyÄnderungen abspeichern (id=uuid)
Änderungen im Code-Editor können durch Hinzufügen einer id zum Code-Block persistiert werden. Die Änderungen werden über die teaching-api gespeicher und der Inhalt wird beim Neuladen der Seite wiederhergestellt.
```py live_py id=50fa8065-0d3b-4cb1-b03f-8244a6582d60
# Änderungen in diesem Code-Block werden für angemeldete User im Backend persistiert.
```
Stelle sicher dass die IDs auf der gesamten Website (nicht nur auf dieser Seite) eindeutig sind, ansonsten kann das Verhalten für deine Benutzer unerwartet sein. (Der Code wird durch den zuletzt geänderten Code-Block mit derselben ID überschrieben).
Ein guter Weg, um eindeutige IDs zu gewährleisten, ist die Verwendung einer UUID. Für VS Code-Benutzer ist die Erweiterung 👉 UUID Generator von Motivesoft praktisch, um neue UUIDs mit Alt+Shift+U einzufügen.
Versionen speichern (versioned)
Es können Versionen des Codes gespeichert werden, indem der versioned-Meta-String hinzugefügt wird. Dies fügt eine Versionshistorie zum Editor hinzu. Jede Änderung wird als neue Version gespeichert, aber nicht öfter als einmal alle 1 Sekunde.
```py live_py versioned id=b8ab041e-ce58-4803-b504-6b1011524370
print('Hello Versioned Mode')
```
Probiere es aus, indem du den Code mehrmals (min. 2x) änderst und speicherst und dann auf die Versionshistorie-Details klickst.
Versionen laden
Der versioned-Modus funktioniert nur in Kombination mit dem id-Attribut. Das id-Attribut wird verwendet, um die Versionen im backend zu persistieren.
Version History verstecken (noHistory)
Die Versionen des Codes werden standardmässig angezeigt. Mit dem noHistory-Meta-String kann die Versionshistorie ausgeblendet werden.
```py live_py versioned noHistory id=07300009-a743-4adc-bdc5-cacbfdf5230a
print('Hello No History')
```
Pre- und Post-Code
Mit Kommentaren lassen sich Code-Teile zu Beginn oder am Ende verstecken und auf Wunsch aufklappen. Dies ist nützlich, um den Fokus auf den Hauptteil des Codes zu legen.
### PRE- Die Code-Sequenz vor dem
### POST-Kommentar ist standardmässig eingeklappt und wird nicht angezeigt. ### POST- Die Code-Sequenz nach dem
### POST-Kommentar ist standardmässig eingeklappt und wird nicht angezeigt.
```py live_py id=5ecb46e8-4ab5-428b-bb3f-467aa0d47d01
# This is a pre code block
from time import time
t0 = time.time()
PI = 3.14159265359
### PRE
radius = 10
print(f'Der Umfang eines Kreises mit Radius {radius} beträgt {2 * PI * radius}')
### POST
print('--------------------------')
print(f'Die Berechnung dauerte {time.time() - t0} Sekunden')
```
Codeblock mit eingeklapptem Pre- und Post-Code. Die Ausklapp-Knöpfe werden angezeigt, wenn mit der Maus über den Code gefahren wird.
Nicht abgespeicherte Code Blocks
Wenn keine id angegeben ist, wird der Code nicht gespeichert, was mit einem und einem orangen Header signalisiert wird.
Dies ist nützlich, wenn Code-Beispiele nicht gespeichert werden sollen.
```py live_py
print('Hello Unpersisted Code Block')
```
Hide the Warning (hideWarning)
Soll die Warnung ausgeblendet werden, kann der hideWarning-Parameter hinzugefügt werden.
```py live_py hideWarning
print('Hello Unpersisted Code Block')
```
Installation
packages/tdev/brython-codeKopiere des packages/tdev/brython-code-Verzeichnis in das tdev-website/website/packages-Verzeichnis oder über updateTdev.config.yaml hinzufügen.
Hinzufügen des brython-code-Package zu den apiDocumentProviders im siteConfig.ts:
import { brythonCodePluginConfig } from './src/siteConfig/pluginConfigs';
const getSiteConfig: SiteConfigProvider = () => {
return {
plugins: [brythonCodePluginConfig()],
apiDocumentProviders: [
require.resolve('@tdev/brython-code/register'),
]
};
};
Danach muss erneut installiert werden:
yarn install