Skip to content

Commit

Permalink
Merge pull request #483 from Czechitas-podklady-WEB/feature/prikazova…
Browse files Browse the repository at this point in the history
…-radka

Feature/prikazova radka
  • Loading branch information
FilipChalupa authored Sep 1, 2023
2 parents 1303ae2 + 8f6add1 commit c046cf4
Show file tree
Hide file tree
Showing 12 changed files with 113 additions and 247 deletions.
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: '3'
services:
kodim:
image: onset/kodimcz:2.0.0-beta.1
image: onset/kodimcz:2.0.0-beta.5
restart: always
ports:
- '3000:3000'
Expand Down
4 changes: 4 additions & 0 deletions zaklady-gitu/struktura-adresaru/cv-prikazova-radka.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Cvičení: Příkazová řádka

::exc[cvlekce/chat]
::exc[cvlekce/textovka]
3 changes: 0 additions & 3 deletions zaklady-gitu/struktura-adresaru/cv-textovka.md

This file was deleted.

11 changes: 11 additions & 0 deletions zaklady-gitu/struktura-adresaru/cvlekce/chat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: Chat
demand: 2
---

Napište ostatním zprávu do společného chatu a přečtěte si zprávy od ostatních.

1. Otevřete příkazovou řádku.
1. Příkazem `whoami` zjistěte, jak jste přihlášení.
1. Pomocí `npx @czechitas/chat send "Nějaká zpráva"` odešlete zprávu do společného chatu.
1. Pomocí `npx @czechitas/chat list` si zobrazte všechny zprávy v chatu a zkontrolujte, že je tam i ta vaše.
174 changes: 11 additions & 163 deletions zaklady-gitu/struktura-adresaru/cvlekce/textovka.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,169 +3,17 @@ title: Textovka
demand: 3
---

Pomocí příkazové řádky vytvořte hru podle následujícího scénáře. Nepoužívejte _VS Code_ ani aplikaci _Průzkumník_/_Finder_, pokud se vyloženě nezamotáte, ať si ovládání příkazové řádky osvojíte.
Zahrajte si na příkazové řádce textovou hru Vetřelec.

