Az SGML alkalmazása Ebben a fejezetben a &os; 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 &a.doc; 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. 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 &os; 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. 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 &os; 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" 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. Egy átlagos HTML dokumentum felépítése <html> <head> <title>A dokumentum címe</title> </head> <body> … </body> </html> Blokkok 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. A <tag>h1</tag>, <tag>h2</tag>, 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 hn elem mindig a nála eggyel nagyobb szintű elemet tartalmazza, a sorszámozásban tehát nem javasolt közöket hagyni. A <tag>h<replaceable>n</replaceable></tag> 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! -‐> Bekezdések A HTML egyetlen bekezdésfajtát ismer, ez a p. A <tag>p</tag> elem A használat módja: ]]>Ez egy bekezdés. Szinte bármilyen más elemet tartalmazhat.]]> 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. A <tag>blockquote</tag> elem A használat módja: ]]>Részlet a Szózatból:
]]>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.]]> 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. Az <tag>ul</tag> és <tag>ol</tag> elemek A használat módja: ]]>Egy sorszámozás nélkül felsorolás. A felsorolás elemei előtt minden bizonnyal pontok fognak megjelenni.
  • ]]>Első elem
  • ]]>Második elem
  • ]]>Harmadik elem

]]>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.

  1. ]]>Ez az első elem. Ennek csak egy bekezdése van.

  2. ]]>Ez a második elem első bekezdése.

    ]]>Ez a második elem második bekezdése.

  3. ]]>Ez az első és egyetlen bekezdés a harmadik elemben.

]]>
Definíciós felsorolások a <tag>dl</tag> elemmel A használat módja:
]]>Első fogalom

]]>Az első fogalom meghatározásának első bekezdése.

]]>Az első fogalom meghatározásának második bekezdése.

]]>Második fogalom

]]>A második fogalom meghatározásának első bekezdése.

]]>Harmadik fogalom

]]>A harmadik fogalom meghatározásának első bekezdése.

]]>
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. A <tag>pre</tag> elem A pre elem például remekül alkalmas e-mailek jelölésére: From: Gabor PALI <pgj@FreeBSD.org> 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/]]> 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. Táblázatok 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. A <tag>table</tag> egyszerű használata A használat módja: ]]>Ez egy 2x2-es táblázat.
]]>Bal felső cella ]]>Jobb felső cella
]]>Bal alsó cella ]]>Jobb alsó cella
]]>
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. A <literal>rowspan</literal> tulajdonság A használat módja: ]]>Egy magas keskeny cella a bal oldalon, mellette jobbra két rövid cella.
]]>Hosszú és keskeny
]]>Felső cella ]]>Alsó cella
]]>
A <literal>colspan</literal> tulajdonság A használat módja: ]]>Felül egy hosszú cella, alatt két rövidebb cella.
]]>Felső cella
]]>Bal alsó cella ]]>Jobb alsó cella
]]>
A <literal>rowspan</literal> és <literal>colspan</literal> tulajdonságok együttes használata A használat módja: Egy 3x3-as rácson a bal felső blokk 2x2 egymásba olvasztott cellából áll. A többi cella normális.

