4. fejezet - Az SGML alkalmazása
Vissza |  | Előre

## 4. fejezet - Az SGML alkalmazása

Ebben a fejezetben a FreeBSD Dokumentációs Projekt keretein belül két leggyakrabban előforduló jelölőnyelvet ismerhetjük meg. Az egyes szakaszokban ezen nyelvek bemutatására, illetve jelenleg alkalmazott vagy alkalmazandó jelölési sajátosságaira térünk ki.

Az itt tárgyalt jelölőnyelvek nagy számú elemet tartalmaznak, és ezért gyakorta zavarba ejtő lehet az adott helyzetnek leginkább megfelelő elemek kiválasztása a rengeteg kínálkozó alternatíva közül. Ebben a szakaszban ezért igyekezük érinteni az összes fontosabb elemet, valamint példákat mutatni a megfelelő használatukra.

Ez az összefoglalás természetesen nem tartalmazza mindegyik elemet, mivel ezzel lényegében a nyelv saját dokumentációját írnánk le ismételten. Ebben a szakaszban elsősorban inkább azon elemek ismertetését tűztük ki célul, amelyek a munkánk során valószínűleg a leghasznosabbaknak fognak bizonyulni. A további különböző jelölési megoldásokra vonatkozóan bátran kérhetünk tanácsot a FreeBSD Dokumentációs Projekt levelezési lista tagjaitól!

### Belső elemek kontra blokkok:

A leírás további részeiben belsőnek nevezzük azokat az elemeket, amelyek szerepelhetnek blokkelemekben és nem okoznak sortörést. Ezzel szemben viszont a blokk formátumú elemek feldolgozása sortörést (vagy egyéb feldolgozási lépéseket) eredményez.

## 4.1. HTML

A HTML, más néven HyperText Markup Language, a Világháló jelölőnyelve. Ezzel kapcsolatban részlesebb leírásokat a http://www.w3.org/ címen találhatunk.

A HTML használata a FreeBSD honlapján található oldalak készítésénél jelenik meg. Más dokumentációkhoz azonban (általánosságban) nem szokták alkalmazni, mivel a DocBook ennél sokkal bőségesebb eszközöket kínál fel. Ennek következményeképpen tehát többnyire csak a honlap fejlesztése során fogunk HTML oldalakkal találkozni.

A HTML létrejötte óta több verzióváltáson is keresztülment már, az 1, 2, 3.0, 3.2 verziókat követően egészen a legfrissebb 4.0 változatáig (amely egyaránt elérhető szigorú (strict) és enyhébb (loose) formáiban is).

A HTML DTD-k a Portgyűjteményből a `textproc/html` porton keresztül érhetőek el. A `textproc/docproj` port ezt automatikusan telepíti.

### 4.1.1. Formális publikus azonosító

A HTML megfelelni kívánt verziójától (amelyet sokszor szintnek is szoktak nevezni) függően különböző formális publikus azonosító (FPI) áll rendelkezésünkre.

A FreeBSD honlapján található HTML dokumentumok többsége a HTML 4.0 enyhébb változatának felel meg:

PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

### 4.1.2. A dokumentum részei

A HTML dokumentumok általános esetben két részre oszthatóak. Az első, fejnek nevezett rész tartalmazza a dokumentumhoz tartozó metainformációkat, például a címét, a szerző nevét, a szülődokumentumot és így tovább. A második, törzsnek hívott rész pedig a felhasználó részére megjelenített tartalmat foglalja magában.

A dokumentum ezen részeit rendre a `head` (mint angolul a „fej”) és a `body` (mint angolul a „törzs”) elemekkel jelöljük. Ezeket az elemeket végül a legfelsőbb szinten álló `html` elem tartalmazza.

4.1. példa - Egy átlagos HTML dokumentum felépítése
<html> <head> <title>`A dokumentum címe`</title> </head> <body> … </body> </html>

### 4.1.3. Blokkok

#### 4.1.3.1. Fejlécek

A HTML lehetővé teszi fejlécek jelölését egészen hat különböző szintig.