1. Kořenovou složku pro textovou hru příkazem `mkdir` vytvořte a pojmenujte `vetrelec` uvnitř složky, kde typicky zakládáte nové projekty.
1. Stáhněte si k sobě na disk soubory a složky s hrou uvnitř zipového souboru [vetrelec-main.zip](https://github.com/Czechitas-podklady-WEB/vetrelec/archive/refs/heads/main.zip).
1. Zip soubor rozbalte. V něm se ukrývá celá hra. Pozor ale, obsah nijak nezkoumejte.
1. **Odteď už jen na příkazové řádce**. Otevřete si příkazovou řádku a pomocí `cd` se přesuňte do složky `vetrelec-main`.
1. Pomocí `dir`/`ls` podle toho, jestli máte Windows nebo Mac či Linux, zkontrolujte, že je ve složce soubor `index.txt`.
1. Je možné, že ve složce `vetrelec-main` najdete další složku `vetrelec-main`. Pokud ano, přesuňte se do této vnořené složky, ve které by `index.txt` už měl snad být.
1. Vypište si obsah souboru `index.txt` pomocí `type`/`cat`.
1. V každém souboru je část příběhu a případně odkaz, kde najdete pokračování.
1. Zvolte si cestu, kterou se vydáte a pomocí `cd`, `type`/`cat` pokračujte dále.

1. Příkazem `cd` (možná opakovaným použitím) se přesuňte do složky `vetrelec`.
#### Bonus

1. V ní vytvořte soubor `index.md` s textem:

#### Cesta: `vetrelec/index.md`

```text
# Hra Vetřelec
Vítejte v naší zbrusu nové hře „Vetřelec“.
[Začít hrát](zacatek.md)
```

Připomeňte si příkaz `notepad` pro Windows nebo `touch` a `open` pro Mac z předchozí sekce.

1. Otevřete si ještě jedno okno terminálu (`cmd` ve Windows).

1. V prvním okně si pomocí `pwd` (na MacOS a Linuxu) nebo `cd` (Windows) vypište aktuální adresář, v novém okně se pomocí příkazu `cd` a cesty přesuňte do stejného adresáře. Pozor na to, pokud je v adresáři mezera (třeba ve jméně uživatele), musíte celou cestu dát do dvojitých uvozovek, třeba `cd "/Users/Eva Adamová/DAweb/vetrelec"`.

1. V druhém okně spusťte následující příkaz:

```sh
npx markserv index.md
```

Nastartuje se vám prohlížeč, ve kterém se zobrazí uvítací obrazovka vaší hry.

1. Ve složce `vetrelec` dále vytvořte soubor `zacatek.md` s textem:

#### Cesta: `vetrelec/zacatek.md`

```text
Ze sladkého spánku tě probudí podivný šramot. Zdá se, že se ozývá
z obýváku v přízemí. Tiše otevřeš dveře ložnice a pokradmu scházíš
schody dolů zkontrolovat situaci.
[Přejít na schodiště](obyvak/schodiste.md)
```

Zkuste v prohlížeči přejít na začátek hry.

1. Všimněte si, že text navádí hráče do podsložky `obyvak` se souborem `schodiste.md`. Vytvořte tuto složku a soubor s textem:

#### Cesta: `vetrelec/obyvak/schodiste.md`

```text
Když sejdeš do půlky schodů, skrze zábradlí zahlédneš postavu
v kapuci. Zloděj! Zdá se, že již spoustu cenných věcí stihl odnést.
Je třeba jednat rychle:
1. Vrhneš se do konfrontace se zlodějem
[Konfrontovat](konfrontace.md)
2. Vydáš se zpět do ložnice zavolat policii
[Zavolat Policii](../loznice/mobil.md)
```

V prohlížeči opět vyzkoušejte, že stránka funguje. Pokud upravíte aktuálně zobrazený soubor, v prohlížeči použijte F5 (refresh) pro znovunačtení stránky.

1. Tím textovka nekončí. Doplň další soubory podle následujícího klíče:

#### Cesta: `vetrelec/obyvak/konfrontace.md`

```text
Sebehneš zbytek schodů, ale v nervozitě a tmě nešikovně zakopneš
o křeslo. Zloděj se vyleká a přiskočí k vchodovým dveřím. Než se
naděješ, slyšíš, jak venku odjíždí auto s tvým majetkem.
```

#### Cesta: `vetrelec/loznice/mobil.md`

```text
Tiše vystoupáš schody zpět nahoru. Jenže ouha, tvůj mobilní telefon
leží na nočním stolku - vybitý. Nabíječku jsi samozřejmě zapomněl
dole v obýváku. V tom slyšíš na schodech kroky.
1. Rychle se schováš do šatní skříně
[Schovat se](skrin/ve-skrini.md)
2. Pohotově otevřeš okno a sešplháš před dům na ulici
[Sešplhat na ulici](../pred-domem/ulice.md)
```

1. Zkuste si textovku zahrát. Přesuňte se do kořenové složky `vetrelec` a otevřete soubor `zacatek.md`. Protože je hra ještě neúplná postupujte následovně:

1. Pokračujte na **schodiště**.
1. Dále **konfrontujte** zloděje.

### Bonus

1. Pro úplnost příběhu doplňte následující soubory:

#### Cesta: `vetrelec/loznice/skrin/ve-skrini.md`

```text
Škvírkou mezi dveřmi pozoruješ, jak lupič vstupuje
do ložnice. Co čert nechtěl, jde rovnou ke skříni.
1. Bereš do ruky dřevěné ramínko a rozhodneš se pro rychlou akci
[Akce s ramínkem](akce.md)
2. Strachy se ti sevřou půlky a strnule vyčkáváš svého osudu
[Odevzdat se osudu](osud.md)
```

#### Cesta: `vetrelec/loznice/skrin/akce.md`

```text
A válečným rykem a napřaženým raminkem vyrazíš ze skříně. Lupič
v úleku přepadne přes postel a zamotá se do prostěradla.
Vybíháš dolů po schodech a ven na ulici před dům.
[Vyběhnout na ulici](../../pred-domem/ulice.md)
```

#### Cesta: `vetrelec/loznice/skrin/osud.md`

```text
Lupič otevře skříň a vteřinu na sebe překvapeně hledíte. Kriminálník
je ovšem duchapřítomnější, zabouchne dveře skříně a zamkne je zvenku
klíčem, který trčel v zámku. Zamčený ve skříni slyšíš, jak za okny
lupič odjíždí do tmy s tvým majetkem.
```

#### Cesta: `vetrelec/pred-domem/ulice.md`

```text
Na ulici stojí lupičova škodovka s otevřeným kufrem.
1. Vydáš se k autu
[K autu](auto.md)
2. Běžíš po chodníku k sousedům
[K sousedům](sousedi.md)
```

#### Cesta: `vetrelec/pred-domem/auto.md`

```text
V lupičově autě najdeš klíčky nachystané přímo v zapalování a na sedadle,
hurá, lupičův mobil. Bereš klíče i mobil, přiskočíš za roh domu a točíš
tísňovou linku. Policie už je na cestě. Tvůj majetek je zachráněn.
```

#### Cesta: `vetrelec/pred-domem/sousedi.md`

```text
Zloděj vybíhá před dům a vidí tě, jak běžíš k vedlejšímu vchodu. Ryche
nasedne do auta a ujíždí pryč s tvým majetkem.
```

1. Zkuste si textovku znovu zahrát. Tentokrát volte další kroky podle sebe.
- Příběh má několik alternativních konců. Najdete je všechny?
30 changes: 4 additions & 26 deletions zaklady-gitu/struktura-adresaru/cvlekce/webova-textovka.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,22 @@ demand: 3

Hru z předchozího cvičení převeďte na webovou stránku.

1. Otevřete si složku `vetrelec` ve _VS Code_.
1. Otevřete si složku `vetrelec-main` ve _VS Code_.

1. Z jednotlivých textových souborů udělejte soubory HTML s klasickou HTML strukturou (bez `<script>` značky). Můžete začít tím, že všem postupně změníte příponu z `.md` na `.html`.

<!--
Pro hromadné přejmenování z příkazového řídku můžete použít následující příkaz. **Pozor, pomocí `pwd` si nejprve ověřte, že jste opravdu ve správném adresáři!** Skript se na nic neptá a projde všechny soubory s příponou `.md` v aktuálním adresáři a všech podadresářích a přejmenuje příponu na `.html`. Pokud byste ho spustili ve špatném adresáři, kde by také byly soubory `.md`, těžko to budete vracet zpátky.
##### Mac a Linux
```sh
find . -name "*.md" -exec bash -c 'mv "$1" "${1%.md}".html' - '{}' +
```
##### Windows
```sh
FOR /R %f IN (*.md) DO ren "%f" *.html
```
Jak dlouho byste přípony opravovali ručně? Na tom příkazovém řádku přeci jen něco je, že? 😉
-->

1. Přejmenujte `zacatek.html` v kořenové složce na `index.html`.
1. Z jednotlivých textových souborů udělejte soubory HTML s klasickou HTML strukturou (bez `<script>` značky). Můžete začít tím, že všem postupně změníte příponu z `.txt` na `.html`.

1. Z textových odkazů udělejte opravdové HTML odkazy ve formátu:

```html
<a href="cesta/soubor.html">přejít do koupelny</a>
```

1. Hru si zkuste zahrát.

1. Pusťte `npx serve` v kořenové složce `vetrelec`.
1. Pusťte `npx serve` v kořenové složce `vetrelec-main` a zkuste si hru zahrát.

### Bonus

1. Jednotlivým souborům přidejte nadpis `<h1>` s názvem místnosti/lokace.

1. Do kořenové složky přidejte soubor `styly.css`, ve kterém nastavte písmo `sans-serif` a maximální šířku prvku `body` na `40rem` s vystředěním na střed například přes `margin: 0 auto;`. Ve všech HTML souborech tyto styly nalinkujte.
1. Do kořenové složky přidejte soubor `styly.css`, ve kterém nastavte písmo `sans-serif` (bezpatkové) a maximální šířku prvku `body` na `40rem` s vystředěním na střed například přes `margin: 0 auto;`. Ve všech HTML souborech tyto styly nalinkujte.

1. Do kořenové složky přidejte podsložku `obrazky`. Do té stáhněte ilustrační obrázky k jednotlivým místnostem/lokacím z [unsplash.com](https://unsplash.com/). Obrázky přidejte pod nadpisy `<h1>`.
3 changes: 2 additions & 1 deletion zaklady-gitu/struktura-adresaru/entry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ title: Struktura adresářů
lead: Procvičíme si orientaci v adresářích a naučíme se základní práci s příkazovou řádkou.
sections:
- prikazova-radka
- slozitejsi-prikazy
- struktura-adresaru
- cv-textovka
- cv-prikazova-radka
- server
- cv-webova-textovka
- integrovany-terminal
Expand Down
10 changes: 0 additions & 10 deletions zaklady-gitu/struktura-adresaru/server.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,6 @@ Následující příkaz pro příkazovou řádku spustí na vašem počítači w
npx serve
```

Občas se program `npx` ještě dozeptá, jestli si do sebe může doinstalovat rozšiřující balíček `serve`. Otázku odsouhlasíte stisknutím klávesy :kbd[Enter].

```text
Need to install the following packages:
serve
Ok to proceed? (y)
```

::fig[npx serve]{src=assets/serve.png}

Server poté můžete navštívit na adrese [localhost:3000](http://localhost:3000) ve webovém prohlížeči.

Všimněte si názvu _localhost_, který slouží jako přezdívka vašeho počítače. Na server přes tuto adresu můžete přistoupit jen vy, je lokální/místní.
Expand Down
43 changes: 43 additions & 0 deletions zaklady-gitu/struktura-adresaru/slozitejsi-prikazy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
## Složitější příkazy

Program `whoami` byl velmi prostý. Vypsal nám jen název přihlášeného uživatele. Složitější příkazy mohou mít i parametry, které jim podrobněji říkají, co mají dělat. Parametry se zadávají za jménem příkazu a oddělují se od něj mezerou.

Víceslovné parametry je potřeba obalit do uvozovek, aby bylo jasné, že patří k sobě.

```sh
nazev-prikazu první druhý třetí 100 "delší text"
```

### `echo`

Ukázkou programu, který pracuje s více parametry je například `echo` (zvěna). Tento program vypíše zpět na obrazovku všechno, co mu zadáte jako parametry.

```sh
echo Ahoj
```

### Chat

Vést konverzaci se sebou samým je trochu zvláštní a rychle omrzí. Pokud si chcete popovídat s někým dalším, může vyzkoušet následující příkazy.

První odešle zprávu do společného chatu.

```sh
npx @czechitas/chat send "Jak se máte?"
```

Druhý vypíše všechny zprávy, které byly do chatu odeslány.

```sh
npx @czechitas/chat list
```

Občas se program `npx` ještě dozeptá, jestli si do sebe může doinstalovat rozšiřující balíček `@czechitas/chat`. Otázku odsouhlasíte stisknutím klávesy :kbd[Enter].

```text
Need to install the following packages:
@czechitas/chat
Ok to proceed? (y)
```

::fig[npx serve]{src=assets/serve.png}
48 changes: 5 additions & 43 deletions zaklady-gitu/struktura-adresaru/struktura-adresaru.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,62 +64,24 @@ Adresáře, neboli složky můžeme procházet, podobně jako to znáte z Window
pwd
```

- #### Windows
- ##### Windows

Příkaz `cd` bez parametru.

```sh
cd
```

#### Otevření textového souboru

- ##### Mac a Linux

`touch` vytvoří nový soubor, pokud neexistuje.

```sh
touch nazev-souboru.txt
```
#### Zobrazení obsahu souboru

`open -e` otevře existující soubor v aplikaci _TextEdit_.
- ##### Mac, Linux

```sh
open -e nazev-souboru.txt
cat nazev-souboru.txt
```

- ##### Windows

```sh
notepad nazev-souboru.txt
type nazev-souboru.txt
```

Pokud soubor `nazev-souboru.txt` neexistuje, příkazem výšeho ho můžete zároveň vytvořit.

### Jazyk Markdown

Abychom aspoň trochu vylepšili uživatelský zážitek z naší textové hry, použijeme jazyk Markdown. Ten umožňuje obyčejné textové soubory obohatit jednoduchým formátováním a přidat odkazy.

Markdown soubor (obvykle má příponu `.md`) tedy může vypadat třeba takhle:

```markdown
# Hlavní nadpis
## První podnadpis
Tady bude první odstavec textu.
Tady je druhý odstavec textu. Může být klidně dlouhý
a zalomený na několik řádek. Ve výsledku z toho pořád
bude jeden odstavec.
Nový odstavec začne prázdným řádkem.
## Druhý podnadpis
V Markdownu můžeme snadno vytvářet odkazy:
[Text odkazu](https://www.czechitas.cz)
Odkaz může být i [uvnitř textu](https://www.czechitas.cz).
```
Loading

0 comments on commit c046cf4

Please sign in to comment.