Основната част от FDP документацията е написана на SGML. Тази глава обяснява какво точно означава това, как да четете и разбирате сорсовете на документацията и SGML триковете, които ще видите да се използват.
Части от тази секция за вдъхновени от книгата на Mark Galassi Get Going With DocBook.
В миналото, беше лесно да се работи с електронен текст. Достатъчно е да знаеш, че символният набор на документа, който пишеш е (ASCII, EBCDIC или някой от останалите) и това е всичко. Текста беше текст и това което получавахте наистина беше това което виждате. Без украшения, форматиране, интелигентност.
Неизбежно, това не беше достатъчно. След като имате текста в формат годен за обработка от машина, очаквате машината да може да го използва и обработва интелигентно. Вероятно бихте искали да укажете, че някои фрази трябва да бъдат подчертани, добавени към речник или да бъдат хипервръзки. Бихте искали имената на файлове да бъдат показани в ``ръкописен '' стил когато са показани на екран, но ``наклонени'', когато са отпечатани или в друга форма.
Имаше надежда, че изкуственият интелект може да направи това лесно. Вашият компютър, ще може да прочете документ и автоматично да разпознае ключови фрази, имена на файлове, текст който читателят трябва да напише, примери и т.н. За съжаление това все още не се е случило и на нашите компютри им е необходима помощ преди да могат манипулират текст.
Компютрите имат нужда от помощ за да идентифицират кое какво е. Вие или аз гледайки това
лесно виждаме кои части са имена на файлове, кои са команди които трябва да се напишат, кои части са препратки към страници от ръководството и т.н. Но компютъра обработващ този документ не може. Заради това имаме нужда от маркиране.за да изтриете /tmp/foo използвайте rm(1).
% rm /tmp/foo
``Маркирането'' често се използва за да опишe `` добавянето на стойност'' или ``увеличаване на обема'' в смисъл на прилагане върху текст. Маркирането е допълнителен текст включен към документ, но разграничен от съдържанието на документа по някакъв начин, така че програмите обработващи документа да могат да четат маркирането и да го използват при показване на текста. Редактиращите програми могат да скрият маркирането от потребителя, така че той да не се смущава от него.
Допълнителната информация съдържаща се в маркирането добавя стойност към документа. Добавянето на маркиране към документа трябва да бъде извършено от човек. В крайна сметка, ако компютрите можеха да разпознават текста достатъчно добре за да добавят маркирането то то не би било нужно. Това се нарича оскъпяване (т.е., работата необходима за да се създаде документа).
Ето как беше представен в този документ предишният пример;
<para>За да изтриете <filename>/tmp/foo</filename> използвайте &man.rm.1;.</para> <screen>&prompt.user; <userinput>rm /tmp/foo</userinput></screen>
Както виждате, маркирането е ясно отделено от съдържанието.
Очевидно, ако искате да използвате маркиране, ще трябва да дефинирате какво означава то, и как трябва да бъде интерпретирано. Имате нужда от език за маркиране, който да използвате в документите си.
Разбира се, един език за маркиране може да не е достатъчен. Език за маркиране на техническа документация има различни изисквания от език за маркиране на рецепти за сладки. Той пък от своя страна би бил различен от езика за маркиране на поезия. Това от което има нужда е основен език, който да се използва за написване на други езици за маркиране, мета език за маркиране.
Точно такъв е Standard Generalised Markup Language (SGML). Много езици за маркиране са написани на SGML, включително двата най-използвани от FDP, HTML и DocBook.
Дефиницията на тези езици се нарича Document Type Definition (DTD). DTD специфицира имената на елементите, които могат да се използват, в какъв ред трябва да се появяват (дали едно маркиране може да се използва вътре в друго) както и други неща. DTD понякога се нарича приложение (програма) на SGML.
DTD е пълно описание на всички елементи, които могат да се появяват, реда в които трябва да се появяват, кои елементи са задължителни, кои са опционални и т.н. Това прави възможно написването на парсер, които чете едновременно DTD и документ за които се смята, че е отговаря на DTD. Този парсер може да потвърди дали елементите на DTD, които са в документа, са в правилния ред и дали има грешки в маркирането. Обикновенно, това се нарича ``валидизиране на документ''.
Note: Това просто може да потвърди, че избраните елементи, подредбата им и т.н. отговарят на описаното в DTD. Валидизирането няма да провери дали сте използвали правилното маркиране на съдържанието. Ако маркирате всички имена на файлове в документ като имена на функции, парсера няма да отбележи това като грешка (предполагайки разбира се, че DTD дефинира елементи като имена на файлове и функции и те могат да се появяват на едно и също място).
Най-вероятно това, които ще правите за документацията за FreeBSD ще бъде маркирано като HTML или като DocBook, отколкото като друга разновидност. Поради тази причина, тази книга няма да се занимава с това как да се пише DTD.
Този и други документи можете да намерите в ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
За въпроси отностно FreeBSD, прочетете
документацията
преди да попитате в <questions@FreeBSD.org>.
За въпроси отностно този документ, e-mail <doc@FreeBSD.org>.