A legnagyobb és legkiemelkedőbb fejléc a `h1`, majd ezt követi a `h2`, egészen a `h6` címkéig.

Az elem tartalma a fejléc szövege lesz.

4.2. példa - A `h1`, `h2`, stb. elmek

A használat módja:

<h1>Első szakasz</h1> <!-- Ide kerül a dokumentum bevezető része --> <h2>Ez az első szakasz fejléce</h2> <!-- Az első szakasz tartalma következik --> <h3>Ez az első alszakasz fejléce</h3> <!-- Az első alszakasz tartalma itt foglal helyet --> <h2>Ez a második szakasz fejléce</h2> <!-- A második szakasz tartalma ezen a részen lesz -->

A HTML oldalaknak általában rendelkezniük kell első szintű fejléccel (`h1`). Ez tetszőleges számú második szintű fejlécet (`h2`) tartalmazhat, amelyek szintén tetszőleges mennyiségű harmadik szintű fejlécet. Ügyeljünk arra, hogy minden `h`n`` elem mindig a nála eggyel nagyobb szintű elemet tartalmazza, a sorszámozásban tehát nem javasolt közöket hagyni.

4.3. példa - A `h`n`` elemek helytelen sorrendje

A használati módja:

<h1>Első szakasz</h1> <!-- A dokumentum bevezetője --> <h3>Alszakasz</h3> <!-- Nem jó, mert kimaradt a <h2> szint! -->

#### 4.1.3.2. Bekezdések

A HTML egyetlen bekezdésfajtát ismer, ez a `p`.

4.4. példa - A `p` elem

A használat módja:

<p>Ez egy bekezdés. Szinte bármilyen más elemet tartalmazhat.</p>

#### 4.1.3.3. Idézetblokkok

Az idézetblokkok más dokumentumok nagyobb részeinek idézésére használhatóak az aktuális bekezdésen túl.

4.5. példa - A `blockquote` elem

A használat módja:

<p>Részlet a Szózatból:</p> <blockquote>Hazádnak rendületlenűl Légy híve, oh magyar, Bölcsőd az 's majdan sírod is, Melly ápol 's eltakar. A' nagy világon e' kivűl Nincsen számodra hely, Áldjon vagy verjen sors' keze, Itt élned, halnod kell. Ez a' föld, mellyen annyiszor Apáid' vére folyt; Ez, mellyhez minden szent nevet Egy ezredév csatolt. Itt küzdtenek honért a' hős Árpádnak hadai, Itt törtek össze rabigát Hunyadnak karjai. Szabadság! Itten hordozák Véres zászlóidat, 'S elhulltanak legjobbjaink A' hosszu harcz alatt.</blockquote>

#### 4.1.3.4. Felsorolások

A dokumentumokban háromféle felsorolást használhatunk: sorszámozott, sorszámozás nélkül és definíciós.

Röviden úgy mutathatnánk be ezeket a formátumokat, hogy a sorszámozott felsorolásban az elemek elé számok kerülnek, a sorszámozás nélküli esetben pontok, a definíciós felsorolásban pedig a bejegyzések két részéből jönnek létre az elemek. Ezek közül az első részben a meghatározandó fogalom található, míg a második részben annak meghatározása.

A sorszámozott felsorolásokat az `ol` elem jelzi, a sorszámozás nélküli felsorolásokat az `ul` elem, végül a definíciós felsorolásokat a `dl` elem.

A sorszámozott és sorszámozás nélküli felsorolások a felsorolás elemeit tartalmazzák, amelyeket a `li` elemekkel vezetünk be. A felsorolások elemeinek szöveges tartalma lehet, vagy ha ezeket becsomagoljuk egy vagy több `p` elembe, további elemeket tartalmazhatnak.

A definíciós felsorolások meghatározandó fogalmakat (`dt`) és meghatározásokat (`dd`) tartalmazhatnak. A meghatározandó fogalmat tartalmazó részben csak belső elemek szerepelhetnek. A meghatározásokban viszont további blokkok is megjelenhetnek.

4.6. példa - Az `ul` és `ol` elemek

A használat módja:

