====== Laboratorium, JiTW, XHTML ======
===== Wprowadzenie =====
XHTML jest podstawą stron i aplikacji WWW. Na tym laboratorium przygotują Państwo w kilku krokach zestaw kilku połączonych ze sobą dokumentów HTML.
**Wszystkie dokumenty powinny być przygotowane w oparciu o standard XHTML 1.0/Strict, albo XHTML5 w kodowaniu UTF-8.**
Realizowaną przez Państwa stronę należy umieścić na serwerze, tak aby była dostępna z zewnątrz przez HTTP - ułatwi to pracę z zewnątrz oraz ocenianie. Jest to możliwe m.in. na serwerach ''borg.kis.agh.edu.pl'', ''charon.kis.agh.edu.pl'' lub ''student.agh.edu.pl''.
Umieszczenie dokumentu o nazwie ''index.html'' w katalogu ''~/public_html'' na ''borgu'' spowoduje, że dokument będzie dostępny pod adresem ''http://borg.kis.agh.edu.pl/~nazwa_uzytkownika'' gdzie ''nazwa_uzytkownika'' jest nazwą użytkownika na ''borgu'' oraz ''http://borg.kis.agh.edu.pl/~nazwa_uzytkownika/index.html''.
Każdy inny dokument będzie dostępny pod nazwą zgodną z nazwą pliku.
Np. ''inny.html'' (po umieszczeniu w katalogu ''public_html'') będzie dostępny jako: ''http://borg.kis.agh.edu.pl/~nazwa_uzytkownika/inny.html''.
Analogicznie na ''charonie'' i ''studencie''.
==== Edytor ====
Pliki HTML są //de facto// plikami tekstowymi, mogą więc być edytowane przy pomocy podstawowych narzędzi, jak ''joe'' czy ''vi''. Specjalizowane edytory mają jednak zalety, takie jak:
* podświetlanie i podpowiadanie składni danego języka,
* zarządzanie wcięciami,
* możliwość "zwijania" bloków kodu (ang. //code folding//),
* wsparcie dla różnych stron kodowych,
* możliwość wyświetlenia podglądu w przeglądarce,
* wsparcie dla walidatorów (lokalnych i zdalnych).
==== Walidatory ====
Poprawność dokumentów (X)HTML można sprawdzić przy pomocy walidatorów. Podstawowym walidatorem wykorzystywanym przy tworzeniu stron jest http://validator.w3.org/. Umożliwia on walidację:
* stron zlokalizowanych na serwerze, poprzez ich URI,
* plików HTML przesłanych przy pomocy formularza,
* kodu HTML wklejonego do pola tekstowego.
W przypadku wystąpienia błędów, wyświetlane jest obszerne wyjaśnienie wraz ze wskazówkami jak je poprawić.
==== Dokumentacja HTML ====
W sieci znajduje się wiele źródeł wiedzy o znacznikach HTML i zasadach ich stosowania. Do najważniejszych należą:
* http://www.w3.org/TR/xhtml1/
* http://www.w3.org/TR/html401/
* http://www.w3schools.com/tags/default.asp
* http://www.poradnik-webmastera.com/polecenia/html/znaczniki/ - mniej kompletna lista, za to po polsku
===== Ćwiczenia =====
==== Ćwiczenie 1: podstawy HTML ====
Utwórz nowy dokument, zgodny ze standardem XHTML 1.0/Strict, z kodowaniem UTF-8. **[2 punkty]**
Dokument powinien zawierać następujące elementy:
- poprawne dyrektywy formatu dokumentu,
- sekcja ''head'' zawierająca:
- tytuł dokumentu z polskimi znakami
- dyrektywę ustawiającą odpowiednie kodowanie znaków w przeglądarce
- sekcja ''body'' zawierająca:
- strukturę kilku sekcji o co najmniej dwóch poziomach zagłębienia, elementy muszą być umieszczone w odpowiedniej (pragmatycznej) kolejności tak jak pokazano poniżej **[2 punkty]**
tytuł rozdziału (h1)
...
tytuł podrozdziału (h2)
a nie np.:
tytuł podrozdziału (h2)
...
tytuł rozdziału (h1).
- w każdej z sekcji kilka akapitów tekstu (może być automatycznie wygenerowany - http://pl.lipsum.com/)
- w conajmniej jednym z akapitów kilka słów z polskimi znakami
Proszę dokonać walidacji dokumentu przy pomocy http://validator.w3.org/. Po usunięciu wszystkich błędów i ostrzeżeń, proszę umieścić na utworzonej stronie znaczek walidatora zgodnie z instrukcjami na stronie. W przypadku XHTML5 proszę użyć: https://validator.nu/ **[2 punkty za komplet poprawnie walidujących się stron]**
==== Ćwiczenie 2: formatowanie tekstu ====
Utwórz nowy dokument, zawierający jeden akapit tekstu w języku polskim i jeden nagłówek (oraz oczywiście odpowiednie dyrektywy, meta, itd.).
W akapicie powinny znajdować się elementy:
- tekst pisany kursywą - na dwa sposoby
- tekst pogrubiony - na dwa sposoby
- fragmenty kodu (inline) - na dwa sposoby
- prosty wzór matematyczny z indeksami górnym i dolnym oraz znakami "większe od" oraz "mniejsze od"
- w wybranym miejscu, ręcznie złamana linijka
Przy pomocy odpowiednich encji spraw, aby w tekście nie występowały tzw. "sieroty" (zob. [[http://pl.wikipedia.org/wiki/Sierota_(DTP)]]).
Dodaj do dokumentu kilkulinijkowy fragment kodu w dowolnym języku programowania zawarty w odpowiednim znaczniku.
Zwaliduj dokument i dodaj grafikę potwierdzającą poprawność (jak w ćw. 1).
Na jednej z tworzonych podstron proszę umieścić odpowiedzi na pytania:
- Jaka jest różnica między znacznikami ''i'' oraz ''em''? Czy zawsze dają identyczne wyniki?
- Jaka jest różnica między znacznikami ''b'' oraz ''strong''? Czy zawsze dają identyczne wyniki?
- Jaka jest różnica między znacznikami ''code'' oraz ''samp''? Czy zawsze dają identyczne wyniki?
- Jaka jest różnica pomiędzy fragmentem strony sformatowanej tak: ''
...
...
'' oraz fragmentem o następującej postaci: ''...
...