From 36e18b3d407bd375ab5199a21711dfd39127a9f0 Mon Sep 17 00:00:00 2001
From: ghp_import <>
Date: Tue, 4 Jan 2022 13:24:34 +0000
Subject: [PATCH 01/31] Compiled
---
meta/course.json | 116 +
meta/installing-naucse/index.html | 40 +
meta/local-run/index.html | 224 +
meta/local-run/info.yml | 35 +
meta/submitting-a-run/index.html | 71 +
meta/submitting-a-run/naucse_fork.png | Bin 0 -> 49953 bytes
mi-pyt/async/index.html | 387 +
mi-pyt/click/index.html | 189 +
mi-pyt/course.json | 772 ++
mi-pyt/cython/index.html | 590 ++
mi-pyt/cython/test_matmul.py | 34 +
mi-pyt/deployment/index.html | 23 +
mi-pyt/deployment/pythonanywhere.html | 77 +
mi-pyt/distribution/index.html | 404 +
mi-pyt/docs/index.html | 389 +
mi-pyt/flask/index.html | 365 +
mi-pyt/generators/index.html | 239 +
mi-pyt/install/index.html | 62 +
mi-pyt/magic/index.html | 577 ++
mi-pyt/micropython/index.html | 194 +
mi-pyt/notebook/index.html | 116 +
mi-pyt/numpy/index.html | 4175 ++++++++++
mi-pyt/numpy/python.jpg | Bin 0 -> 126582 bytes
mi-pyt/numpy/sample.wav | Bin 0 -> 925262 bytes
mi-pyt/numpy/secret.png | Bin 0 -> 4883 bytes
mi-pyt/pandas/actors.csv | 7 +
mi-pyt/pandas/index.html | 7214 +++++++++++++++++
mi-pyt/pandas/spouses.csv | 12 +
mi-pyt/pandas/style-table.css | 57 +
mi-pyt/pyqt/basic-screenshot.png | Bin 0 -> 52134 bytes
mi-pyt/pyqt/index.html | 560 ++
mi-pyt/pyqt/pics/README/index.md | 11 +
mi-pyt/pyqt/pics/arrows/down.svg | 83 +
mi-pyt/pyqt/pics/arrows/left.svg | 83 +
mi-pyt/pyqt/pics/arrows/right.svg | 83 +
mi-pyt/pyqt/pics/arrows/up.svg | 83 +
mi-pyt/pyqt/pics/castle.svg | 130 +
mi-pyt/pyqt/pics/dude1.svg | 120 +
mi-pyt/pyqt/pics/dude2.svg | 116 +
mi-pyt/pyqt/pics/dude3.svg | 116 +
mi-pyt/pyqt/pics/dude4.svg | 116 +
mi-pyt/pyqt/pics/dude5.svg | 116 +
mi-pyt/pyqt/pics/fish.svg | 97 +
mi-pyt/pyqt/pics/fish2.svg | 97 +
mi-pyt/pyqt/pics/grass.svg | 84 +
mi-pyt/pyqt/pics/lines/1.svg | 89 +
mi-pyt/pyqt/pics/lines/10.svg | 89 +
mi-pyt/pyqt/pics/lines/11.svg | 85 +
mi-pyt/pyqt/pics/lines/12.svg | 89 +
mi-pyt/pyqt/pics/lines/13.svg | 85 +
mi-pyt/pyqt/pics/lines/14.svg | 85 +
mi-pyt/pyqt/pics/lines/15.svg | 89 +
mi-pyt/pyqt/pics/lines/2.svg | 89 +
mi-pyt/pyqt/pics/lines/3.svg | 89 +
mi-pyt/pyqt/pics/lines/4.svg | 89 +
mi-pyt/pyqt/pics/lines/5.svg | 89 +
mi-pyt/pyqt/pics/lines/6.svg | 89 +
mi-pyt/pyqt/pics/lines/7.svg | 85 +
mi-pyt/pyqt/pics/lines/8.svg | 89 +
mi-pyt/pyqt/pics/lines/9.svg | 89 +
mi-pyt/pyqt/pics/shark.svg | 57 +
mi-pyt/pyqt/pics/wall.svg | 94 +
mi-pyt/pyqt/pics/wall2.svg | 94 +
mi-pyt/pyqt/pics/water.svg | 71 +
mi-pyt/requests/index.html | 153 +
mi-pyt/testing/index.html | 564 ++
pyladies/and-or/index.html | 87 +
pyladies/asteroids/index.html | 345 +
pyladies/asteroids/screenshot.png | Bin 0 -> 53112 bytes
pyladies/basic-functions/index.html | 146 +
pyladies/basics/diagram.svg | 534 ++
pyladies/basics/dropbox.png | Bin 0 -> 41480 bytes
pyladies/basics/gitk.png | Bin 0 -> 59093 bytes
pyladies/basics/index.html | 339 +
pyladies/branching/branch1.png | Bin 0 -> 5370 bytes
pyladies/branching/branches.png | Bin 0 -> 6496 bytes
pyladies/branching/index.html | 166 +
pyladies/branching/merge.png | Bin 0 -> 7185 bytes
pyladies/circular-imports/index.html | 108 +
pyladies/class/index.html | 253 +
pyladies/cmdline/index.html | 276 +
pyladies/cmdline/windows-cmd-properties.png | Bin 0 -> 23872 bytes
.../collaboration/gh-workflow-diagram.svg | 346 +
pyladies/collaboration/index.html | 359 +
pyladies/comparisons/index.html | 184 +
pyladies/course.json | 1768 ++++
pyladies/def/index.html | 217 +
pyladies/dict/index.html | 136 +
pyladies/exceptions/index.html | 171 +
pyladies/expressions/index.html | 71 +
pyladies/files/index.html | 126 +
pyladies/first-steps/index.html | 83 +
pyladies/fstring/index.html | 67 +
pyladies/functions/call-anatomy.svg | 413 +
pyladies/functions/index.html | 206 +
pyladies/github-api/index.html | 129 +
pyladies/hello-world/index.html | 68 +
pyladies/ignoring/index.html | 203 +
pyladies/inheritance/index.html | 199 +
pyladies/install-editor/atom.html | 73 +
pyladies/install-editor/gedit.html | 66 +
pyladies/install-editor/gedit_indent.png | Bin 0 -> 21030 bytes
pyladies/install-editor/gedit_linenums.png | Bin 0 -> 28001 bytes
pyladies/install-editor/gedit_prefs.png | Bin 0 -> 87034 bytes
pyladies/install-editor/index.html | 91 +
pyladies/install-editor/kate.html | 68 +
.../install-editor/notepad-plus-plus.html | 55 +
pyladies/install-editor/others.html | 77 +
pyladies/install-editor/vscode.html | 57 +
pyladies/install/index.1.html | 80 +
pyladies/install/index.html | 12 +
pyladies/install/linux.html | 63 +
pyladies/install/macos.html | 15 +
pyladies/install/windows.html | 26 +
pyladies/install/windows_32v64-bit.png | Bin 0 -> 36230 bytes
.../install/windows_add_python_to_path.png | Bin 0 -> 70057 bytes
pyladies/json/index.html | 102 +
pyladies/list/index.html | 414 +
pyladies/local-variables/index.html | 150 +
pyladies/modules/index.html | 84 +
pyladies/nested-traceback/index.html | 58 +
pyladies/pong/index.html | 499 ++
pyladies/pong/pong.png | Bin 0 -> 941 bytes
pyladies/print/index.html | 112 +
pyladies/pyglet/had.gif | Bin 0 -> 10907 bytes
pyladies/pyglet/had.png | Bin 0 -> 12723 bytes
pyladies/pyglet/had2.png | Bin 0 -> 14573 bytes
pyladies/pyglet/index.html | 413 +
pyladies/pyglet/pong.py | 325 +
pyladies/reassignment/index.html | 92 +
pyladies/str-index-slice/index.html | 165 +
pyladies/str-methods/index.html | 83 +
pyladies/str/index.html | 209 +
pyladies/str/quote-comic.svg | 466 ++
pyladies/testing/index.html | 226 +
pyladies/tuple/index.html | 125 +
pyladies/turtle/index.html | 412 +
pyladies/turtle/turtle-dashed.png | Bin 0 -> 255 bytes
pyladies/turtle/turtle-dashed2.png | Bin 0 -> 310 bytes
pyladies/turtle/turtle-hexagons.png | Bin 0 -> 1735 bytes
pyladies/turtle/turtle-rect.png | Bin 0 -> 340 bytes
pyladies/turtle/turtle-square.png | Bin 0 -> 323 bytes
pyladies/turtle/turtle-squares.png | Bin 0 -> 890 bytes
pyladies/turtle/turtle-stairs.png | Bin 0 -> 1055 bytes
pyladies/variables/index.html | 151 +
pyladies/venv-setup/dirs.png | Bin 0 -> 3429 bytes
pyladies/venv-setup/index.html | 110 +
pyladies/while/index.html | 98 +
148 files changed, 32593 insertions(+)
create mode 100644 meta/course.json
create mode 100644 meta/installing-naucse/index.html
create mode 100644 meta/local-run/index.html
create mode 100644 meta/local-run/info.yml
create mode 100644 meta/submitting-a-run/index.html
create mode 100644 meta/submitting-a-run/naucse_fork.png
create mode 100644 mi-pyt/async/index.html
create mode 100644 mi-pyt/click/index.html
create mode 100644 mi-pyt/course.json
create mode 100644 mi-pyt/cython/index.html
create mode 100644 mi-pyt/cython/test_matmul.py
create mode 100644 mi-pyt/deployment/index.html
create mode 100644 mi-pyt/deployment/pythonanywhere.html
create mode 100644 mi-pyt/distribution/index.html
create mode 100644 mi-pyt/docs/index.html
create mode 100644 mi-pyt/flask/index.html
create mode 100644 mi-pyt/generators/index.html
create mode 100644 mi-pyt/install/index.html
create mode 100644 mi-pyt/magic/index.html
create mode 100644 mi-pyt/micropython/index.html
create mode 100644 mi-pyt/notebook/index.html
create mode 100644 mi-pyt/numpy/index.html
create mode 100644 mi-pyt/numpy/python.jpg
create mode 100644 mi-pyt/numpy/sample.wav
create mode 100644 mi-pyt/numpy/secret.png
create mode 100644 mi-pyt/pandas/actors.csv
create mode 100644 mi-pyt/pandas/index.html
create mode 100644 mi-pyt/pandas/spouses.csv
create mode 100644 mi-pyt/pandas/style-table.css
create mode 100644 mi-pyt/pyqt/basic-screenshot.png
create mode 100644 mi-pyt/pyqt/index.html
create mode 100644 mi-pyt/pyqt/pics/README/index.md
create mode 100644 mi-pyt/pyqt/pics/arrows/down.svg
create mode 100644 mi-pyt/pyqt/pics/arrows/left.svg
create mode 100644 mi-pyt/pyqt/pics/arrows/right.svg
create mode 100644 mi-pyt/pyqt/pics/arrows/up.svg
create mode 100644 mi-pyt/pyqt/pics/castle.svg
create mode 100644 mi-pyt/pyqt/pics/dude1.svg
create mode 100644 mi-pyt/pyqt/pics/dude2.svg
create mode 100644 mi-pyt/pyqt/pics/dude3.svg
create mode 100644 mi-pyt/pyqt/pics/dude4.svg
create mode 100644 mi-pyt/pyqt/pics/dude5.svg
create mode 100644 mi-pyt/pyqt/pics/fish.svg
create mode 100644 mi-pyt/pyqt/pics/fish2.svg
create mode 100644 mi-pyt/pyqt/pics/grass.svg
create mode 100644 mi-pyt/pyqt/pics/lines/1.svg
create mode 100644 mi-pyt/pyqt/pics/lines/10.svg
create mode 100644 mi-pyt/pyqt/pics/lines/11.svg
create mode 100644 mi-pyt/pyqt/pics/lines/12.svg
create mode 100644 mi-pyt/pyqt/pics/lines/13.svg
create mode 100644 mi-pyt/pyqt/pics/lines/14.svg
create mode 100644 mi-pyt/pyqt/pics/lines/15.svg
create mode 100644 mi-pyt/pyqt/pics/lines/2.svg
create mode 100644 mi-pyt/pyqt/pics/lines/3.svg
create mode 100644 mi-pyt/pyqt/pics/lines/4.svg
create mode 100644 mi-pyt/pyqt/pics/lines/5.svg
create mode 100644 mi-pyt/pyqt/pics/lines/6.svg
create mode 100644 mi-pyt/pyqt/pics/lines/7.svg
create mode 100644 mi-pyt/pyqt/pics/lines/8.svg
create mode 100644 mi-pyt/pyqt/pics/lines/9.svg
create mode 100644 mi-pyt/pyqt/pics/shark.svg
create mode 100644 mi-pyt/pyqt/pics/wall.svg
create mode 100644 mi-pyt/pyqt/pics/wall2.svg
create mode 100644 mi-pyt/pyqt/pics/water.svg
create mode 100644 mi-pyt/requests/index.html
create mode 100644 mi-pyt/testing/index.html
create mode 100644 pyladies/and-or/index.html
create mode 100644 pyladies/asteroids/index.html
create mode 100644 pyladies/asteroids/screenshot.png
create mode 100644 pyladies/basic-functions/index.html
create mode 100644 pyladies/basics/diagram.svg
create mode 100644 pyladies/basics/dropbox.png
create mode 100644 pyladies/basics/gitk.png
create mode 100644 pyladies/basics/index.html
create mode 100644 pyladies/branching/branch1.png
create mode 100644 pyladies/branching/branches.png
create mode 100644 pyladies/branching/index.html
create mode 100644 pyladies/branching/merge.png
create mode 100644 pyladies/circular-imports/index.html
create mode 100644 pyladies/class/index.html
create mode 100644 pyladies/cmdline/index.html
create mode 100644 pyladies/cmdline/windows-cmd-properties.png
create mode 100644 pyladies/collaboration/gh-workflow-diagram.svg
create mode 100644 pyladies/collaboration/index.html
create mode 100644 pyladies/comparisons/index.html
create mode 100644 pyladies/course.json
create mode 100644 pyladies/def/index.html
create mode 100644 pyladies/dict/index.html
create mode 100644 pyladies/exceptions/index.html
create mode 100644 pyladies/expressions/index.html
create mode 100644 pyladies/files/index.html
create mode 100644 pyladies/first-steps/index.html
create mode 100644 pyladies/fstring/index.html
create mode 100644 pyladies/functions/call-anatomy.svg
create mode 100644 pyladies/functions/index.html
create mode 100644 pyladies/github-api/index.html
create mode 100644 pyladies/hello-world/index.html
create mode 100644 pyladies/ignoring/index.html
create mode 100644 pyladies/inheritance/index.html
create mode 100644 pyladies/install-editor/atom.html
create mode 100644 pyladies/install-editor/gedit.html
create mode 100644 pyladies/install-editor/gedit_indent.png
create mode 100644 pyladies/install-editor/gedit_linenums.png
create mode 100644 pyladies/install-editor/gedit_prefs.png
create mode 100644 pyladies/install-editor/index.html
create mode 100644 pyladies/install-editor/kate.html
create mode 100644 pyladies/install-editor/notepad-plus-plus.html
create mode 100644 pyladies/install-editor/others.html
create mode 100644 pyladies/install-editor/vscode.html
create mode 100644 pyladies/install/index.1.html
create mode 100644 pyladies/install/index.html
create mode 100644 pyladies/install/linux.html
create mode 100644 pyladies/install/macos.html
create mode 100644 pyladies/install/windows.html
create mode 100644 pyladies/install/windows_32v64-bit.png
create mode 100644 pyladies/install/windows_add_python_to_path.png
create mode 100644 pyladies/json/index.html
create mode 100644 pyladies/list/index.html
create mode 100644 pyladies/local-variables/index.html
create mode 100644 pyladies/modules/index.html
create mode 100644 pyladies/nested-traceback/index.html
create mode 100644 pyladies/pong/index.html
create mode 100644 pyladies/pong/pong.png
create mode 100644 pyladies/print/index.html
create mode 100644 pyladies/pyglet/had.gif
create mode 100644 pyladies/pyglet/had.png
create mode 100644 pyladies/pyglet/had2.png
create mode 100644 pyladies/pyglet/index.html
create mode 100644 pyladies/pyglet/pong.py
create mode 100644 pyladies/reassignment/index.html
create mode 100644 pyladies/str-index-slice/index.html
create mode 100644 pyladies/str-methods/index.html
create mode 100644 pyladies/str/index.html
create mode 100644 pyladies/str/quote-comic.svg
create mode 100644 pyladies/testing/index.html
create mode 100644 pyladies/tuple/index.html
create mode 100644 pyladies/turtle/index.html
create mode 100644 pyladies/turtle/turtle-dashed.png
create mode 100644 pyladies/turtle/turtle-dashed2.png
create mode 100644 pyladies/turtle/turtle-hexagons.png
create mode 100644 pyladies/turtle/turtle-rect.png
create mode 100644 pyladies/turtle/turtle-square.png
create mode 100644 pyladies/turtle/turtle-squares.png
create mode 100644 pyladies/turtle/turtle-stairs.png
create mode 100644 pyladies/variables/index.html
create mode 100644 pyladies/venv-setup/dirs.png
create mode 100644 pyladies/venv-setup/index.html
create mode 100644 pyladies/while/index.html
diff --git a/meta/course.json b/meta/course.json
new file mode 100644
index 00000000..c8822d30
--- /dev/null
+++ b/meta/course.json
@@ -0,0 +1,116 @@
+{
+ "api_version": [
+ 0,
+ 3
+ ],
+ "course": {
+ "description": "Návod na přidání kurzu na Nauč se Python",
+ "edit_info": {
+ "branch": "main",
+ "url": "https://github.com/encukou/naucse-python"
+ },
+ "lessons": {
+ "meta/installing-naucse": {
+ "pages": {
+ "index": {
+ "attribution": [
+ "Napsal Mikuláš Poul, 2018"
+ ],
+ "content": {
+ "path": "installing-naucse/index.html"
+ },
+ "license": "cc-by-sa-40",
+ "license_code": "cc0",
+ "slug": "index",
+ "solutions": [],
+ "source_file": "lessons/meta/installing-naucse/index.md",
+ "title": "Lokální instalace Nauč se Python",
+ "vars": {}
+ }
+ },
+ "source_file": "lessons/meta/installing-naucse/info.yml",
+ "static_files": {},
+ "title": "Lokální instalace Nauč se Python"
+ },
+ "meta/local-run": {
+ "pages": {
+ "index": {
+ "attribution": [
+ "Napsal Mikuláš Poul, 2018"
+ ],
+ "content": {
+ "path": "local-run/index.html"
+ },
+ "license": "cc-by-sa-40",
+ "license_code": "cc0",
+ "slug": "index",
+ "solutions": [],
+ "source_file": "lessons/meta/local-run/index.md",
+ "title": "Vytvoření lokálního kurzu",
+ "vars": {}
+ }
+ },
+ "source_file": "lessons/meta/local-run/info.yml",
+ "static_files": {
+ "info.yml": {
+ "path": "local-run/info.yml"
+ }
+ },
+ "title": "Vytvoření lokálního kurzu"
+ },
+ "meta/submitting-a-run": {
+ "pages": {
+ "index": {
+ "attribution": [
+ "Napsal Mikuláš Poul, 2018"
+ ],
+ "content": {
+ "path": "submitting-a-run/index.html"
+ },
+ "license": "cc-by-sa-40",
+ "license_code": "cc0",
+ "slug": "index",
+ "solutions": [],
+ "source_file": "lessons/meta/submitting-a-run/index.md",
+ "title": "Přidání kurzu na Nauč se Python",
+ "vars": {}
+ }
+ },
+ "source_file": "lessons/meta/submitting-a-run/info.yml",
+ "static_files": {
+ "naucse_fork.png": {
+ "path": "submitting-a-run/naucse_fork.png"
+ }
+ },
+ "title": "Přidání kurzu na Nauč se Python"
+ }
+ },
+ "long_description": "
V tomto meta-kurzu je kompletní návod na přidávání kurzů na Nauč se Python.
\nKurz je určený pro organizátory a k přidání kurzu jsou potřeba jen základní znalosti práce\ns gitem a GitHubem.
",
+ "sessions": [
+ {
+ "materials": [
+ {
+ "lesson_slug": "meta/installing-naucse",
+ "title": "Lokální instalace Nauč se Python",
+ "type": "lesson"
+ },
+ {
+ "lesson_slug": "meta/local-run",
+ "title": "Vytvoření lokálního kurzu",
+ "type": "lesson"
+ },
+ {
+ "lesson_slug": "meta/submitting-a-run",
+ "title": "Přidání kurzu na Nauč se Python",
+ "type": "lesson"
+ }
+ ],
+ "slug": "adding-a-run",
+ "source_file": "courses/meta/info.yml",
+ "title": "Přidání kurzu"
+ }
+ ],
+ "source_file": "courses/meta/info.yml",
+ "title": "Jak přidat kurz na Nauč se Python"
+ }
+}
\ No newline at end of file
diff --git a/meta/installing-naucse/index.html b/meta/installing-naucse/index.html
new file mode 100644
index 00000000..7b9e8656
--- /dev/null
+++ b/meta/installing-naucse/index.html
@@ -0,0 +1,40 @@
+Lokální instalace Nauč se python
+K přidání kurzu nejdřív člověk potřebuje vlastní, lokální instalaci webové aplikace Nauč se Python.
+Příprava
+První věc, kterou budeš potřebovat, je Python, a to alespoň ve verzi 3.6.
+Pokud zrovna danou verzi Pythonu nainstalovanou nemáš, můžeš postupovat podle návodu na instalaci Pythonu.
+Druhá věc, kterou budeš potřebovat, je Git – pokud nemáš ten, můžeš postupovat podle návodu na instalaci Gitu.
+Poslední věc, kterou potřebuješ, už není žádný program, ale pár schopností.
+Je potřeba, aby jsi uměl/a pracovat s příkazovou řádkou (terminálem) a s Gitem.
+Vše potřebné si můžeš připomenout v návodu na používání terminálu, respektive v návodu na používání Gitu.
+Instalace
+Nauč se Python používá k definici závislostí Pipenv, který si nejspíš budeš muset doinstalovat.
+Postupovat můžeš podle návodu na instalaci Pipenvu.
+Po instalaci si musíš naklonovat repozitář, ze kterého se Nauč se Python vykresluje.
+To uděláš tímto příkazem:
+$ git clone https://github.com/pyvec/naucse.python.cz
+
Poté přepni adresář do naklonovaného repozitáře:
+Zbývá už jen nainstalovat závislosti, to uděláš pomocí následujícího příkazu, který za tebe zároveň i vytvoří virtuální prostředí.
+
+Spuštění
+Nauč se Python jde pustit ve dvou režimech.
+První režim vykresluje každou stránku pokaždé znova – hodí se na vývoj, aby byly všechny změny okamžitě vidět.
+Pustí se následovně:
+$ pipenv run naucse serve
+ * Running on http://0.0.0.0:8003/ (Press CTRL+C to quit)
+ * Restarting with stat
+ * Debugger is active!
+ * Debugger PIN: 256-270-314
+
V ukázce vidíš rovnou i příklad toho, co to vypíše – zajímá tě jen adresa, zde http://0.0.0.0:8003/ (u tebe se může lišit).
+Když si ji zkopíruješ a otevřeš ve webovém prohlížeči, uvidíš vlastní běžící Nauč se Python.
+Druhý režim nejdříve vykreslí všechny stránky a až poté ti je zobrazí – hodí se spíše na kontrolu toho, že se při vývoji nic nepokazilo.
+Pustí se následovně (pozor, nějakou chvíli to trvá):
+$ pipenv run naucse freeze --serve
+Generating HTML...
+ * Running on http://127.0.0.1:8003/ (Press CTRL+C to quit)
+
Když odnaviguješ například do seznamu kurzů, je možné, že tam nebudou všechny.
+To jsou kurzy, které se vykreslují z jiných forků, které jsou na lokálním prostředí
+automaticky vypnuté.
+
\ No newline at end of file
diff --git a/meta/local-run/index.html b/meta/local-run/index.html
new file mode 100644
index 00000000..a67ecd83
--- /dev/null
+++ b/meta/local-run/index.html
@@ -0,0 +1,224 @@
+Vytvoření lokálního kurzu
+Teď, když už máš lokální instalaci aplikace Nauč se Python, můžeš začít vytvářet vlastní kurz.
+První věc, kterou musíš udělat, je vybrat si identifikátor kurzu, pod kterým bude kurz uložený.
+Tento identifikátor také bude ve všech adresách, které se budou týkat tohoto kurzu.
+Identifikátor se může skládat pouze z malých alfanumerických znaků a spojovníků (-) a musí být uníkátní, alespoň v daném roce.
+Jak zjistit, jestli už identifikátor existuje? Podívej se do složky runs a pak dále do složky, která odpovídá roku, ve kterém tvůj kurz začíná.
+Jak vybrat identifikátor?
+
Ze správného identifikátoru (v kombinaci s rokem) by mělo být jasné, o který kurz se jedná.
+Dobrý příklad je třeba 2017/mi-pyt, identifikátor pro předmět MI-PYT, který začal v roce 2017.
+Pro jiné kurzy může být problém přijít na unikátní identifikátor.
+Například kurzy PyLadies se organizují ve více městech několikrát ročně.
+Poté se do identifikátoru přidává i město a označení, který je to kurz v daném roce – například 2018/pyladies-ostrava-jaro.
+Třeba v Praze ale zároveň běží i více kurzů najednou, tak se používá 2018/pyladies-praha-jaro-cznic a 2018/pyladies-praha-jaro-ntk, poslední část zde říká, kde se kurz koná.
+
+Takže doporučení jsou následovné:
+
+- Když víš, že kurz se stejným názvem bude v daném roce jediný, identifikátor by měl být název, bez diakritiky a se spojovníky místo mezer.
+- Když se stejně pojmenovaný kurz koná ve více městech, přidej název města.
+- Když se kurz koná vícekrát za rok, přidej označení v daném roce (například roční období).
+- Když se koná více kurzů se stejným názvem ve stejném městě najednou, přidej lokaci nebo den, pokud se konají na jiných místech nebo v jiné dny.
+
+
Když už máš vymyšlený identifikátor, vytvoř ve složce s rokem složku, která se bude jmenovat podle tvého identifikátoru.
+Pokud ještě složka pro daný rok neexistuje, musíš ji vytvořit také.
+Definice kurzu
+Kurz se definuje pomocí souboru info.yml, který se umisťuje právě do složky, kterou jsi výše vytvořil/a.
+Tento soubor obsahuje všechny informace o kurzu – název, popisek, kde a kdy se koná a pak samozřejmě plán jednotlivých lekcí.
+Soubor je formátu YAML, který si teď trochu ukážeme.
+O formátu YAML
+Formát se skládá z několika stavebních bloků, které se dají poté skládat dohromady.
+Prvním je seznam hodnot (podobně jako v Pythonu).
+Seznam se ve formátu YAML zapisuje následovně:
+- První položka
+- Druhá položka
+- 3
+- Položka může být i něco jiného než text!
+
Druhým stavebním blokem je slovník (zase podobně jako v Pythonu), který se skládá z klíčů a hodnot, nezáleží v ní tedy na pořadí, protože se k informaci vždy člověk dostance pomocí klíče.
+Slovník se ve formátu YAML zapisuje následovně:
+klic1: Hodnota klíče klic1.
+klic2: 2
+klic3: I hodnoty ve slovníku mohou být něco jiného než text.
+klic4: |
+ Pokud potřebuješ zapsat nějaký delší text, uděláš to takhle.
+
+ Tento text budou dva separátní odstavce v rámci jednoho klíče.
+klic5:
+klic6: Jak vidíš v klíči klic5, hodnota může být i prázdá.
+
Seznamy a slovníky jde samozřejmě i skládat dohromady:
+klic1: Hodnota klíče
+klic2:
+- Tohle je seznam, které patří pod klíč klic2
+- vnorenyklic: Můžeme skládat jednotlivé typy skoro do nekonečna.
+- vnorenyklic: Klíče musí být unikátní jen v rámci jednoho slovníku, takže to může být takto.
+klic3:
+ vnorenyklic: Slovník může obsahovat další slovník i takto.
+
Povinné informace
+Teď, když už se vyznáš ve formátu YAML, můžeš začít vytvářet soubor info.yml.
+Celá definice kurzu je jeden velký slovník, který si postupně popíšeme a vyplníme.
+Pro potřeby kurzu je připravena šablona, kterou můžeš použít.
+Nejdřív prvních pár základních povinných údajů:
+
+title slouží pro název kurzu (nepovinně lze dodefinovat pomocí subtitle)
+description slouží pro krátký popis kurzu (který se zobrazí v seznamu kurzů)
+long_description slouží pro dlouhý popis kurzu, který se zobrazí na stránce kurzu
+
+A teď už jen nepovinné údaje:
+
+place slouží pro označení místa
+time slouží pro informaci o času (není nutný žádný specifický formát)
+
+Jestli chceš, aby pro kurz šel vygenerovat iCal soubor s plánem lekcí, musíš dále poté vyplnit údaj default_time.
+Tato hodnota musí být slovník, který obsahuje dva klíče start a end, kde bude čas lekcí.
+Čas musí být ve formátu HH:MM a musí být obalen uvozovkami nebo apostrofy (kvůli té dvojtečce, aby si YAML nemyslel, že je to další slovník), takže třeba takhle:
+default_time:
+ start: '18:00'
+ end: '20:00'
+
Poslední nepovinná hodnota, než se dostaneme k obsahu kurzu, jsou proměné, které se definují klíčem vars a musí být také slovníkem.
+Proměné mohou upravovat obsah lekcí a stránek kurzu, a pokud budeš vytvářet nebo upravovat materiály, můžeš si i definovat vlastní.
+První proměnou, kterou můžeš použít, je coach-present.
+Pokud je tvůj kurz s lektorem nebo koučem, nastav tuto proměnou na hodnotu true.
+Druhou proměnou, kterou můžeš použít je user-gender.
+Pokud víš, že na tvém kurzu budou lidé jen jednoho pohlaví, můžeš nastavit materiály (které tak byly napsány), aby vykreslily správně formátovaný obsah.
+Nastavíš to pomocí písmenka f pro ženy, m pro muže.
+Pokud proměnou nevyplníš, materiály vykreslí obě varianty.
+Další proměnou, kterou můžeš použít, je pyladies.
+Tu využij (nastavenín na hodnotu true), pokud organizuješ kurz PyLadies.
+Tato proměná aktivuje v materiálech nějaké popisky navíc, například o tahácích, nebo také sjednotí názvy složek na pyladies.
+Plán na základě kanonických materiálů
+Pro vytvoření obsahu máš dvě základní možnosti.
+Buď využiješ plán existujícího kanonického kurzu, nebo si nadefinuješ svůj vlastní.
+Zde je popsán postup odvozování.
+Nejdřív si vyber kanonický kurz, ze kterého chceš svůj kurz odvodit.
+Kanonické kurzy najdeš ve složce courses.
+Vybraný kanonický kurz nastav v souboru info.yml klíčem derives – napiš do něj název složky kurzu (např. pyladies nebo mi-pyt).
+A teď už zbývá poslední věc, a to je sestavení programu kurzu.
+Kurz se skládá z jednotlivých lekcí a každá lekce se skládá z jednotlivých materiálů.
+Lekce nadefinuješ klíčem plan v souboru info.yml.
+Ten musí být seznam dalších slovníků.
+Máš dvě možnosti, jak nadefinovat jednotlivé lekce.
+Buď můžeš převzít lekci z kanonického kurzu, nebo si nadefinovat vlastní.
+Nicméně, co je společné, je definování data a času kurzu.
+Datum nastavíš klíčem date, ve formátu YYYY-MM-DD.
+Čas nastavovat nemusíš, použije se čas z default_time, ale můžeš ho přenastavit pomocí klíče time, který bude mít jako hodnotu další slovník s hodnotami start a/nebo end (ve formátu HH:MM obalené uvozovkami).
+Definice vlastní lekce
+Nejdříve si ukážeme, jak se definují vlastní lekce – přebírání pak už bude jednoduché.
+Nejdřív si budeš muset zase vymyslet pro lekci identifikátor, který napiš do klíče slug.
+Identifikátor musí být zase unikántní, nicméně tentorkát jen v rámci kurzu.
+Identifikátor lekce bude v adrese na tu specifickou lekci.
+Dalším povinným údajem je title – název lekce.
+Kromě definování data a času už pak při definici lekce zbývá jen seznam materiálů.
+Ty se nastavují pomocí klíče materials.
+I když nechceš žádné materiály pro lekci definovat, musíš klíč nadefinovat, a to s hodnotou [] (prázdný seznam).
+Základní definice lekce tedy vypadá následovně:
+plan:
+- slug: first-lesson
+ title: Název první lekce
+ date: 2018-03-07
+ materials: []
+
Existují tři druhy materiálů. První druh jsou interní materiály, druhý druh jsou odkazy mimo Nauč se Python a třetí jsou jen záznam bez odkazu.
+Materiály se dále pak rozdělují na několik typů, které určují ikonku, která se použije v seznamu materiálů vedle názvu.
+Podporované typy jsou následující:
+
+page – výchozí typ pro druh interní materiály
+url – výchozí typ pro odkazy
+cheatsheet – pro taháky
+homework – pro domácí úkoly
+special – pro všechno ostatní
+
+A teď už k definování.
+Interní materiály se definují pomocí klíče lesson, do kterého patří identifikátor interního materiálu.
+Interní materiály jsou definovány ve složce lessons.
+V té složce jsou tzv. kolekce materiálů, které pak obsahují jednotlivé materiály.
+Identifikátor materiálu je <název kolekce>/<název materiálu z kolekce>, takže například beginners/install.
+Následovně by se použil materiál v seznamu materiálů:
+plan:
+- slug: first-lesson
+ title: Název první lekce
+ date: 2018-03-07
+ materials:
+ - lesson: beginners/install
+
Druhý druh se definuje pomocí klíčů url a title.
+Do url patří kompletní odkaz na materiál, do title patří název odkazu.
+Nepovinně se pak může změnit typ pomocí klíče type.
+Příklad použítí:
+plan:
+- slug: first-lesson
+ title: Název první lekce
+ date: 2018-03-07
+ materials:
+ - title: Úvodní prezentace
+ url: https://example.com/uvod.pdf
+ - title: Tahák na příkazovou řádku
+ url: https://example.com/tahak.pdf
+ type: cheatsheet
+ - title: Domácí projekty (PDF)
+ url: https://example.com/ukol.pdf
+ type: homework
+
Třetí druh se definuje stejně jako druhý, jen se do klíče url dá hodnota null.
+Poslední věc, která jde definovat u materiálů, jsou proměné, pomocí klíče vars.
+Definují se stejně jako u celého kurzu, ale mají účinek jen pro specifický materiál.
+Například takhle:
+plan:
+- slug: first-lesson
+ title: Název první lekce
+ date: 2018-03-07
+ materials:
+ - lesson: beginners/install
+ vars:
+ bonus: true
+
Převzetí lekce
+Lekci převezmeš nastavením klíče base na identifikátor (slug) lekce z kanonického kurzu (viz soubor info.yml ve složce toho kurzu).
+Takto převzaná lekce si vezme z kanonického kurzu název i materiály.
+Lze to třeba i jen takto:
+plan:
+- base: install
+ date: 2018-03-07
+- base: hello
+ date: 2018-03-14
+ time:
+ start: '18:00'
+ end: '20:00'
+
Nicméně můžeš ale i u převzatých kurzů změnit seznam materiálů, pomocí seznamu hodnot materials.
+Můžeš si nadefinovat úplně nový seznam materiálů (stejně jako výše) nebo můžeš použít hodnotu +merge, které na dané místo v seznamu materiálů vloží všechny materiály z odvozované lekce.
+To se hodí, pokud třeba jen potřebuješ přidat něco před nebo za materiály z kanonického kurzu.
+Použití vypadá následovně:
+plan:
+- base: install
+ date: 2018-03-07
+ materials:
+ - title: Úvodní prezentace
+ url: https://example.com/uvod.pdf
+ - +merge
+ - title: Domácí projekty (PDF)
+ url: https://example.com/ukol.pdf
+ type: homework
+
Úplně nový plán
+Pokud chceš vytvořit úplně nový plán, můžeš se řídit stejným postupem jako výše, jen nevyplňuj klíč derives a nevyužívej způsob definování přes lekci base.
+Otestování vlastního kurzu
+Po vytvoření souboru info.yml s povinnými položkami se můžeš konečně podívat na to, jak tvůj kurz bude vypadat.
+Podle instrukcí z předchozí části manuálu si spusť Nauč se v Python režimu serve.
+Otevři si adresu, kterou ti příkaz napíše, a odnaviguj se do části s kurzy.
+Pokud se stránka s kurzy nevykreslí, tak uvidíš Python vyjímku, která ti může pomoct, ale také může být pěkne matoucí.
+Nejprve si zkontroluj, jeslti jsi vážně vyplnil/a všechny povinné údaje.
+Jestli si myslíš, že ano, tak se nám ozvi přes issues na našem GitHubu a my ti rádi pomůžeme.
+V opačném případě si rozklikni svůj kurz.
+Pokud se ti nevykreslí detail kurzu, nejspíš jsi udělal/a nějakou chybu v definici lekcí nebo materiálů – zkontroluj si, jestli například nemáš dvě lekce se stejným identifikátorem, jestli není překlep v nějakém klíčí a jestli například neodkazuješ na materiál, který neexistuje.
+Dále si pak můžeš proklikat všechny jednotlivé materiály, jestli vše funguje a vypadá jak má.
+Jako další test může posloužit druhý režim spuštění Nauč se Python (freeze), který projde všechny stránky, jestli fungují.
+Upravování a vytváření materiálů
+Na závěr této části ještě trochu k materiálům.
+Jak bylo zmíněno výše, obsah materiálů je definován ve složce lessons.
+Kromě toho, že si můžeš sestavit vlastní kurz, můžeš si i upravit materiály, které využíváš, nebo si napsat úplně nové.
+Většina materiálů je napsaná v formátu Markdown a pár je napsaných v Jupyter Noteboocích.
+Upravování je jednoduché, stačí se podívat do složky s daným specifický materiálem a upravit, co je potřeba, v souboru s obsahem.
+Vytváření je trošku složitější v tom, že člověk musí vybrat správnou kolekci a název lekce a pak vytvořit ve složce kromě obsahu i soubor informacích o materiálech.
+Soubor se znovu jmenuje info.yml a má povinné tři údaje, title, style a license:
+
+title nastavuje název,
+style může být md nebo ipynb podle toho, jaký formát bude mít text,
+license nastavuje licenci, pod kterou materiály píšeš – identifikátor ze složky licenses: doporučujeme použít cc-by-sa-40.
+
+Dále má soubor nepovinné položky, první attributions – buď jednoduchý text, nebo seznam textů s informacemi o tom, kdo a proč materiál napsal.
+Nakonec lze použít jinou licenci na ukázky kódu pomocí license_code: doporučujeme použít cc0.
+Obecně je dobrý nápad se při psaní materiálů inspirovat již existujícími řešeními v ostatních materiálech a přebírat jejich styl a způsoby formátování.
+
\ No newline at end of file
diff --git a/meta/local-run/info.yml b/meta/local-run/info.yml
new file mode 100644
index 00000000..08e7db8c
--- /dev/null
+++ b/meta/local-run/info.yml
@@ -0,0 +1,35 @@
+title:
+subtitle:
+time: 18:00–20:00
+default_time:
+ start: '18:00'
+ end: '20:00'
+place:
+description:
+long_description: |
+ Delší popisek
+derives: pyladies
+vars:
+ pyladies: true
+ coach-present: true
+plan:
+- base: install
+ date: 2018-03-07
+ materials:
+ - title: Úvodní prezentace
+ url: http://example.com/prezentace.pdf
+ - +merge
+ - title: Domácí úkoly
+ url: http://example.com/domaci_ukol.pdf
+ type: homework
+- title: Procvičování a soubory
+ date: 2018-03-14
+ slug: exercises
+ time:
+ start: '19:00'
+ end: '21:00'
+ materials:
+ - title: Procvičíme si vše, co jsme se naučily
+ url: null
+ type: special
+ - lesson: beginners/files
diff --git a/meta/submitting-a-run/index.html b/meta/submitting-a-run/index.html
new file mode 100644
index 00000000..10ac08f7
--- /dev/null
+++ b/meta/submitting-a-run/index.html
@@ -0,0 +1,71 @@
+Přidání kurzu na Nauč se Python
+Když už máme nadefinováný vlastní kurz, zbývá nám jen ho dostat na naucse.python.cz.
+Budeme k tomu potřebovat jen pár příkazu v Gitu a trochu trpělivosti.
+Nahrání do vlastního forku
+První věc, kterou budeš potřebovat, je vlastní účet na GitHubu.
+Přihlaš se na GitHub a vytvoř „fork” repozitáře pyvec/naucse.python.cz.
+Na stránce repozitáře vpravo nahoře na to je tlačítko Fork.
+
+