<p>Egy sorszámozás nélkül felsorolás. A felsorolás elemei előtt minden bizonnyal pontok fognak megjelenni.</p> <ul> <li>Első elem</li> <li>Második elem</li> <li>Harmadik elem</li> </ul> <p>Egy sorszámozott lista, ahol az elemek több bekezdésből állnak. Mindegyik elem (figyelem: nem mindegyik bekezdés) előtt egy sorszámnak kell szerepelnie.</p> <ol> <li> <p>Ez az első elem. Ennek csak egy bekezdése van.</p> </li> <li> <p>Ez a második elem első bekezdése.</p> <p>Ez a második elem második bekezdése.</p> </li> <li> <p>Ez az első és egyetlen bekezdés a harmadik elemben.</p> </li> </ol>
4.7. példa - Definíciós felsorolások a `dl` elemmel

A használat módja:

<dl> <dt>Első fogalom</dt> <dd> <p>Az első fogalom meghatározásának első bekezdése.</p> <p>Az első fogalom meghatározásának második bekezdése.</p> </dd> <dt>Második fogalom</dt> <dd> <p>A második fogalom meghatározásának első bekezdése.</p> </dd> <dt>Harmadik fogalom</dt> <dd> <p>A harmadik fogalom meghatározásának első bekezdése.</p> </dd> </dl>

#### 4.1.3.5. Formázott szöveg

Megadhatjuk, hogy a szöveg egyes részei pontosan abban a formában kerüljenek a felhasználó elé, ahogy az eredetileg szerepel. Ilyenkor általában a szöveg rögzített szélességű betűtípussal jelenik meg, az egymás mellett levő szóközök nem vonódnak össze, a sortörések hatása fontossá válik.

Mindezt a `pre` elemen keresztül érhetjük el.

4.8. példa - A `pre` elem

A `pre` elem például remekül alkalmas e-mailek jelölésére:

<pre> From: Gabor PALI &lt;pgj@FreeBSD.org&gt; To: bsd@hu.FreeBSD.org Subject: Uj FreeBSD-cikk forditas: Naplozo UFS hasznalata asztali szamitogepeken Kedves listatagok! Nemreg elkeszitettem az ``Implementing UFS Journaling on a Desktop PC'' neven szerepelo [1] FreeBSD-cikk magyar forditasat [2]. Szeretnek megkerni mindenkit, akit erdekel a honositott valtozat, hogy olvassa el, nezze at, betatesztelje es mondjon rola velemenyt. Egyelore meg csak a sajat Perforce repositorynkbol erheto el, de a megadott linken naponta egyszer automatikusan frissul a HTML valtozat a feltoltott valtoztatasok (peldaul hibajavitasok) fuggvenyeben. Elore is nagyon szepen koszonom mindenkinek a segitseget! :g [1] http://www.freebsd.org/doc/en/articles/gjournal-desktop/ [2] http://people.freebsd.org/~pgj/gjournal-desktop_hu/</pre>

Hasznos azonban tudnunk, hogy a `<` és `&` jelek a formázott szövegben továbbra is speciális jelentéssel bírnak. A példában ezért is használtunk `&lt;` egyedeket a `<` jelek helyett. Ugyanezért a `&gt;` a `>` helyén is látható. Ezért mindig körültekintően bánjunk a nyers szövegből, például e-mailből vagy forráskódból bemásolt részletekkel, és ne felejtsük el átalakítani a bennük található speciális karaktereket.

#### 4.1.3.6. Táblázatok

### Megjegyzés:

A legtöbb (Lynx-hez hasonló) szöveges módban futó böngésző kifejezetten ügyetlen módon jeleníti meg a táblázatokat. Ha az oldalon a táblázatos felépítést választjuk, akkor a problémák elkerüléséhez érdemes egy alternatív jelölési módszert alkalmazni.

A táblázatos formában megjeleníteni kívánt információt jelöljük a `table` elemmel. A táblázatok egy több sorból (`tr` mint „table row”) állnak, amelyek egy vagy több adatcellát (`td` mint „table data”) tartalmaznak. Mindegyik cella tartalmazhat további blokkokat, például bekezdéseket vagy listákat, de akár táblázatokat (ez a beágyazás tetszőleges mélységig folytatható). Ha a cella tartalma csak egyetlen bekezdés, akkor nincs szükség a `p` elem használatára.

