diff --git a/lessons/beginners/cmdline-lin/index.html b/lessons/beginners/cmdline-lin/index.html new file mode 100644 index 0000000000..402787990c --- /dev/null +++ b/lessons/beginners/cmdline-lin/index.html @@ -0,0 +1,245 @@ +{% extends 'templates/_base.html' %} + +{% block content %} +
+
+
+

Příkazová řádka

+

+ Nejdříve musíme otevřít příkazovou řádku – to černé okýnko, + které programátoři používají na zadávání příkazů. + Na první pohled může vypadat nepřirozeně, ale dá se na ni zvyknout :) +

+

+ Příkazová řádka + (respektive program, kterému se říká i konzole či terminál; + anglicky command line, console, terminal) + se na různých systémech otevírá různě: +

+
    +
  • Linux (KDE): Hlavní Menu → hledat Konsole
  • +
  • Linux (Gnome): Super → hledat Terminál
  • +
  • Mac OS X (en): Applications → Utilities → Terminal
  • +
+

+ Nevíš-li si rady, zkus buď googlit, nebo se jednoduše zeptat + (na sraze kouče, jinak e-mailem). +

+

+ Po otevření konzole tě uvítá řádek, + kterým počítač vybízí k zadání příkazu. + Bude končit znakem $, + před nímž mohou být ještě další informace: +

+
+$
+
+
+
+
+
+

První příkaz

+ Začneme jednoduchým příkazem. + Napiš whoami (z angl. who am I? – kdo jsem?) + a stiskni Enter. + Objeví se přihlašovací jméno. U mě to vypadá takhle: +
+$ whoami
+helena
+
+
+
+
+ Znak $ je v ukázce jen proto, + aby bylo jasné že zadáváme příkaz do příkazové řádky. + Vypíše ho sám počítač (většinou ještě s něčím před ním), + takže ho nepiš sama! Zadej jen whoami a Enter. +
+
+ Stejně tak počítač sám vypíše přihlašovací jméno. +
+
+
+
+
+

Aktuální adresář

+ Příkazová řádka pracuje vždy v nějakém adresáři neboli složce + (angl. directory, folder). + Ve kterém adresáři zrovna je, to nám poví příkaz pwd + (z angl. print working directory – vypiš pracovní adresář). +
+$ pwd
+/home/helena/
+
+
+
+ Aktuální adresář se většinou ukazuje před znakem + $, ale je dobré pwd znát, + kdyby ses náhodou ztratila. +
+
+
+
+

Co v tom adresáři je?