+
Jsi-li na GitHubu v nějaké organizaci (např. PyLadiesCZ), můžeš vybrat,
+jestli fork bude pod tvým účtem nebo pod organizací.
+Děláš-li kurz pro organizaci, použij tu,
+abyste do materiálů mohli přispívat všichni.
+Jinak udělej kurz pod vlastním účtem.
+Vytvoření chvilku trvá.
+To, že je fork vytvořen, poznáš tak, že tě GitHub přesměruje na stránku, která bude skoro stejná, ale v hlavičce bude jiné uživatelské jméno (tvoje nebo tvé
+organizace) a pod tím text forked from pyvec/naucse.python.cz.
+Tvůj fork si teď potřebuješ přidat do lokálního repozitáře jako referenci, abys tam pak mohl/a poslat svůj kurz.
+To uděláš pomocí příkazu (nahraď obě uzivatelskejmeno za uživatelské jméno,
+pod kterým fork je):
+$ git remote add uzivatelskejmeno https://github.com/uzivatelskejmeno/naucse.python.cz.git
+
Dále potřebuješ vytvořit commit se svým kurzem a případně se změnami v materiálech.
+Je dobré změny dělat v zvláštní větvi, ne v master.
+Vymysli si název větve (např. podzim-2016) a pusť příkazy
+$ git branch nazevvetve
+$ git checkout nazevvetve
+
Jak vytvořit commit, se dozvíš například v návodu na používání Gitu.
+Více o větvích se můžeš dozvědět v návodu na větvení v Gitu.
+Svůj commit teď potřebuješ dostat do svého forku na GitHubu.
+To uděláš příkazem (uzivatelskejmeno nahraď za uživatelské jméno, pod kterým fork
+je):
+$ git push uzivatelskejmeno
+
Informace o forku pro Nauč se Python
+Teď potřebuješ dostat informaci o tvém forku do základního repozitáře.
+To se dělá pomocí souboru link.yml, se kterým se udělá Pull Request do základního repozitáře.
+Nejdřív si vytvoř novou větev odvozenou od původního repozitáře, ve které vytvoříš soubor link.yml.
+To uděláš tímto příkazem (pridanikurzu můžeš změnit, je to název nové větve):
+$ git checkout -b pridanikurzu origin/master
+
Možná sis všiml/a, že tvoje změny jsou najednou pryč, ale neboj, ony jsou uloženy na tvém počítači i na GitHubu, jen zrovna nejsou vidět.
+Teď potřebuješ vytvořit stejnou složku jako jsi vytvořil/a pro soubor info.yml – musí se jmenovat úplně stejně.
+V té složce vytvoř soubor, který se tentokrát bude jmenovat link.yml.
+Bude zase ve formátu YAML, ale tentokrát bude jednoduchý.
+Jedinou povinou informací je klíč repo, do kterého musíš dát odkaz na tvůj fork.
+Jméno větve pak napiš do klíče branch.
+Pozor, jedná se o větev s kurzem, ne o větev, ze které kurz přidáváš na Nauč se Python (tedy ne pridanikurzu z příkladu výše).
+Výsledný soubor pak vypadá následovně:
+repo: https://github.com/uzivatelskejmeno/naucse.python.cz.git
+branch: nazevvetve
+
Vytvoř s tímto souborem (a jen tímto souborem) commit a zase odešli změnu na GitHub.
+$ git push uzivatelskejmeno
+
Teď už potřebuješ udělat Pull Request (dále jen jako PR) se souborem link.yml.
+Jak udělat PR je popsáno v návodu na používání Gitu.
+Ideálně do popisku napiš, kdo jsi a co organizuješ za kurz, ať to správci nemusí zjišťovat například z popisku v info.yml.
+Po tom, co správci PR schválí a sloučí tvoje změny do základního repozitáře, stačí počkat pár minut a tvůj kurz se objeví na naucse.python.cz.
+Upravování kurzu
+Pokud budeš chtít na svém kurzu něco změnit, musíš se nejdřív zpátky přepnout do větve, ve které ten kurz je.
+To uděláš následujícím příkazem.
+nazevvetve nahraď za větev, ve které kurz máš.
+$ git checkout nazevvetve
+
S každou změnou pak musíš udělat commit a odeslat commit na GitHub.
+Už naprosto poslední věc, kterou je potřeba zařídit, je aby se změny ve tvém kurzu u tebe ve forku projevily na Nauč se.
+To se dělá pomocí tzv. webhooků, webových adres, které reagují na nějaké akce.
+Musíš tedy nastavit svůj fork, aby posílal akce na webhook, který vyvolá nové nasazení webové stránky naucse.python.cz.
+Pro instalaci webhooků máme speciální aplikaci, která je umí sama nastavit.
+Běží na adrese hooks.nauc.se.
+Když se v té aplikaci přihlásíš, uvidíš tam svůj fork repozitáře naucse.python.cz (a všechny ostatní forky Nauč se, do kterých máš přístup).
+Poté už jen stačí kliknout na tlačítko Aktivovat u správného repozitáře a webhook se nainstaluje.
+A to je všechno! Přidal/a jsi kurz na Nauč se Python!
+Pokud to umíš a chceš, můžeš si webhook nainstalovat sám/sama manuálně.
+Adresa webhooku je https://hooks.nauc.se/hooks/push, je potřeba Content-Type application/json a secret není potřeba zadávat.
+
\ No newline at end of file
diff --git a/meta/submitting-a-run/naucse_fork.png b/meta/submitting-a-run/naucse_fork.png
new file mode 100644
index 0000000000000000000000000000000000000000..cfdfb521cf3a04d9d6cfd9fd95c48ba3dd230709
GIT binary patch
literal 49953
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