4.9. példa - A `table` egyszerű használata

A használat módja:

<p>Ez egy 2x2-es táblázat.</p> <table> <tr> <td>Bal felső cella</td> <td>Jobb felső cella</td> </tr> <tr> <td>Bal alsó cella</td> <td>Jobb alsó cella</td> </tr> </table>

Egy cella több sorra vagy oszlopra is átnyúlhat. Ennek jelzéséhez a kiterjesztendő sorokhoz a `rowspan` és/vagy oszlopokhoz a `colspan` tulajdonságot adjuk meg a megfelelő értékkel.

4.10. példa - A `rowspan` tulajdonság

A használat módja:

<p>Egy magas keskeny cella a bal oldalon, mellette jobbra két rövid cella.</p> <table> <tr> <td rowspan="2">Hosszú és keskeny</td> </tr> <tr> <td>Felső cella</td> <td>Alsó cella</td> </tr> </table>
4.11. példa - A `colspan` tulajdonság

A használat módja:

<p>Felül egy hosszú cella, alatt két rövidebb cella.</p> <table> <tr> <td colspan="2">Felső cella</td> </tr> <tr> <td>Bal alsó cella</td> <td>Jobb alsó cella</td> </tr> </table>
4.12. példa - A `rowspan` és `colspan` tulajdonságok együttes használata

A használat módja:

<p>Egy 3x3-as rácson a bal felső blokk 2x2 egymásba olvasztott cellából áll. A többi cella normális.</p> <table> <tr> <td colspan="2" rowspan="2">Bal felső nagy cella</td> <td>Jobb felső cella</td> </tr> <tr> <!-- Mivel a bal oldalon levő nagy cella beleolvad az első sorba, az első <td> a jobb oldalán jelenik meg --> <td>Jobb középső cella</td> </tr> <tr> <td>Bal alsó cella</td> <td>Bal középső cella</td> <td>Jobb alsó cella</td> </tr> </table>

### 4.1.4. Belső elemek

#### 4.1.4.1. Az információ kiemelése

A HTML esetén a kiemelésnek két szintje létezik, az `em` és a `strong`. Ezek közül az `em` jelenti a hagyományos kiemelést és a `strong` az erősebbet.

Az `em` elem tartalma általában dőlt betűvel jelenik meg, miközben a `strong` elem tartalma félkövéren. Ez a megállapítás azonban nem minden esetben igaz, ezért nem szabad semmi ilyesmit feltételeznünk a használatukkor.

4.13. példa - A `em` és `strong` elemek

A használat módja:

<p><em>Ezt</em> a részt kiemeltük, miközben <strong>ezt</strong> részt erősebben kiemeltük.</p>

#### 4.1.4.2. Félkövér és dőlt formázás

Mivel a HTML tartalmaz konkrétan a megjelenítésre vonatkozó jelölőket is, ezért külön jelezni tudjuk a forrásban, hogy a szöveg melyik részét szeretnénk félkövéren vagy dőlten látni. Ezeket a funkciókat a `b`, illetve az `i` elemekkel érhetjük el.

4.14. példa - A `b` és `i` elemek
<p><b>Ez</b> félkövér, <i>ez</i> pedig dőlt.</p>

#### 4.1.4.3. Írógépszerű formázás

Az írógépszerűen (rögzített szélességű karakterekkel) írt szövegek formázásához a `tt` (mint „teletype”) elemet használhatjuk.

4.15. példa - A `tt` elem

A használat módja:

<p>Ezt a dokumentumot eredetileg Páli Gábor fordította, és a következő címen érhető el: <tt>pgj@FreeBSD.org</tt>.</p>

#### 4.1.4.4. Méretezés

Előfordulhat, hogy szeretnénk növelni vagy csökkenteni a szöveg megjelenítéséhez használt betűtípus méretét. Erre alapvetően három lehetőség kínálkozik.