+ Příkaz ls (z angl. list – vyjmenovat; + nám vypíše, co aktuální adresář obsahuje – všechny soubory, + včetně podadresářů, které se v aktuálním adresáři nacházejí. +
+$ ls
+Applications
+Desktop
+Downloads
+Music
+...
+
+
+
+
+
+

Změna aktuálního adresáře

+ Aktuální adresář se dá změnit pomocí příkazu cd + (z angl. change directory – změnit adresář). + Za cd se píše jméno adresáře, + kam chceme přejít – pokud máš adresář Desktop nebo Plocha, + přejdi tam. Pak nezapomeň ověřit, že jsi na správném místě. +
+$ cd Desktop
+
+$ pwd
+/home/helena/Desktop
+
+
+ pozn. Unix rozeznává u adresářů a souborů velikost písmen: + Desktop a desktop není to samé. +
+
+
+
+
+

Vytvoření adresáře

+ Co takhle si vytvořit adresář na PyLadies? + To se dělá příkazem mkdir + (z angl. make directory – vytvořit adresář). +
+$ mkdir pyladies
+
+
+
+
+
+

Úkol

+ Zkus v nově vytvořeném adresáři pyladies + vytvořit adresář test a zkontrolovat, + že se opravdu vytvořil. +
+
+ Budou se hodit příkazy cd, mkdir, + či ls. +
+
+
+
+

Řešení

+
+$ cd pyladies
+$ mkdir test
+$ ls
+test
+
+
+
+
+
+

Úklid

+ Teď vytvořené adresáře zase smažeme. + Nemůžeme ale smazat adresář, ve kterém jsme, + takže se vrátíme na Desktop. + Nadřazený adresář (ten, který obsahuje ten aktuální), + se značí dvěma tečkami: +
+$ cd ..
+$ pwd
+/home/helena/Desktop
+
+
+
+ A nakonec smažeme vytvořený adresář pyladies. + K tomu použijeme příkaz rmdir + (z angl. remove directory – odstraň adresář). + Pozor, příkazová řádka nepoužívá odpadkový koš! + Všechno se nadobro smaže, takže si dobře překontroluj, že mažeš správný adresář. +
+$ pwd
+/home/helena/Desktop
+$ rm -rv pyladies
+removed directory: ‘pyladies’
+
+
+
+
+
+

Konec

+ A to je vše! Můžeš příkazovou řádku zavřít. + To se dělá příkazem exit. +
+$ exit
+
+
+
+
+
+

Shrnutí

+ Tady je tabulka základních příkazů. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PříkazPopisPříklad
exitukončeníexit
cdzměna adresářecd test
lsvýpis adresářels
cpzkopírování souborucp /home/helena/test/test.txt /home/helena/test/kopie_test.txt
mvpřesun (nebo přejmenování) souborumv /home/helena/test/a.txt /home/helena/test/b.txt
mkdirvytvoření adresářemkdir test
rmsmazání souborurm test.txt
+

+ Příkazů existuje jich samozřejmě daleko víc, + pro dnešek nám ale budou stačit tyhle. + Jen jeden ještě přidáme – příkaz python. +

+

Nejdřív ho ale musíme nainstalovat.

+
+
+
+ +{% endblock %} diff --git a/lessons/beginners/cmdline-lin/info.yml b/lessons/beginners/cmdline-lin/info.yml new file mode 100644 index 0000000000..f66bdbed26 --- /dev/null +++ b/lessons/beginners/cmdline-lin/info.yml @@ -0,0 +1,3 @@ +course: Pyladies +title: Příkazová řádka na Linuxu +style: html diff --git a/lessons/beginners/cmdline-win/index.html b/lessons/beginners/cmdline-win/index.html new file mode 100644 index 0000000000..7912fd8417 --- /dev/null +++ b/lessons/beginners/cmdline-win/index.html @@ -0,0 +1,250 @@ +{% extends 'templates/_base.html' %} + +{% block content %} +
+
+
+

Příkazová řádka

+

+ Nejdříve musíme otevřít příkazovou řádku – to černé okýnko, + které programátoři používají na zadávání příkazů. + Na první pohled může vypadat nepřirozeně, ale dá se na ni zvyknout :) +

+

+ Příkazová řádka + (respektive program, kterému se říká i konzole či terminál; + anglicky command line, console, terminal) + se otevírá takto: +

+
    +
  • Windows (cs): Start → Všechny programy → Příslušenství → Příkazový řádek
  • +
  • Windows (en): Start → All Programs → Accessories → Command Prompt
  • +
+

+ Nevíš-li si rady, zkus buď googlit, nebo se jednoduše zeptat + (na sraze kouče, jinak e-mailem). +

+

+ Po otevření konzole tě uvítá řádek, + kterým počítač vybízí k zadání příkazu. + Bude končit znakem >, + před nímž mohou být ještě další informace: +

+
+>
+
+
+
+
+
+

První příkaz

+ Začneme jednoduchým příkazem. + Napiš whoami (z angl. who am I? – kdo jsem?) + a stiskni Enter. + Objeví se přihlašovací jméno. U mě to vypadá takhle: +
+> whoami
+helena
+
+
+
+
+ Znak > + je v ukázce jen proto, aby bylo jasné že zadáváme příkaz do příkazové + řádky. + Vypíše ho sám počítač (většinou ještě s něčím před ním), + takže ho nepiš sama! Zadej jen whoami a Enter. +
+
+ Stejně tak počítač sám vypíše přihlašovací jméno. +
+
+
+
+
+