Bal felső nagy cella Jobb felső cella
Jobb középső cella
Bal alsó cella Bal középső cella Jobb alsó cella
]]>
Belső elemek 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. A <tag>em</tag> és <tag>strong</tag> elemek A használat módja: ]]><em>Ezt</em> a részt kiemeltük, miközben <strong>ezt</strong> részt erősebben kiemeltük.]]> 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. A <tag>b</tag> és <tag>i</tag> elemek ]]><b>Ez</b> félkövér, <i>ez</i> pedig dőlt.]]> Í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. A <tag>tt</tag> elem A használat módja: ]]>Ezt a dokumentumot eredetileg Páli Gábor fordította, és a következő címen érhető el: <tt>pgj@FreeBSD.org</tt>.]]> 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. Á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>. 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. 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. A <tag>big</tag>, <tag>small</tag> és a <tag>font</tag> elemek A következő kódrészleteknek ugyanaz a hatása. ]]>Ez a szöveg <small>valamivel kisebb</small>. Ez a a szöveg viszont <big>valamivel nagyobb</big>.

]]>Ez a szöveg <font size="-1">valamivel kisebb</font>. Ez a szöveg viszont <font size="+1">valamivel nagyobb</font>.

]]>Ez a szöveg <font size="2">valamivel kisebb</font>. Ez a szöveg viszont <font size="4">valamivel nagyobb</font>.]]> Hivatkozások A hivatkozások is belső elemek. 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). Az <literal><a href="..."></literal> elem A használat módja: ]]>Erre vonatkozóan részletesebb információkat a <a href="http://www.FreeBSD.org/">&os; honlapján</a> találhatunk.]]> Ezeket a hivatkozások a felhasználót az adott dokumentum elejére irányítják. 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. Az <literal><a name="..."></literal> elem A használat módja: ]]>Ez]]> a bekezdés a hivatkozásokban a ]]>bekezd1]]> névvel érhető el.]]> 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. 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ó. ]]>A témáról további információkat az ]]>ize.html]]> ]]>első bekezdésében]]> találhatunk.]]> 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). 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: ]]>A témáról további információkat az ]]>első bekezdésben]]> találhatunk.]]> DocBook A DocBook jelölőnyelvet eredetileg a HaL Computer Systems és az O'Reilly & Associates dolgozta ki a műszaki jellegű dokumentációk írásához Ennek rövid története a http://www.oasis-open.org/docbook/intro.shtml#d0e41 címen olvasható., illetve 1998 óta a DocBook Műszaki Bizottság tartja karban. Mint ilyen nyelv, eltérően a LinuxDoc és a HTML megoldásaitól, a DocBook erősen olyan jelölések irányába orientálódik, amelyek nem azt írják le hogyan, hanem mit jelenítsünk meg. <literal>Formális</literal> kontra <literal>informális</literal> Bizonyos elemeknek létezik ún. formális és informális változata. A formális változat általában egy címből és az adott elem informális változatából áll. Az informális változat nem tartalmaz címet. A DocBook használatához szükséges DTD a Portgyűjteményből a textproc/docbook porton keresztül érhető el. Ez a textproc/docproj port részeként automatikusan telepítődik. A &os; kiterjesztései A &os; Dokumentációs Projekt kiterjesztette a hivatalos DocBook DTD-t további elemekkel. Segítségükkel bizonyos jelölések sokkal pontosabbá tehetőek. A kizárólag a &os; esetén alkalmazott elemeket egyértelműen jelezni fogjuk a felsorolásban. A dokumentum további részében a DocBook kifejezés a DocBook DTD &os; kiterjesztéseivel együtt értendő. Szeretnénk megemlíteni, hogy a hozzáadott kiegészítésekben azonban semmi olyan nincs, ami kizárólag a &os;-re vonatkozna, egyszerűen csak a Projektben felmerült igények mentén szeretne alkalmazni néhány javítást. Ha más &unix; jellegű rendszerek (NetBSD, OpenBSD, Linux, stb.) fejlesztőit esetleg érdekelné a DocBook további fejlesztése, kérjük, vegyék fel velünk a kapcsolatot a &a.doceng; címén. A &os; kapcsán alkalmazott kiterjesztések (jelenleg) nem érhetőek el a Portgyűjteményből, hanem a &os; repositoryban találjuk meg a doc/share/xml/freebsd.dtd helyen. Formális publikus azonosító A DocBook a testreszabott változatok formális publikus azonosítóira vonatkozó irányelvei szerint a &os; kiterjesztéseivel bővített DocBook DTD formális publikus azonosítója a következő lesz: PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" A dokumentum szerkezete A DocBook többféle módon kínál lehetőségeket a dokumentumok szerkezetének kialakítására. A &os; Dokumentációs Projektben a DocBook dokumentumok két alapvető fajtáját használjuk, a könyvet és a cikket. A könyvek fejezetekből (chapter) állnak, amelyek használata kötelező. A könyv és a fejezetek közé még további szervezési rétegként beilleszhetőek részek (part) is. Például a &os; kézikönyv szerkezetét is ennek megfelelően alakítottuk ki. A fejezetek tartalmazhatnak (vagy sem) egy vagy több szakaszt, amelyeket sect1 elemekkel jelezhetünk. Amennyiben egy szakasz újabb szakaszt tartalmaz, akkor használjuk a sect2 elemet, és így tovább egészen a sect5 szintig. A fejezetek és a szakaszok tartalmazzák a dokumentum tartalmának fennmaradó részét. Egy cikk egy könyvnél egyszerűbb felépítésű, és nem tartalmaz fejezeteket. Helyette a cikkek tartalmát egy vagy több szakaszba szervezzük, a könyvnél már említett sect1 (sect2 és így tovább) elemek segítségével. A készítendő dokumentációról értelemszerűen jellegének mérlegelésével tudjuk eldönteni, hogy könyvként esetleg cikk-ként érdemesebb jelölni. A cikk formátum választása leginkább olyan információk esetén célszerű, ahol nincs szükségünk külön fejezetekre. Röviden szólva tehát egy viszonylag rövid, legfeljebb 20-25 oldalas írást takar. A könyv formátum ezzel szemben leginkább olyan esetekben alkalmazható, amikor az információ fejezetekre bontható, amelyhez függelékek és hasonlók is társulhatnak. A &os;-hez készített cikkek mindegyikét cikk-ként jelöltük, miközben például ez a dokumentum, a &os; GYIK, és a &os; kézikönyv könyvként került jelölésre. Könyv írása A könyvek tartalmát egy book elemben adjuk meg. Ez a jelölő amellett, hogy magában foglalja a könyv teljes felépítését, tovább információkat tud tárolni magáról a könyvről. Ez lehet akár hivatkozási célokat szolgáló metainformáció, vagy éppen a címlap elkészítéséhez szükséges egyéb leírás. A könyvre vonatkozó további információkat egy bookinfo elemen belül adhatjuk meg. Egy <tag>book</tag> és <tag>bookinfo</tag> elemek segítségével definiált könyvsablon <book> <bookinfo> <title>Ide írjuk a címet</title> <author> <surname>Vezetéknév</surname> <firstname>Keresztnév</firstname> <affiliation> <address><email>E-mail cím</email></address> </affiliation> </author> <copyright> <year>2008</year> <holder role="mailto:E-mail cím">Név</holder> </copyright> <releaseinfo>$&os;$</releaseinfo> <abstract> <para>Ide kerüljön a könyv tartalmának rövid összefoglalása.</para> </abstract> </bookinfo> … </book> Cikk írása A cikk tartalma az article elembe kerül. A dokumentum szervezésén kívül ennek az elemnek feladata lehetőséget kínálni további információk elhelyezésére. Ez lehet hivatkozási célokra alkalmas metainformáció, vagy például a címlap előállításához szükséges egyéb adatok. A cikk-kel kapcsolatos további információk egy articleinfo elemben adhatóak meg. Egy <tag>article</tag> és <tag>articleinfo</tag> elemek segítségével definiált cikksablon <article> <articleinfo> <title>Ide írjuk a címet</title> <author> <surname>Vezetéknév</surname> <firstname>Keresztnév</firstname> <affiliation> <address><email>E-mail cím</email></address> </affiliation> </author> <copyright> <year>2008</year> <holder role="mailto:E-mail cím">Név</holder> </copyright> <releaseinfo>$&os;$</releaseinfo> <abstract> <para>Ide kerüljön a cikk tartalmának rövid összefoglalása.</para> </abstract> </articleinfo> … </article> Fejezetek készítése A chapter elem használatával tudunk fejezeteket jelölni. Minden fejezetnek kötelezően rendelkeznie kell egy címmel, vagyis egy title elemmel. A cikkek nem tartalmazhatnak fejezeteket, kizárólag könyvek számára tartják fenn. Egy egyszerű fejezet ]]>Fejezetcím<![CDATA[ ... ]]> A fejezetek nem lehetnek üresek, a title elem mellett még tartalmazniuk kell valamilyen másik elemet is. Az üres fejezetek készítéséhez használjunk egy üres bekezdést. Üres fejezetek ]]>Ez egy üres fejezet<![CDATA[ ]]> Szakaszok fejezetek alatt A könyvekben a fejezetek további szakaszokra, alszakaszokra stb. bonthatóak (de nem kötelező). A cikkekben azonban a szakaszok az alapvető szervezőelemek, ezért minden cikknek legalább egy szakaszt tartalmaznia kell. A szakaszok létrehozására a sectn elemet használhatjuk, ahol az n szám adja meg a szakasz szintjét. Az első ilyen sectn elem a sect1, amelyből egy fejezetben egy vagy több is szerepelhet. Ezek egy vagy több sect2 elemet tartalmazhatnak, és így tovább egészen az sect5 szintjéig. Szakaszok fejezetekben ]]>Minta fejezet<![CDATA[ ]]>Egy kis fejezetbeli szöveg. ]]>Első szakasz (1.1)<![CDATA[ ]]>Második szakasz (1.2)<![CDATA[ ]]>Első alszakasz (1.2.1)<![CDATA[ ]]>Első al-alszakasz (1.2.1.1)<![CDATA[ ]]>Második alszakasz (1.2.2)<![CDATA[ ]]> Láthatjuk, hogy ebben a példában a szakaszok neveiben megjelenik a szakaszok számozása. Ezt azonban ne írjuk bele a dokumentumainkba! A szakaszok számozását a stíluslapok végzik (erről még később szó lesz), ezekkel egyáltalán nem kell foglalkoznunk. A dokumentum felosztása <tag>part</tag> elemek használatával A book és chapter elemek részéről felkínált szervezési szintek közé a part elemek alkalmazásával egy újabbat tudunk illeszteni. Erre a cikkek esetében nincs lehetőségünk. ]]>Bevezetés<![CDATA[ ]]>Áttekintés<![CDATA[ ... ]]>Mi a &os;?<![CDATA[ ... ]]>Történet<![CDATA[ ... ]]> Blokkok Bekezdések A DocBookban a bekezdések háromféle típusát találhatjuk meg: formalpara, para és simpara. Az iméntiek közül a legtöbb esetben az para elemre lesz szükségünk. A formalpara tartalmaz még egy title elemet, illetve a simpara nem engedélyezi bizonyos elemek használatát a bekezdésben. Érdemes tehát inkább következetesen a para használatánál maradni. A <tag>para</tag> elem A használat módja: ]]>Ez egy bekezdés. Tetszőleges egyéb elem megjelenhet benne.]]> Így jelenik meg: Ez egy bekezdés. Tetszőleges egyéb elem megjelenhet benne. Idézetblokkok Az idézetblokkok egy másik dokumentumból származó, kiterjedtebb hosszúságú idézetet jelölnek, amelyeknek az aktuális bekezdéstől függetlenül kell megjelenniük. Erre valószínűleg csak nagyon ritkán lesz ténylegesen szükségünk. Az idézetblokkok opcionálisan címeket és szerzőt is tartalmazhatnak (de akár szerepelhetnek cím vagy szerző nélkül). A <tag>blockquote</tag> elem A használat módja: ]]>Részlet Szerb Antal <quote>A Pendragon legenda</quote> című művéből:

]]>A Pendragon legenda<![CDATA[ ]]>Szerb Antal ]]>Minden nőben azt élveztem, hogy a szimbóluma volt valaminek. Volt nő, akit azért szerettem, mert ő volt Svédország, volt nő, akit azért, mert a XVIII. századra emlékeztetett törékeny Sèvres-mivolta. Volt, akiben Jeanne d'Arc-ot álmodtam, volt, akiben az ezermellű ephesusi Dianát. Cynthiát, ha megcsókoltam, úgy éreztem, most az angol szonetekkel flörtölök, ötödfeles jambusokban. Volt, akinek édes tehénszerűségében svájci, alpesi réteket élveztem.
]]>
Így jelenik meg: Részlet Szerb Antal A Pendragon legenda című művéből:
A Pendragon legenda Szerb Antal Minden nőben azt élveztem, hogy a szimbóluma volt valaminek. Volt nő, akit azért szerettem, mert ő volt Svédország, volt nő, akit azért, mert a XVIII. századra emlékeztetett törékeny Sèvres-mivolta. Volt, akiben Jeanne d'Arc-ot álmodtam, volt, akiben az ezermellű ephesusi Dianát. Cynthiát, ha megcsókoltam, úgy éreztem, most az angol szonetekkel flörtölök, ötödfeles jambusokban. Volt, akinek édes tehénszerűségében svájci, alpesi réteket élveztem.
Tanácsok, megjegyzések, felhívások, figyelmeztetések, fontos és mellékes információk Esetenként szükségünk lehet arra, hogy bizonyos többletinformációt közöljünk az olvasóval a szövegtől elkülöníthető módon. Ez többnyire olyan metainformáció, amelyre a felhasználónak tekintettel érdemes lennie. Az adott információ jellegétől függően erre a célra a tip (tanács), note (megjegyzés), warning (felhívás), caution (figyelmeztetés) és important (fontos információ) elemek valamelyikét tudjuk használni. Amennyiben a közölni kívánt információ kötődik ugyan a szöveghez, azonban az előbbiek közül egyik kategóriába sem sorolható be, akkor használhatjuk a sidebar (mellékinformáció) elemet is. Nem teljesen tisztázott, hogy az imént felsorolt elemek közül pontosan mikor melyiket kell alkalmazni. A DocBook dokumentációja ezzel kapcsolatban a következőket javasolja: A note elemek olyan információkat jelölnek, amelyek az olvasó részéről megszivlelendőek. Az important elemek a note elemek egyik változata. A caution elemmel olyan információt jelölnek, amelyek ismeretének hiányában adatvesztés vagy szoftveres károdás következhet be. A warning elemek olyan információkat jelölnek, amelyek ismeretének hiánya hardver károsodását, életveszélyt vagy a végtagok sérülését eredményezheti. A <tag>warning</tag> elem A használat módja: ]]>A &os; telepítése után könnyen előfordulhat, hogy a Windowst teljesen le akarjuk törölni a merevlemezünkről. ]]> Így jelenik meg: A &os; telepítése után könnyen előfordulhat, hogy a Windowst teljesen le akarjuk törölni a merevlemezünkről. Felsorolások és eljárások Gyakran adódhatnak olyan helyzetek, amikor az olvasó felé fel kell sorolnunk valamilyen információkat, vagy egy adott cél elérése érdekében be kell mutatnunk neki egy sorszámozott, egyenként végrehajtandó lépéssorozatot. Erre a célra rendelkezésünkre állnak az itemizedlist, az orderedlist, illetve a procedure elemek A felsorolások megadására a DocBook további lehetőségeket is felkínál, azonban ezekkel itt most nem foglalkozunk.. Az itemizedlist és az orderedlist elemek hasonlóak az HTML esetén már megismert megfelelőikhez, az ul és ol elemekhez. Egy vagy több listitem elemből állnak és mindegyik listitem egy vagy több blokkot tartalmaz. A listitem elemek a HTML li elemeihez hasonlóak, azonban ebben az esetben kötelező megadni ezeket. A procedure elem ettől némileg eltér. Itt step elemekből épül fel, amelyek további step vagy substep típusú elemeket foglalhatnak magukban. A step elemek mindegyike blokkokat tartalmaz. Az <tag>itemizedlist</tag>, <tag>orderedlist</tag> és <tag>procedure</tag> elemek A használat módja: ]]>Ez a felsorolás első eleme. ]]>A a felsorolás második eleme. ]]>Ez az első sorszámozott elem. ]]>Ez a második sorszámozott elem. ]]>Csináljuk ezt. ]]>Majd csináljuk azt. ]]>Most pedig csináljuk így. ]]> Így jelenik meg: Ez a felsorolás első eleme. Ez a felsorolás második eleme. Ez az első sorszámozott elem. Ez a második sorszámozott elem. Csináljuk ezt. Majd csináljuk azt. Most pedig csináljuk így. Példák állományokra Ha állományrészeket (vagy akár teljes állományokat) akarunk bemutatni az olvasónak, akkor érdemes ezeket egy programlisting elembe illeszteni. A programlisting elemeken belül alkalmazott tördelés és a sortörések helye jelentéssel bír. Ennek egyik fontos következménye, hogy a nyitócímkének az állomány tartalmának első sorával együtt kell megjelennie, illetve a zárócímkének pedig az utolsó sorban, ellenkező esetben üres sorok fognak keletkezni a kimenetben. A <tag>programlisting</tag> elem A használat módja: ]]>Miután befejeztük a feladatot, a programunknak valahogy így kell majd kinéznie: #include <stdio.h> int main(void) { printf("]]>Halló mindenki!]]> Láthatjuk, hogy az #include után a relációs jeleket nem közvetlenül adtuk meg, hanem a nekik megfelelő egyedekkel. Így jelenik meg: Miután befejeztük a feladatot, a programunknak valahogy így kell majd kinéznie: #include <stdio.h> int main(void) { printf("Halló mindenki!\n"); } Magyarázó szövegek A magyarázó szövegek használatával a szöveg egy korábbi részére vagy egy korábbi példa adott helyére tudunk visszahivatkozni anélkül, hogy a szövegen magán belül hivatkoznánk rá. Ehhez a co elem használatával jelöljük be a példa (programlisting, literallayout vagy bármi más) fontosabb részeit. Mindegyik elemhez egy egyedi azonosítót kell társítanunk. A példa után helyezzünk el egy calloutlist elemet, amelyben a megfelelő további magyarázat megadásával együtt visszahivatkozunk a példa egyes részeire. A <tag>co</tag> és <tag>calloutlist</tag> elemek ]]>Miután befejeztük a feladatot, a programunknak valahogy így kell majd kinéznie: #include <stdio.h> int main(void) { printf("]]>Halló mindenki! } ]]>A szabványos állományműveleteket tartalmazó header állomány. ]]>Megadjuk, hogy a <function>main()</function> függvény egy <literal>int</literal> típusú értékkel térjen vissza. ]]>A <function>printf()</function> hívással egy <literal>Halló mindenki!</literal> szöveget írunk ki a szabványos kimenetre. ]]> Így jelenik meg: Miután befejeztük a feladatot, a programunknak valahogy így kell majd kinéznie: #include <stdio.h> int main(void) { printf("Halló mindenki!\n"); } A szabványos állományműveleteket tartalmazó header állomány. Megadjuk, hogy a main() függvény egy int típusú értékkel térjen vissza. A printf() hívással egy Halló mindenki! szöveget írunk ki a szabványos kimenetre. Táblázatok A HTML kapcsán megismertektől eltérően a szöveg elrendezésének befolyásolásához nem kell táblázatokat használnunk, mivel erről majd a stíluslapok gondoskodnak helyettünk. Ehelyett egyszerűen csak akkor használjunk táblázatokat, amikor táblázatosan akarunk adatokat megadni. Általános értelemben véve (ennek további részleteit lásd a DocBook leírásában) a táblázatok (amelyek lehetnek formálisak vagy informálisak) egy table elemből állnak. Ennek magában kell foglalnia legalább egy csoportot jelölő tgroup elemet, amely (tulajdonságként) megadja, hogy benne mennyi oszlop található. Ezekben a csoportokban aztán a thead elemmel fejlécet adhatunk meg az egyes oszlopoknak, illetve azok törzseit pedig tbody elemek specifikálják. A tgroup és thead elemek egyaránt tartalmaznak row elemeket, amelyek pedig entry elemekre bonthatóak tovább. Mindegyik ilyen entry elem a táblázat egy celláját jelöli. Az <tag>informaltable</tag> elem A használat módja: ]]>Ez az első oszlop fejléce ]]>Ez a második oszlop fejléce ]]>Első oszlop, első sor ]]>Második oszlop, első sor ]]>Első oszlop, második sor ]]>Második oszlop, második sor ]]> Így jelenik meg: Ez az első oszlop fejléce Ez a második oszlop fejléce Első oszlop, első sor Második oszlop, első sor Első oszlop, második sor Második oszlop, második sor Az informaltable elemek esetén a pgwide tulajdonságot mindig az 1 értékkel használjuk, ellenkező esetben az Internet Explorer egyik hibája miatt a táblázat nem fog rendesen megjelenni. Amennyiben nem szeretnénk keretet a táblázathoz, állítsuk az informaltable elem frame tulajdonságát a none értékre (vagyis <informaltable frame="none">). A <literal>frame="none"</literal> típusú táblázat Így jelenik meg: Ez az első oszlop fejléce Ez a második oszlop fejléce Első oszlop, első sor Második oszlop, első sor Első oszlop, második sor Második oszlop, második sor Példák műveletekre Rengetegszer előfordulhat, hogy az olvasónak valamilyen módon be kell mutatnunk miként kell egy bizonyos feladatot megoldania a rendszerben. Ezek a példák általában valamilyen párbeszédet jelentek a számítógéppel: az olvasó begépel egy parancsot, amelyre kap egy választ, majd begépel egy újabb parancsot és így tovább. Ilyen helyzetek több különböző elem és egyed alkalmazható. A screen elem Az olvasó a példával kapcsolatos információkat a elsősorban képernyőről kapja, ennek jelölésére használjuk a screen elemet. A screen elemeken belül számít a szöveg tördelése. A prompt elem, &prompt.root; és &prompt.user; egyedek Az olvasó a képernyőn mindig valamilyen promptot is látni fog (ez lehet az operációs rendszer, a parancsértelmező vagy az adott alkalmazás). Ezt a prompt elemmel tudjuk jelölni. Az egyszerű felhasználó és a rendszergazda számára két külön egyed létezik a parancssori promptok jelölésére. Amikor tehát az olvasónak egy paranccsorban kell tevékenykednie, akkor a &prompt.root; vagy a &prompt.user; egyedek valamelyikét használjuk. Ezeket nem kell prompt elembe tenni. A &prompt.root; és &prompt.user; egyedek nem részei az eredeti DocBook DTD-nek, csupán a &os; kiterjesztései. A userinput elem A példában az olvasó által begépelendő részeket tegyük userinput elemekbe. Ez az olvasó felé valószínűleg majd másképpen jelenik meg. A <tag>screen</tag>, <tag>prompt</tag> és <tag>userinput</tag> elemek A használat módja: &prompt.user; ls -1 ize1 ize2 ize3 &prompt.user; ls -1 | grep ize2 ize2 &prompt.user; su Password: &prompt.root; cat ize2 ]]>Ez lenne az 'ize2' nevű állomány.]]> Így jelenik meg: &prompt.user; ls -1 ize1 ize2 ize3 &prompt.user; ls -1 | grep ize2 ize2 &prompt.user; su Password: &prompt.root; cat ize2 Ez lenne az 'ize2' nevű állomány. Annak ellenére, hogy a példában szerepeltettük az ize2 állomány tartalmát, nem a programlisting elemmel jelöltük. A programlisting elemeket inkább állományrészletek jelölésében alkalmazzuk, függetlenül az olvasó részéről várt műveletektől.
Belső elemek Az információ kiemelése Az egyes szavak vagy kifejezések kiemeléséhez alkalmazzuk az emphasis elemet. Ennek hatására a kiemelt szövegrész dőlten, esetleg félkövéren jelenik meg, illetve a különböző felolvasó szoftverek más hangsúlyozással mondják el. A kiemelt szövegrészek tényleges megjelenését nem tudjuk befolyásolni, nem tekinthető egyenlőnek a HTML b és i elemeivel. Ha fontos információt kívánunk közölni, akkor az emphasis helyett érdemesebb inkább az important elem használatát megfontolni. Az <tag>emphasis</tag> elem A használat módja: ]]>A &os; az Intel architektúrán kétség kívül <emphasis>a</emphasis> legjobb UNIX-szerű operációs rendszer.]]> Így jelenik meg: A &os; az Intel architektúrán kétség kívül a legjobb UNIX-szerű operációs rendszer. Idézetek Ha más dokumentumokból vagy forrásból akarunk idézni a szövegben, esetleg valamire csak képletesen szeretnénk utalni, akkor használjuk a quote elemet. A quote elemen belül a legtöbb jelölő elérhető a szövegben. Idézetek A használat módja: ]]>Arra viszont ügyeljünk, hogy hogy a keresési rend ne lépje át a <quote>helyi és nyilvános adminisztráció között meghúzódó határt</quote>, ahogy azt az RFC 1535 nevezi.]]> Így jelenik meg: Arra viszont ügyeljünk, hogy hogy a keresési rend ne lépje át a helyi és nyilvános adminisztráció között meghúzódó határt, ahogy azt az RFC 1535 nevezi. Billentyűk, egérgombok és azok kombinációja A billentyűzeten egy adott billentyűre a keycap elem segítségével tudunk hivatkozni. Ugyanezt a lehetőséget az egér gombjaira vonatkozóan a mousebutton elem nyújta. A billentyűk és egérgombok együttes használatát pedig a keycombo elemmel tudjuk jelölni. A keycombo elemnek van egy action (tevékenység) nevű tulajdonsága, amely lehet click (kattintás), double-click (kettős kattintás), other (egyéb), press (nyomva tartás), seq (egymás utáni), illetve simul (együttes használat). Az utóbbi két értékkel jelölhetjük, hogy a megadott billentyűket vagy gombokat egymás után esetleg egyszerre kell lenyomnunk. Az elemben felsorolt billentyűk és gombok nevei közé a stíluslapok automatikusan beillesztik a megfelelő összekapcsoló szimbólumot, például a + jelet. Billentyűk, egérgombok és azok kombinációja A használat módja: ]]>A második virtuális terminálra az <keycombo action="simul"><keycap>Alt</keycap><keycap>F1</keycap></keycombo> billentyűkombinációval tudunk átváltani. ]]>A <command>vi</command> programból úgy tudunk mentés nélkül kilépni, ha begépeljük a <keycombo action="seq"><keycap>Esc</keycap><keycap>:</keycap> <keycap>q</keycap><keycap>!</keycap></keycombo> sorozatot. ]]>Az ablakkezelőt most úgy állítottuk be, hogy az <keycombo action="simul"><keycap>Alt</keycap> <mousebutton>jobb</mousebutton></keycombo> egérgomb segítségével tudjuk mozgatni az ablakokat.]]> Így jelenik meg: A második virtuális terminálra az AltF1 billentyűkombinációval tudunk átváltani. A vi programból úgy tudunk mentés nélkül kilépni, ha begépeljük az Esc: q! sorozatot. Az ablakkezelőt most úgy állítottuk be, hogy az Alt jobb egyérgomb segítségével tudjuk mozgatni az ablakokat. Alkalmazások, parancsok, kapcsolók és man hivatkozások Nem szokatlan az igény, hogy a dokumentáció írása során gyakran szeretnénk hivatkozni alkalmazásokra és parancsokra egyaránt. A két fajta elem közti különbség egyszerű: az alkalmazás az adott feladatot megvalósító programcsomag (vagy program) neve, miközben a parancs konkrétan annak a programnak a neve, amelyet az olvasó futtatni tud. Mindezek mellett alkalmanként szükségünk lehet arra, hogy a parancs által várt egy vagy több paramétert valamilyen módon felsoroljuk. Végül hozzátesszük, hogy sokszor szükségünk lehet a parancsokat a hozzájuk tartozó man oldalakkal együtt hivatkozni, a UNIX típusú kézikönyvek megszokott parancs(szám) jelölésben. Az alkalmazások neveit az application elemmel tudjuk jelölni. Ha egy parancsot a hozzá tartozó man oldallal együtt akarunk hivatkozni (amire valószínűleg az esetek nagy többségében szükségünk is lesz), akkor az ennek megfelelő Docbook elem a citerefentry lesz. Ez további két elemet tartalmaz, ezek a refentrytitle és a manvolnum. A refentrytitle tartalma a parancs neve, illetve a manvolnum lesz a hozzá tartozó man oldal megfelelő szekciója. Az iménti jelölések írása esetenként nehézkesnek bizonyulhat, ezért ennek megkönnyítésére létrehoztunk általános egyedeket. Az egyedek &man.man-oldal.man-szekció; alakban érhetőek el. Ezeket az egyedeket a doc/share/xml/man-refs.ent állományban találjuk meg, amelyre a következő formális publikus azonosító segítségével tudunk hivatkozni: PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN" Ezért tehát a dokumentumunk elején minden bizonnyal szerepelni fog egy ilyen sor: <!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [ <!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man; … ]> A command elemmel a parancsok neveit tudjuk a szövegben hivatkozni közvetlenül, az olvasó által begépelendő formában. Az option elem segítségével a parancsok számára megadható kapcsolókat jelölhetjük. Amikor többször ugyanarra a parancsra hivatkozunk egymáshoz viszonylag közel, a &man.parancs.szekció; típusú jelölést érdemes csak az első hivatkozásnál alkalmazni, a többi inkább legyen egyszerűen csak command elemben. Az ebből készített kimenet, különösen a HTML esetében így kinézetében sokkal olvashatóbb. A jelölési megoldások közti választás ettől függetlenül időnként nem mindig egyértelmű, de remélhetőleg a következő példa segít ebben. Alkalmazások, parancsok és kapcsolók A használat módja: ]]>A <application>sendmail</application> az egyik legelterjedtebb levelező alkalmazás UNIX rendszereken. ]]>A <application>sendmail</application> alkalmazás részei a <citerefentry> <refentrytitle>sendmail</refentrytitle> <manvolnum>8</manvolnum> </citerefentry>, &man.mailq.1; és &man.newaliases.1; programok. ]]>A <citerefentry> <refentrytitle>sendmail</refentrytitle> <manvolnum>8</manvolnum> </citerefentry> egyik kapcsolója a <option>-bp</option>, amellyel a levelezési sorban található üzenetek aktuális állapotát kérdezhetjük le. Ezt a <command>sendmail -bp</command> parancs kiadásával tehetjük meg.]]> Így jelenik meg: A sendmail az egyik legelterjedtebb levelező alkalmazás UNIX rendszereken. A sendmail alkalmazás részei a sendmail 8 , &man.mailq.1; és &man.newaliases.1; programok. A sendmail 8 egyik kapcsolója a , amellyel a levelezési sorban található üzenetek aktuális állapotát kérdezhetjük le. Ezt a sendmail -bp parancs kiadásával tehetjük meg. Figyeljük meg, hogy a &man.parancs.szekció; jelölés mennyivel könnyebben olvasható. Állományok, könyvtárak, kiterjesztések Amikor állományok neveire, könyvtárakra, esetleg kiterjesztésekre akarunk hivatkozni, használjunk a filename elemeket. A <tag>filename</tag> elem A használat módja: ]]>A kézikönyv magyar változatának SGML forrása a <filename class="directory">/usr/doc/hu_HU.ISO8859-2/books/handbook/</filename> könyvtárban található. Ebben a könyvtárban a <filename>book.xml</filename> lesz a fő forrásállomány. Mellette láthatunk még egy <filename>Makefile</filename> állományt és több <filename>.ent</filename> kiterjesztéssel rendelkező állományt.]]> Így jelenik meg: A kézikönyv magyar változatának SGML forrása a /usr/doc/hu_HU.ISO8859-2/books/handbook könyvtárban található. Ebben a könyvtárban a book.xml lesz a fő forrásállomány. Mellette találhatunk még egy Makefile állományt és több .ent kiterjesztéssel rendelkező állományt. A portok nevei A &os; kiterjesztése Ezek az elemek a &os; DocBookhoz készített kiterjesztéseinek részei, az eredeti DocBook DTD-ben nem szerepelnek. Esetenként szükségünk lehet a &os; Portgyűjteményében található bizonyos programok nevének megemlítésére a dokumentációban. Ezt a filename elem role tulajdonságának a package értékre állításával tehetjük meg. Mivel a Portgyűjtemény tetszőleges helyre telepíthető, ezért mindig csak a port kategóriáját és nevét adjuk meg, a /usr/ports rész elhagyásával. A <tag>filename</tag> elem és a <literal>package</literal> role együttes használata A használat módja: ]]>A hálózati forgalom figyeléséhez telepítsük a <filename role="package">net/ethereal</filename> portot.]]> Így jelenik meg: A hálózati forgalom figyeléséhez telepítsük a net/ethereal portot. Eszközök A &os; kiterjesztése Ezek az elemek a &os; DocBookhoz készített kiterjesztéseinek részei, az eredeti DocBook DTD-ben nem szerepelnek. Az eszközök hivatkozását két módon jelölhetjük. Az eszközre hivatkozhatunk a /dev könyvtárban megjelenő neve szerint, vagy pedig a rendszermagbeli neve szerint. Ez utóbbi esetben használjuk a devicename jelölést. Néha előfordulhat, hogy nincs választási lehetőségünk. Bizonyos eszközök, például a hálózati kártyákhoz nem tartozik semmilyen bejegyzés a /dev könyvtárban, esetleg az ott megjelenő nevük teljesen eltér. A <tag>devicename</tag> elem A használat módja: ]]>A &os; rendszermagjában a <devicename>sio</devicename> eszközöket a soros vonali kommunikációra használjuk. A <devicename>sio</devicename> eszközök az idők során több különböző alakban jelentek meg a <filename>/dev</filename> könyvtárban, például <filename>/dev/ttyd0</filename> és <filename>/dev/cuaa0</filename> néven. ]]>Ezzel szemben a hálózati eszközök, mint például az <devicename>ed0</devicename> nem jelennek meg a <filename>/dev</filename> könyvtárban. ]]>Az MS-DOS rendszerekben az elsődleges hajlékonylemezes meghajtót az <devicename>a:</devicename> néven érhetjük el, miközben &os; alatt ennek a neve <filename>/dev/fd0</filename>.]]> Így jelenik meg: A &os; rendszermagjában a sio eszközöket a soros vonali kommunikációra használjuk. A sio eszközök az idők során több különböző alakban jelentek meg a /dev könyvtárban, például /dev/ttyd0 és /dev/cuaa0 néven. Ezzel szemben a hálózati eszközök, mint például az ed0 nem jelennek meg a /dev könyvtárban. Az MS-DOS rendszerekben az elsődleges hajlékonylemezes meghajtót az a: néven érhetjük el, miközben &os; alatt ennek a neve /dev/fd0. Hálózati nevek, tartományok, IP-címek és így tovább A &os; kiterjesztése Ezek az elemek a &os; DocBookhoz készített kiterjesztéseinek részei, az eredeti DocBook DTD-ben nem szerepelnek. A vonatkozó információ jellegétől függően a hálózatba kapcsolt számítógépek azonosítására szolgáló adatatokat többféle módon is jelölni tudjuk. Minden esetben a hostid elemre fogunk támaszkodni, amely role tulajdonságával tudjuk megválasztani a jelölt információ típusát. Nem szerepel a role tulajdonság vagy role="hostname" A role tulajdonság megadása nélkül (vagyis az elem hostid/hostid alakú) a jelölt információ egy hálózati név, mint például freefall vagy disznohal. Ugyanezt explicit módon a role="hostname" hozzáadásával tudjuk jelölni. role="domainname" Az elem tartalma egy tartomány nevét jelöli, mint például FreeBSD.org vagy inf.elte.hu. Ekkor nincs benne konkrét hálózati név. role="fqdn" Az elem tartalma egy teljes hálózati név, amely már tartalmaz tartománynevet és hálózati nevet. role="ipaddr" Az elem egy IP-címet jelöl, négy, pontokkal tagolt szám formájában. role="ip6addr" Az elem egy IPv6 formátumú IP-címet jelöl. role="netmask" Az elem tartalma egy hálózati maszk, amelyet megadhatunk pontokkal elválasztott számokkal, hexadecimális számjegyekkel vagy a / szimbólumot követően egy számmal. role="mac" Az elemben egy Ethernet MAC-címet adtunk meg, kétjegyű hexadecimális számok kettőspontokkal tagolt sorozataként. A <tag>hostid</tag> elem és a különböző role értékek A használat módja: ]]>A gépünk mindig elérhető <hostid>localhost</hostid> néven, amelyhez a <hostid role="ipaddr">127.0.0.1</hostid> IP-cím tartozik. ]]>A <hostid role="domainname">FreeBSD.org</hostid> tartomány több különböző gépet foglal magában, többek közt a <hostid role="fqdn">freefall.FreeBSD.org</hostid> és <hostid role="fqdn">pointyhat.FreeBSD.org</hostid> címeket. ]]>Amikor egy interfészhez IP-álnéveket társítunk (az <command>ifconfig</command> paranccsal), akkor ehhez <emphasis>mindig</emphasis> a <hostid role="netmask">255.255.255.255</hostid> hálózati maszkot adjuk meg (amelyet <hostid role="netmask">0xffffffff</hostid> formában is írhatunk). ]]>A MAC-cím az összes létező hálózati eszközt egyértelműen azonosítja. A MAC-címek általában a <hostid role="mac">08:00:20:87:ef:d0</hostid> címhez hasonlóak.]]> Így jelenik meg: A gépünk mindig elérhető localhost néven, amelyhez a 127.0.0.1 IP-cím tartozik. A FreeBSD.org tartomány több különböző gépet foglal magában, többek közt a freefall.FreeBSD.org és pointyhat.FreeBSD.org címeket. Amikor egy interfészhez IP-álnéveket társítunk (az ifconfig paranccsal), akkor ehhez mindig a 255.255.255.255 hálózati maszkot adjuk meg (amelyet 0xffffffff formában is írhatunk). A MAC-cím az összes létező hálózati eszközt egyértelműen azonosítja. A MAC-címek általában a 08:00:20:87:ef:d0 címhez hasonlóak. Felhasználói nevek A &os; kiterjesztése Ezek az elemek a &os; DocBookhoz készített kiterjesztéseinek részei, az eredeti DocBook DTD-ben nem szerepelnek. Ha felhasználókra (például root vagy bin) kell hivatkoznunk a szövegben, használjuk a username elemet. A <tag>username</tag> elem A felhasználás módja: ]]>A rendszerünk karbantartásával kapcsolatos legtöbb feladatot kizárólag csak a <username>root</username> felhasználóval tudjuk elvégezni.]]> Így jelenik meg: A rendszerünk karbantartásával kapcsolatos legtöbb feladatot kizárólag csak a root felhasználóval tudjuk elvégezni. A <filename>Makefile</filename> állományokkal kapcsolatos jelölések A &os; kiterjesztése Ezek az elemek a &os; DocBookhoz készített kiterjesztéseinek részei, az eredeti DocBook DTD-ben nem szerepelnek. A Makefile állományok egyes részeinek jelöléséhez a maketarget és makevar elemeket tudjuk használni. A maketarget azokat a Makefile állományokban megadott fordítási célokat azonosítja, amelyeket a make paramétereként lehet használni. A makevar pedig azokat a (környezetben, a make hívásakor vagy a Makefile állományon belül definiált) változókat azonosítja, amelyekkel a fordítás folyamát lehet szabályozni. A <tag>maketarget</tag> és a <tag>makevar</tag> elemek A használat módja: ]]>A <filename>Makefile</filename> állományokban két igen gyakori cél az <maketarget>all</maketarget> és a <maketarget>clean</maketarget>. ]]>Az <maketarget>all</maketarget> megadásakor általában újrafordítjuk az alkalmazást, a <maketarget>clean</maketarget> megadásakor pedig eltávolítjuk a fordítás közben keletkezett ideiglenes állományokat (például az <filename>.o</filename> állományokat). ]]>A <maketarget>clean</maketarget> viselkedését számos változó befolyásolja, többek közt a <makevar>CLOBBER</makevar> és a <makevar>RECURSE</makevar>.]]> Így jelenik meg: A Makefile állományokban két igen gyakori cél az all és a clean. Az all megadásakor általában újrafordítjuk az alkalmazást, a clean megadásakor pedig eltávolítjuk a fordítás közben keletkezett ideiglenes állományokat (például az .o állományokat). A clean viselkedését számos változó befolyásolja, többek közt a CLOBBER és a RECURSE. Formázatlan szöveg Sokszor lehet szükségünk formázatlan szövegekre a dokumentáció írása közben. Ilyen szöveg jellemző módon egy valamelyik másik állományból átvett részlet, vagy amelyet magából a dokumentációból kell szó szerint átmásolni egy állományba. Néhány esetben a korábban már bemutatott programlisting pontosan elegendő ehhez a feladathoz. Azonban ez a jelölési módszer nem minden esetben megfelelő, különösen olyan helyzetekben, amikor az állomány egy részét magába a bekezdésbe akarjuk tenni. Ilyen alkalmakkor használjuk a literal elemet. A <tag>literal</tag> elem A használat módja: ]]>A rendszermag konfigurációs állományában a <literal>maxusers 10</literal> sor határozza meg különböző rendszerszintű táblázatok méretét, és ezáltal ad egy durva becslést arra, hogy a rendszerünk mennyi bejelentkezést lesz képes egyszerre kezelni.]]> Így jelenik meg: A rendszermag konfigurációs állományában a maxusers 10 sor határozza meg különböző rendszerszintű táblázatok méretét, és ezáltal ad egy durva becslést arra, hogy a rendszerünk mennyi bejelentkezést lesz képes egyszerre kezelni. Az olvasó által <emphasis>kötelezően</emphasis> kitöltendő részek jelölése Minden bizonnyal lesznek olyan részek a dokumentációban, ahol meg szeretnénk mutatni az olvasónak mit kell csinálnia, esetleg hivatkozni akarunk egy állomány nevére vagy egy parancsra stb., viszont nem közvetlenül a megadott nevet kell bemásolnia, hanem önmagától kell kipótolnia egy sémát. Pontosan ilyen eshetőségekre találták ki a replaceable elemet. Más elemeken belül használva olyan részeket tudunk vele megjelölni, amelyeket az olvasónak kell kitöltenie. A <tag>replaceable</tag> elem A használat módja: &prompt.user; man ]]>parancs]]> Így jelenik meg: &prompt.user; man parancs A replaceable több különböző elemen belül is alkalmazható, egyik ilyen a literal. Ebben a példában azt is megmutatjuk, hogy a replaceable elembe ténylegesen csak azt a részt kell tennünk, amelyet az olvasónak kell hozzátennie, rajta kívül semmi mást nem kell megváltoztatnia. A használat módja: ]]>A rendszermag konfigurációs állományában a <literal>maxusers <replaceable>n</replaceable></literal> sor határozza meg különböző rendszerszintű táblázatok méretét, és ezáltal ad egy durva becslést arra, hogy a rendszerünk mennyi bejelentkezést lesz képes egyszerre kezelni. ]]>Asztali munkaállomások esetén az n helyére írhatjuk például a <literal>32</literal> értéket.]]> Így jelenik meg: A rendszermag konfigurációs állományában a maxusers n sor határozza meg különböző rendszerszintű táblázatok méretét, és ezáltal ad egy durva becslést arra, hogy a rendszerünk mennyi bejelentkezést lesz képes egyszerre kezelni. Asztali munkaállomások esetén az n helyére írhatjuk például a 32 értéket. Hibaüzenetek idézése Olykor szükségünk lehet a &os; által jelzett hibák jelölésére. A hibák során keletkező pontos hibaüzeneteket tegyük errorname elemekbe. Az <tag>errorname</tag> elem A használat módja: Panic: cannot mount root]]> Így jelenik meg: Panic: cannot mount root Képek A dokumentációban a képek használatának támogatása jelen pillanatban még csak kísérleti jellegű. Az itt leírt ismeretek valószínűleg nem fognak változni, de nem szavatoljuk. A különféle képformátumok közti átalakításokhoz még telepítenünk kell a graphics/ImageMagick portot. Ez egy nagy méretű port és a legtöbb részére nincs is konkrétan szükségünk, viszont jelentősen meg tudja könnyíteni a dolgunkat, amikor Makefile állományokkal és egyéb infrastrukturális elemekkel dolgozunk. Ez a port nem része a textproc/docproj metaportnak, külön kell egyedileg telepítenünk. A képek használatára talán a legjobb példát a doc/en_US.ISO8859-1/articles/vm-design szolgáltatja. Ha tehát nem értenénk teljesen a szakaszban leírtakat, nézzük meg ezt az állományt és a gyakorlatban is látni fogjuk hogyan kapcsolódnak össze az felhasznált elemek. Ne restelljünk kísérletezgetni a különböző formázási stílusokkal, így láthatjuk miként jelennek meg a jelölt képek a formázott kimenetben. Képformátumok Jelenleg kétféle képformátum támogatott. A beillesztendő kép jellegétől függ, hogy ezek közül ténylegesen melyiket kell majd használnunk a dokumentumban. Az alapvetően vektoros szerkezetű képeket, mint például a hálózati kapcsolatokat bemutató diagramokat, idővonalakat és ehhez hasonlókat Encapsulated Postscript formátumban érdemes ábrázolnunk. Gondoskodjunk róla, hogy ezek a képek .eps kiterjesztéssel rendelkezzenek. A raszteres képeket, mint például a képernyő elmentett tartalmát Portable Network Graphic formátumban készítsük el. Figyeljünk rá, hogy az ilyen típusú képek kiterjesztése mindig .png legyen. Ezek tehát kizárólagosan azok a formátumok, amelyek bekerülhetnek a repositoryba. A képekhez mindig válasszuk a megfelelő formátumot, teljesen elfogadott a dokumentációban az EPS és PNG formátumú képek vegyes alkalmazása. A Makefile állományok gondoskodni fognak a képek formátumuknak megfelelő szabályos feldolgozásáról. Ugyanazt a képet a repositoryban ne tároljuk el mind a két formátumban! A Dokumentációs Projekt előreláthatólag a jövőben majd a vektoros képek ábrázolására a Scalable Vector Graphic (SVG) formátumot fogja használni, azonban jelenleg még nem állnak rendelkezésre olyan SVG szerkesztők, amelyek ezt a gyakorlatban is hatékonnyá tennék. Jelölések A képek jelölése viszonylag egyszerű. Először is készítsünk egy mediaobject elemet. A mediaobject elembe ezután további, pontosabban specifikáló objektumokat helyezhetünk el. Most két ilyen elemmel foglakozunk, ezek az imageobject és a textobject. Egy imageobject és két textobject elemet kell megadnunk. Az imageobject a beilleszteni kívánt kép nevére fog hivatkozni (kiterjesztés nélkül). A textobject elemekben olyan információ szerepel, amelyet az olvasó a kép mellett vagy éppen helyett fog látni a dokumentumban. Ilyen két esetben fordulat elő: A dokumentum HTML változatát olvassuk. Ekkor minden képhez szükség van még egy helyettesítő szövegre, amelyet a kép betöltődésekor láthatunk, vagy amikor az egérmutatót a kép felé visszük. A dokumentumot nyers szöveges formátumban olvassuk. Ekkor a kép ASCII karakterekből kirakott változatát kellene látnia az olvasónak. Egy példán keresztül mindez valószínűleg sokkal könnyebben érthetővé válik. Tegyük tehát most fel, hogy van egy abra1.png nevű képünk, amelyet szeretnénk betenni a dokumentumba. Ez a kép egy A betűt ábrázol egy téglalapban. A hozzá tartozó jelölés a következő lesz: <mediaobject> <imageobject> <imagedata fileref="abra1"> </imageobject> <textobject> <literallayout class="monospaced">+---------------+ | A | +---------------+</literallayout> </textobject> <textobject> <phrase>Egy kép</phrase> </textobject> </mediaobject> Helyezzünk el egy imagedata elemet az imageobject elembe. A fileref tulajdonságban kell megadnunk kiterjesztés nélkül a képhez tartozó állomány nevét. A stíluslapok maguktól megállapítják a neki megfelelő kiterjesztést. Az első textobject elemben szerepelnie kell egy literallayout elemnek, ahol a class tulajdonság értéke monospaced legyen. Itt tudjuk megmutatni milyen jól tudunk ASCII karakterekkel rajzolni. Ezt a dokumentum nyers szöveges változatának előállításakor fogjuk felhasználni. A literallayout elem belsejének első és utolsó sorában megfigyelhetjük, hogy közvetlenül a szöveges ábra mellett kezdődnek, így garantálhatjuk, hogy semmilyen további felesleges szóköz nem jelenik meg a generált változatban. A második textobject elemben egy phrase elemnek kell lennie. Ennek tartalma lesz a HTML változatban a képhez tartozó alt tulajdonság értéke. A <filename>Makefile</filename> felépítése A Makefile állományokban az IMAGES változóban kell felsorolnunk a dokumentumhoz tartozó képeket. Ebben a változóban kell megadnunk a képek forrását. Tehát például, ha van három ábránk, név szerint az abra1.eps, abra2.png és abra3.png, akkor ennek megfelelően a Makefile állománynak a következő sorokat kellene tartalmaznia: … IMAGES= abra1.eps abra2.png abra3.png … vagy … IMAGES= abra1.eps IMAGES+= abra2.png IMAGES+= abra3.png … A Makefile magától el fogja készíteni a dokumentum lefordításához szükséges képek teljes listáját, nekünk egyedül tehát csak azokat a képeket kell megadnunk, amelyeket mi készítettünk. Képek és fejezetek alkönyvtárakban Nem árt óvatosnak lennünk, amikor a dokumentumunkat kisebb állományokra bontjuk szét (lásd ) több különböző alkönyvtárban. Tegyük fel, hogy van egy három fejezetből álló könyvünk, ahol az egyes fejezeteket a saját könyvtáraikban tároljuk: fejezet1/fejezet.xml, fejezet2/fejezet.xml és fejezet3/fejezet.xml. Ha az egyes fejezetekhez képeket akartunk társítani, akkor javasolt ezeket a fejezetek alkönyvtárába (fejezet1, fejezet2, fejezet3) tennünk. Ekkor azonban ne felejtsük el, hogy a Makefile állomány IMAGES változójában és az imagedata elemekben is a könyvtárak neveivel együtt kell hivatkoznunk a képekre. Például a fejezet1/abra.png kép esetében a fejezet1/fejezet.xml állományban a következőt kell megadnunk: <mediaobject> <imageobject> <imagedata fileref="fejezet1/abra1"> </imageobject> … </mediaobject> A könyvtár nevét is meg kell adnunk a fileref tulajdonságban. Az ennek megfelelő Makefile állomány tartalma: … IMAGES= fejezet1/fejezet1.png … Ezzel már minden remekül működik. Hivatkozások A hivatkozások is belső elemek. Hivatkozás ugyazon a dokumentumon belül A dokumentum belül úgy tudunk hivatkozásokat készíteni, ha egyrészt megadjuk honnan hivatkozunk (tehát szükségünk lesz egy olyan elemre, amelyre az olvasó kattinthat vagy megjelölhető a hivatkozás forrásaként), másrészt megadjuk hova hivatkozunk (tehát a célt). A DocBook összes eleme rendelkezik egy id tulajdonsággal, amelyben az adott elem adott példányához tudunk kapcsolni egy egyedi azonosítót. Ezt az értéket kell megadnunk a hivatkozás forrásának megjelölésekor. Általában tehát amikor fejezeteket vagy szakaszokat hivatkozunk, érdemes felvennünk hozzájuk egy id tulajdonságot. Az <literal>id</literal> tulajdonság fejezeteknél és szakaszoknál ]]>Bevezetés<![CDATA[ ]]>Ez a bevezetés. Ebben szerepel egy szintén azonosítóval rendelkező alszakasz. ]]>Első alszakasz<![CDATA[ ]]>Ez az alszakasz. ]]> A dokumentáció írásakor nyilván ennél beszédesebb azonosítókat lesz majd érdemes kitalálnunk. Mindig ügyeljünk arra, hogy az azonosítóknak egyedieknek kell lenniük a dokumentumban (tehát nem csak az adott állományon, hanem a teljes dokumentum belül). Figyeljük meg hogyan képeztük a példában az alszakasz id tulajdonságát a fejezet id tulajdonságának értékéből. Ezzel szavatoltuk az azonosító egyediségét. Ha a dokumentum valamelyik közbenső elemére (jellemzően egy bekezdés vagy egy példa közepére) akarunk hivatkozni, akkor használjuk az anchor elemet. Ennek az elemnek nincs tartalma, azonban rendelkezik id tulajdonsággal. Az <tag>anchor</tag> elem ]]>Ebben a bekezdésben elrejtettünk egy <anchor id="bekezd">hivatkozás forrását. Ez a dokumentumban nem fog látszani.]]> Ha a dokumentum egy id tulajdonsággal rendelkező részére szeretnénk létrehozni egy hivatkozást (amelyet például kattintással el lehet érni), akkor használjuk az xref vagy link elemeket. Mind a két imént említett elemnek van egy linkend tulajdonsága. Ennek az értéke lényegében ugyanaz lesz, amelyet a hivatkozás forrásában az id tulajdonság értékének megadtunk (nem számít, hogy ez szerepelt-e már a dokumentumban a hivatkozás helye előtt, mert előre és visszafele is lehet hivatkozni). Az xref elem használatakor a hivatkozás szövege magától jön létre, nem tudjuk befolyásolni. Az <tag>xref</tag> elem Tegyük fel, hogy felbukkan a következő szövegrészlet valahol a dokumentumban, amely hivatkozik a korábbi id tulajdonságot bemutató példánk azonosítóira: ]]>A témával kapcsolatos részleteket az <xref linkend="fejezet1"> foglalja össze. ]]>További részleteket pedig a <xref linkend="fejezet1-szakasz1"> tár fel.]]> Ekkor tehát a hivatkozás szövege magától létrejön, így a következő szöveget kapjuk (a kiemelt rész jelzi a hivatkozás szövegét):
A témával kapcsolatos részleteket az Első fejezet foglalja össze. További részleteket pedig az Első alszakasz tár fel.
Figyeljük meg hogyan képeződött a fejezet számából vagy a szakasz címéből a megfelelő hivatkozás. Az iméntiekből következik, hogy az xref elemmel nem lehet anchor elemek id tulajdonságaira hivatkozni. Az anchor elemben nincs semmi, ezért az xref nem képes magától létrehozni hozzá a hivatkozás szövegét. Ha szeretnénk kézzel megadni a hivatkozások szövegét, akkor használjuk a link elemet, amelynek a tartalmában szerepeltethetjük ezt. A <tag>link</tag> elem Tegyük fel, hogy a következő szövegrészlet jelenik meg valahol a dokumentumnkban, és az id tulajdonságot bemutató példában definiált azonosítókra hivatkozik. ]]>Erről bővebb tájékoztatást <link linkend="fejezet1">az első fejezetben</link> kapunk. ]]>Erről a részről pedig <link linkend="fejezet1-szakasz1">ebben</link> a szakaszban olvashatunk többet.]]> Ez a következőképpen jelenik meg (ahol a kiemelt szövegek jelzik a hivatkozásokat magukat):
Erről bővebb tájékoztatást az első fejezetben kapunk. Erről a részről pedig ebben a szakaszban olvashatunk többet.
Ez utóbbi nem teljesen egy jó példa. Lehetőleg ne ebben vagy itt néven hivatkozzunk, mert az olvasó így nem fogja közvetlenül látni, hogy az adott hivatkozás pontosan hova is viszi. A link elemmel már tudunk hivatkozni anchor elemek id tulajdonságaira, hiszen a link elemben már megadható a hivatkozás szövege.
A Világhálón található dokumentumok hivatkozása A külső dokumentumok hivatkozása valamennyivel könnyebb a belső hivatkozások használatánál, mivel ehhez csak annyit kell tudunk, milyen címre akarunk mutatni. Erre az ulink elem alkalmas. Rendelkezik egy url tulajdonsággal, amelyben a hivatkozni kívánt oldal címét kell megadnunk. Az elem belsejében pedig a hivatkozás olvasó felé megjelenő szövegét adhatjuk meg. Az <tag>ulink</tag> elem A használat módja: ]]>Természetesen már most felhagyhatunk a dokumentum olvasásával és helyette megnézhetjük a <ulink url="&url.base;/index.html">&os; honlapját</ulink>.]]> Így jelenik meg: Természetesen már most felhagyhatunk a dokumentum olvasásával és helyette megnézhetjük a &os; honlapját.