1. Ágyazzuk az átméterezendő szöveget `big` és `small` elemekbe. Ezeket a címkéket tetszőleges mélységig egymásba tudjuk ágyazni, tehát írható olyan, hogy `<big><big>Ez már sokkal nagyobb!</big></big>`.

2. Használjuk a `font` elemet, és a `size` tulajdonságát állítsuk a `+1` vagy `-1` értékre. Ez hatása szerint megegyezik a `big` és a `small` elemek használatával, azonban ez a típusú megoldás már elavult.

3. A `font` `size` tulajdonsága `1` és `7` között állítható. A betű alapértelmezett mérete `3`. Ez a megközelítés már elavult.

4.16. példa - A `big`, `small` és a `font` elemek

A következő kódrészleteknek ugyanaz a hatása.

<p>Ez a szöveg <small>valamivel kisebb</small>. Ez a a szöveg viszont <big>valamivel nagyobb</big>.</p> <p>Ez a szöveg <font size="-1">valamivel kisebb</font>. Ez a szöveg viszont <font size="+1">valamivel nagyobb</font>.</p> <p>Ez a szöveg <font size="2">valamivel kisebb</font>. Ez a szöveg viszont <font size="4">valamivel nagyobb</font>.</p>

### 4.1.5. Hivatkozások

### Megjegyzés:

A hivatkozások is belső elemek.

#### 4.1.5.1. Hivatkozás más dokumentumokra a Világhálón

A Világhálón elhelyezkedő dokumentumokat úgy tudjuk hivatkozni, ha ismerjük a helyüket.

A hivatkozást az `a` elemmel adhatjuk meg, amelynek a `href` tulajdonsága tartalmazza a hivatkozott dokumentum helyét. Az elem tartalma ekkor egy hivatkozássá változik, és a felhasználó számára is jól látható módon jelenik meg (aláhúzással, más színnel, más egérmutatóval és így tovább).

4.17. példa - Az `<a href="...">` elem

A használat módja:

<p>Erre vonatkozóan részletesebb információkat a <a href="http://www.FreeBSD.org/">FreeBSD honlapján</a> találhatunk.</p>

Ezeket a hivatkozások a felhasználót az adott dokumentum elejére irányítják.

#### 4.1.5.2. A dokumentumok más részeinek hivatkozása

A dokumentumok egyéb részeire (akár ugyanazon a dokumentumon belül) csak akkor tudunk hivatkozni, ha a szerző előzetesen hivatkozási pontokat helyeztünk el bennük.

Hivatkozási pontokat szintén `a` elemekkel adhatunk meg, azonban a `href` tulajdonság helyett a `name` használatával.

4.18. példa - Az `<a name="...">` elem

A használat módja:

<p><a name="bekezd1">Ez</a> a bekezdés a hivatkozásokban a <tt>bekezd1</tt> névvel érhető el.</p>

A dokumentum így megnevezett részét egy egyszerű hivatkozás készítésével tudjuk elérni, azonban a hivatkozási pont neve elé tennünk kell egy `#` jelet.

4.19. példa - Egy másik dokumentum nevesített részének elérése

Tételezzük fel, hogy a `bekezd1` példánk az `ize.html` állományban található.

<p>A témáról további információkat az <tt>ize.html</tt> <a href="ize.html#bekezd1">első bekezdésében</a> találhatunk.</p>

Ha egy hivatkozási pontra ugyanazon a dokumentumon belül szeretnénk hivatkozni, akkor nyugodtan elhagyhatjuk a dokumentum nevét, elegendő egyszerűen magát a hivatkozási pontot megadnunk (természetesen a hozzá tartozó `#` jellel együtt).

4.20. példa - Ugyanazon dokumentum nevesített részének elérése

Tételezzük fel, hogy a `bekezd1` példa ugyanezen a dokumentumon belül helyezkedik el:

<p>A témáról további információkat az <a href="#bekezd1">első bekezdésben</a> találhatunk.</p>

Vissza |  | Előre
3.9. Befejezés | Főoldal | 4.2. DocBook

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.