Aktuální adresář

+ Příkazová řádka pracuje vždy v nějakém adresáři neboli složce + (angl. directory, folder). + Ve kterém adresáři zrovna je, to nám poví příkaz cd + (z angl. current directory – aktuální adresář). +
+> cd
+C:\Users\helena
+
+
+
+ Aktuální adresář se většinou ukazuje před znakem + >, + ale je dobré cd znát, + kdyby ses náhodou ztratila. +
+
+
+
+

Co v tom adresáři je?

+ Příkaz dir + (z angl. directory – adresář) + nám vypíše, co aktuální adresář obsahuje – všechny soubory, + včetně podadresářů, které se v aktuálním adresáři nacházejí. +
+> dir
+Directory of C:\Users\helena
+05/08/2014 07:28 PM <DIR>      Applications
+05/08/2014 07:28 PM <DIR>      Desktop
+05/08/2014 07:28 PM <DIR>      Downloads
+05/08/2014 07:28 PM <DIR>      Music
+...
+
+
+
+
+
+

Změna aktuálního adresáře

+ Aktuální adresář se dá změnit pomocí příkazu cd + (z angl. change directory – změnit adresář). + Za cd se píše jméno adresáře, + kam chceme přejít – pokud máš adresář Desktop nebo Plocha, + přejdi tam. Pak nezapomeň ověřit, že jsi na správném místě. + (cd jsme už viděly; ale předtím jsme nepsaly nic za něj) +
+> cd Desktop
+
+> cd
+C:\Users\helena\Desktop
+
+
+
+ Pokud přecházíš do adresáře na jiném disku, + například D: místo C:, je potřeba kromě cd + zadat jméno disku jako zvláštní příkaz (např. D:). +
+
+
+
+

Vytvoření adresáře

+ Co takhle si vytvořit adresář na PyLadies? + To se dělá příkazem mkdir + (z angl. make directory – vytvořit adresář). +
+> mkdir pyladies
+
+
+
+
+
+

Úkol

+ Zkus v nově vytvořeném adresáři pyladies + vytvořit adresář test + a zkontrolovat, že se opravdu vytvořil. +
+
+ Budou se hodit příkazy cd, mkdir, + či dir. +
+
+
+
+

Řešení

+
+> cd pyladies
+> mkdir test
+> dir
+05/08/2014 07:28 PM <DIR>      test
+
+
+
+
+
+

Úklid

+ Teď vytvořené adresáře zase smažeme. + Nemůžeme ale smazat adresář, ve kterém jsme, + takže se vrátíme na Desktop. + Nadřazený adresář (ten, který obsahuje ten aktuální), + se značí dvěma tečkami: +
+> cd ..
+> cd
+/home/helena/Desktop
+
+
+
+ A nakonec smažeme vytvořený adresář pyladies. + K tomu použijeme příkaz rmdir + (z angl. remove directory – odstraň adresář). + Pozor, příkazová řádka nepoužívá odpadkový koš! + Všechno se nadobro smaže, takže si dobře překontroluj, že mažeš správný adresář. +
+> cd
+/home/helena/Desktop
+> rmdir /S pyladies
+pyladies, Are you sure <Y/N>? Y
+
+
+
+
+
+

Konec

+ A to je vše! Můžeš příkazovou řádku zavřít. + To se dělá příkazem exit. +
+> exit
+
+
+
+
+
+

Shrnutí

+ Tady je tabulka základních příkazů. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PříkazPopisPříklad
exitukončeníexit
cdzměna adresářecd test
dirvýpis adresáředir
copyzkopírování souborucopy /home/helena/test/test.txt /home/helena/test/kopie_test.txt
movepřesun (nebo přejmenování) souborumove /home/helena/test/a.txt /home/helena/test/b.txt
mkdirvytvoření adresářemkdir test
delsmazání souborudel test.txt
+

+ Příkazů existuje jich samozřejmě daleko víc, + pro dnešek nám ale budou stačit tyhle. + Jen jeden ještě přidáme – příkaz python. +

+

Nejdřív ho ale musíme nainstalovat.

+
+
+
+ +{% endblock %} diff --git a/lessons/beginners/cmdline-win/info.yml b/lessons/beginners/cmdline-win/info.yml new file mode 100644 index 0000000000..8bc5a5925b --- /dev/null +++ b/lessons/beginners/cmdline-win/info.yml @@ -0,0 +1,3 @@ +course: Pyladies +title: Příkazová řádka ve Windows +style: html diff --git a/naucse/routes.py b/naucse/routes.py index 47520c3f42..8f8989a77f 100644 --- a/naucse/routes.py +++ b/naucse/routes.py @@ -56,7 +56,7 @@ def courses(): @app.route('/lessons//static/') def lesson_static(lesson, path): """Static files in lessons.""" - directory = lesson.path + directory = str(lesson.path) filename = os.path.join('static', path) return send_from_directory(directory, filename) diff --git a/naucse/static/css/bootstrap.css b/naucse/static/css/bootstrap.css index 9812a40601..b744b048cd 100644 --- a/naucse/static/css/bootstrap.css +++ b/naucse/static/css/bootstrap.css @@ -8,7 +8,7 @@ -ms-text-size-adjust:100% } -body{ +body { margin:0 } @@ -1405,7 +1405,7 @@ a.bg-danger:hover{ .page-header{ padding-bottom:9px; - margin:40px 0 20px; +/* margin:40px 0 20px;*/ border-bottom:1px solid #eee } @@ -1615,6 +1615,7 @@ pre code{ .container-fluid{ padding-right:15px; padding-left:15px; + width: 930px; margin-right:auto; margin-left:auto } @@ -4554,114 +4555,6 @@ textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon color:#ccc } -.navbar-inverse{ - background-color:#222; - border-color:#080808 -} - -.navbar-inverse .navbar-brand{ - color:#777 -} - -.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{ - color:#fff; - background-color:transparent -} - -.navbar-inverse .navbar-text{ - color:#777 -} - -.navbar-inverse .navbar-nav>li>a{ - color:#777 -} - -.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{ - color:#fff; - background-color:transparent -} - -.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{ - color:#fff; - background-color:#080808 -} - -.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{ - color:#444; - background-color:transparent -} - -.navbar-inverse .navbar-toggle{ - border-color:#333 -} - -.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{ - background-color:#333 -} - -.navbar-inverse .navbar-toggle .icon-bar{ - background-color:#fff -} - -.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{ - border-color:#101010 -} - -.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{ - color:#fff; - background-color:#080808 -} - -@media (max-width:767px){ - .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{ - border-color:#080808 - } - - .navbar-inverse .navbar-nav .open .dropdown-menu .divider{ - background-color:#080808 - } - - .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{ - color:#777 - } - - .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{ - color:#fff; - background-color:transparent - } - - .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{ - color:#fff; - background-color:#080808 - } - - .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{ - color:#444; - background-color:transparent - } - -} - -.navbar-inverse .navbar-link{ - color:#777 -} - -.navbar-inverse .navbar-link:hover{ - color:#fff -} - -.navbar-inverse .btn-link{ - color:#777 -} - -.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{ - color:#fff -} - -.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{ - color:#444 -} - .breadcrumb{ padding:8px 15px; margin-bottom:20px; diff --git a/naucse/static/css/index.css b/naucse/static/css/index.css new file mode 100644 index 0000000000..33e7093e32 --- /dev/null +++ b/naucse/static/css/index.css @@ -0,0 +1,90 @@ +.small-space { + margin-bottom: 40px; +} + +.space { + margin-bottom: 60px; +} + +.big-space { + margin-bottom: 100px; +} + +/**********************/ + +.btn { + border-radius: 0; + margin-bottom: 10px; +} + +.btn-lg { + font-size: 32px; +} + +.blink { + box-shadow: inset 0 0 0 300px rgba(0,0,0,.6); +} + +.blink:hover { + box-shadow: inset 0 0 0 300px rgba(0,0,0,.4); +} + +.card-img { + min-width: 190px; + width: 100%; +} + +.card-inverse .card-blockquote .blockquote-footer, .card-inverse .card-link, .card-inverse .card-subtitle, .card-inverse .card-text { + color: rgba(255,255,255,.85); +} + +.center { + text-align: center; +} +.course { + min-height: 160px; +} + +.header { + background-color: #fff; +} + +.menu li h1 { + color: #000; +} + +.menu li h2 { + color: #000; +} + +.motivation div { + box-shadow: inset 0 0 0 1000px rgba(0,0,0,.5); + padding: 29% 21%; +} + +.motivation img { + border: 0px; +} + +.responsive-text { + font-size: 2vw; + font-weight: 500; +} + +.topic { + height: 70px; + text-align: center; + color: #fff; +} + +.color1 { + background-color: #3fb0ac; +} + +.color2 { + background-color: #173e43; +} + +.page a { + color: #000; +} diff --git a/naucse/static/css/nausce.css b/naucse/static/css/nausce.css index ca367e8e76..676c679893 100644 --- a/naucse/static/css/nausce.css +++ b/naucse/static/css/nausce.css @@ -1,215 +1,128 @@ - -/* Taken from http://getbootstrap.com/examples/jumbotron-narrow/ */ - -/* Space out content a bit */ -body { - padding-top: 20px; - padding-bottom: 20px; -} - -/* Everything but the jumbotron gets side spacing for mobile first views */ -.header, -.marketing, -.footer { - padding-right: 15px; - padding-left: 15px; -} - -/* Custom page header */ -.header { - border-bottom: 1px solid #e5e5e5; -} -/* Make the masthead heading the same height as the navigation */ -.header h3 { - padding-bottom: 19px; - margin-top: 0; - margin-bottom: 0; - line-height: 40px; -} - -/* Custom page footer */ -.footer { - padding-top: 19px; - color: #777; - border-top: 1px solid #e5e5e5; - margin-top: 1em; -} - -/* Customize container */ -@media (min-width: 968px) { - .container { - max-width: 930px; - } -} -.container-narrow > hr { - margin: 30px 0; -} - -/* Main marketing message and sign up button */ -.jumbotron { - text-align: center; - border-bottom: 1px solid #e5e5e5; -} -.jumbotron .btn { - padding: 14px 24px; - font-size: 21px; -} - -/* Supporting marketing content */ -.marketing { - margin: 40px 0; -} -.marketing p + h4 { - margin-top: 28px; +html { + box-sizing: border-box; + height: 100%; } -/* Responsive: Portrait tablets and up */ -@media screen and (min-width: 768px) { - /* Remove the padding we set earlier */ - .header, - .marketing, - .footer { - padding-right: 0; - padding-left: 0; - } - /* Space out the masthead */ - .header { - margin-bottom: 30px; - } - /* Remove the bottom border on the jumbotron for visual effect */ - .jumbotron { - border-bottom: 0; - } +*, +*:before, +*:after { + box-sizing: inherit; } -/* Custom PyLadies styles */ - -@import url("http://fonts.googleapis.com/css?family=Bree+Serif|Oxygen&subset=latin,latin-ext"); - body { - font-family: Oxygen, sans-serif; + font-family: serif; + margin: 0px; + background-color: #fae596; + position: relative; + padding-bottom: 6rem; + min-height: 100%; } h1, h2, h3, h4, h5, h6 { - font-family: "Bree Serif", serif; + font-family: sans-serif; } -.container { - text-align: left; +h2 { + padding-top: 32px; } -a { - color: #288f58; -} - -a:hover, a:focus { - color: #185434; -} - -.jumbotron h1 { - font-size: 200%; - font-weight: bold; - margin-bottom: 1em; - margin-top: 0.5em; -} - -.jumbotron small { - font-size: 50%; -} - -.btn-success, .btn-success:hover, .btn-success:focus { - background-color: #185434; - border-color: #185434; -} - -.jumbotron-secret { - background: none; -} -.petr { - width: 20%; - margin: 0 1em 1em 0; -} - -.logo { - width: 80%; - margin-left: auto; - margin-right: auto; -} +/*************************/ -.stuff { - text-align: left; -} - -.homepage .banner-photo-container { - border-style: none; - padding: 0; - margin: 2em 0; - text-align: center; - background-color: black; +.header { + font-family: sans-serif; + font-size: 18px; + background-color: #3fb0ac; } -.homepage .banner-photo-container img { - width: auto; - max-width: 100%; - margin: 0; +.menu { + list-style-type: none; + padding: 15px 0px 10px 0px; + overflow: hidden; + margin-bottom: 0; } -.note { - margin: 1em 0 1em 4em; - font-style: italic; +.menu li a { + display: block; + text-decoration: none; + color: #fff; } -.plhome { - background-color: #cef; - display: inline-block; - color: inherit; +.logo h1 { + float: left; + font-size: 24px; + margin-top: 26px; } -.comment { - color: #888; +.menu-link h2 { + font-size: 16px; + font-weight: bold; + float: right; + margin-top: 24px; + padding: 10px; } -.no-reveal section { - margin-top: 2em; +a h2:hover { + color: #D1F6F5; } -img.photo { - max-width: 100%; - text-align: center; -} -details { - background-color: #EEE; - box-shadow: -750px 0 0 #EEE, - 750px 0 0 #EEE, - 0 0 0 #000; -} +/*************************/ -details.detail-not-expanded { - background-color: inherit; - box-shadow: none; +.page { + padding: 20px; + margin: 0 auto; + margin-bottom: 140px; } -.alt-section { - background-color: #EEE; - padding-bottom: 1em; - box-shadow: -750px 0 0 #EEE, - 750px 0 0 #EEE, - 0 0 0 #000; +.page a { + color: #239995; } -@media print { - .container { - width: 100%; - } +.page a:hover { + color: #026C68; + text-decoration: none; } -span.align-right { - float: right; -} +/*************************/ -span.align-center { - text-align: center; +.footer { + background-color: #fff; + border-top: solid 1px #000; + font-family: sans-serif; + font-size: 12px; + padding-bottom: 20px; + position: absolute; + right: 0; + bottom: 0; + left: 0; +} + +/*************************/ + +pre { + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; + color: #333; + display: block; + font-family: monospace; + font-size: 13px; + line-height: 1.42857143; + margin: 0 0 10px; + overflow: auto; + padding: 9.5px; + page-break-inside: avoid; + word-break: break-all; + word-wrap: break-word; +} + +code { + border-radius: 4px; + background-color: #f9f2f4; + color: #c7254e; + font-family: monospace; + font-size: 90%; + padding: 2px 4px; + white-space: pre-wrap; } - diff --git a/naucse/static/pycon2016cz.png b/naucse/static/pycon2016cz.png new file mode 100644 index 0000000000..060424166a Binary files /dev/null and b/naucse/static/pycon2016cz.png differ diff --git a/naucse/templates/_base.html b/naucse/templates/_base.html index 03e96cf386..b7a83c4004 100644 --- a/naucse/templates/_base.html +++ b/naucse/templates/_base.html @@ -1,44 +1,73 @@ - + + - {% if title is defined %} - {{ title }} - {% else %} - Nauč se Python - {% endif %} - + {% if title is defined %} + {{ title }} + {% else %} + Nauč se Python + {% endif %} - + + {% block extra_links %} + {% endblock extra_links%} + -
-
-

Nauč se Python

-
- -
-

Tato stránka je momentálně v rekonstrukci. Využijte raději studijní materiály k začátečnickému kurzu PyLadies. Pokud se chcete podílet na vylepšení těchto stránek, navštivte repozitář na GitHubu.

-
+ -
- {% block content %} - {% endblock %} -
- + {% block content %} + {% endblock %} - + + + + + + + diff --git a/naucse/templates/_lessons_list.html b/naucse/templates/_lessons_list.html index 51c4c7aaad..d8be6a3d50 100644 --- a/naucse/templates/_lessons_list.html +++ b/naucse/templates/_lessons_list.html @@ -2,14 +2,16 @@ {% block content %} +
+
+ {% block headline %} {% endblock headline %} -
{% for session in plan.values() %} -
+

{% if session.date %} Lekce {{ loop.index }} - {{ session.title }} ({{ session.date }}) @@ -32,5 +34,6 @@

+
{% endblock content %} diff --git a/naucse/templates/course_list.html b/naucse/templates/course_list.html index f2cb7ae5cb..e3e60845f8 100644 --- a/naucse/templates/course_list.html +++ b/naucse/templates/course_list.html @@ -1,13 +1,15 @@ {% extends '_base.html' %} {% block content %} +
+
+

Momentálně jsou dostupné tyto kurzy:

-
{% for course in courses.values() %} -
+

{{ course.title }}

{{ course.description }}

@@ -15,5 +17,6 @@

{{ course.title }}

+
{% endblock %} diff --git a/naucse/templates/index.html b/naucse/templates/index.html index f10a2251a7..b186bd73b0 100644 --- a/naucse/templates/index.html +++ b/naucse/templates/index.html @@ -1,9 +1,92 @@ {% extends '_base.html' %} +{% block extra_links %} + +{% endblock extra_links%} + {% block content %} -

Vítejte na naucse.python.cz

- INFO
- ONLINE KURZY
- OFFLINE KURZY
+ +
+ Card image +
+

Nauč se Python, staň se superhrdinou nebo superhrdinkou a zachraň svět.
+ Python je moderní programovací jazyk. Je univerzální – pohání weby i rakety. + Dobře se čte a dá se velice rychle naučit.

+
+
+ +
+
+
+ Chci začít! +

Stačí umět klikat myší a psát na klávesnici. ;)

+
+ +
+
+ Pokračovat +

Umím programovat v jiném programovacím jazyce.

+
+ +
+ Pokračovat +

Už umím základy a chci se dozvědět něco víc.

+
+
+ +

Další témata

+ +
+
+
+

Git

+
+
+ +
+
+

Flask

+
+
+ +
+ +
+ +
+
+

Želva

+
+
+ +
+
+

...

+
+
+
+ +

Probíhající kurzy

+ +
+
{% endblock %} diff --git a/naucse/templates/lesson.html b/naucse/templates/lesson.html index c55560379a..902657f513 100644 --- a/naucse/templates/lesson.html +++ b/naucse/templates/lesson.html @@ -6,21 +6,25 @@ {% endif %} {% endblock style %} - {% block content %} -{{ content }} +
+
+ + {{ content }} -{% if prv is defined and prv != None %} - - ← {{ prv.title }} - -{% endif %} + {% if prv is defined and prv != None %} + + ← {{ prv.title }} + + {% endif %} -{% if nxt is defined and nxt != None %} - - {{ nxt.title }} → - -{% endif %} + {% if nxt is defined and nxt != None %} + + {{ nxt.title }} → + + {% endif %} +
+
{% endblock content %} diff --git a/naucse/templates/run_list.html b/naucse/templates/run_list.html index 79a76bf43a..5805b5b08c 100644 --- a/naucse/templates/run_list.html +++ b/naucse/templates/run_list.html @@ -1,15 +1,17 @@ {% extends '_base.html' %} {% block content %} +
+
+

Materiály právě probíhajících kurzů:

-
{% for year, run_year in run_years.items() %}

{{ year }}

{% for slug, run in run_year.runs.items() %} -
+

{{ run.title }}

{{ run.description }}

@@ -17,6 +19,7 @@

{{ run.title }}

{% endfor %}
-
+
+
{% endblock %}