Смекни!
smekni.com

Разработка конвертора из текстового формата nroff в гипертекстовый формат HTML (стр. 2 из 13)

\*(xy - использовать регистр xy – две буквы

\w’string’ - размер строки

Комментарии:

\” комментарий

Макросы:

.de xx \” –начало определения макроса

Today is \ \$1 the \ \$2.

.. \” –конец определения макроса

Использование макроса:

.xx Monday 14th

Получится: Today is Monday the 14th

HTML.

Простота документов заключается в следующем: текст, который нужно обработать или применить к нему какое-то действие, находится между так называемыми тэгами, соответственно открывающим и закрывающим. Общий вид тэгов: <TAG_NAME> </tag_name>. Приведу основные тэги языка HTML. Поскольку обычно HTML-документ используется в качестве Web-страницы, то в дальнейшем вместо термина HTML-документ будет использоваться термин Web-страница.

<COMMENT> </comment> - текст комментария. Существует ограничение – внутри комментария не должны располагаться другие элементы. Текст комментария не выводится браузером на экран. Также комментарий можно выделять следующим образом <!-- comment -->.

<HTML> </html> - отличительный признак Web-страница. Имеет редко используемые атрибуты version, lang, dir. Этот тэг допускает вложение элементов HEAD, BODY, PLAINTEXT. Конечным тэгом </html> заканчиваются все гипертекстовые документы.

<HEAD> </head> - область заголовка Web-страницы, служит для формирования общей структуры документа. Этот элемент может иметь атрибуты lang, dir и допускает вложения элементов TITLE, ISINDEX, BASE, META, LINK, NEXTID.

<TITLE> </title> - элемент для размещения заголовка Web-страницы. Строка текста, расположенная внутри, отображается не в документе, а в заголовке окна броузера.

<STYLE> </style> - описание стиля некоторых элементов Web-страницы. Например, элемент <STYLE> H2 {font-family: Arial;} </style> определяет стиль шрифта в элементе H2.

<BODY> </body> - заключает в себе гипертекст, который собственно определяет Web-страницу, отображаемую броузером. Внутри этого элемента можно использовать все элементы, предназначенные для дизайна Web-страницы. Внутри стартового тэга можно располагать ряд атрибутов, обеспечивающих установки для всей страницы целиком. Атрибуты:

background=”Путь к файлу фона”

bgcolor=”#RRGGBB” – здесь три 2-разрядных 16-ричных числа, которые определяют интенсивность красного, зеленого и синего цветов.

text=”#RRGGBB” – цвет текста страницы

link=”#RRGGBB” – цвет гиперссылки

vlink=”#RRGGBB” – цвет использованных гиперссылок

alink=”#RRGGBB” – цвет последней выбранной пользователем ссылки

<H1> </h1> - элемент заголовка. Существует 6 уровней заголовков, которые обозначаются H1..H6. Заголовок уровня 1 – самый крупный, уровень 6 – самый маленький. Для этого элемента можно использовать атрибут, задающий выравнивание влево, по центру или вправо:

align=”left” (“center”, “right”).

<HR> - горизонтальная линия. Этот элемент не имеет конечного тэга, но допускает ряд атрибутов:

align=”left” (“center”, “right”, “justify”) – выравнивание влево, по центру, вправо, по ширине.

size=толщина в пикселях – толщина линии

width=длина в пикселях

width=длина в процентах%

color=”Цвет”

Варьируя параметры длины и толщины можно представлять линию в виде прямоугольника.

<A> </a> - гиперссылки. Частный случай – шаблон для создания меток: <A name=”Метка”></a>

<BASE> - элемент для создания базового адреса (UR) для ссылок.

Дальше рассмотрены элементы, относящиеся непосредственно к форматированию текста, то есть именно то, что будет необходимо для разработки программы-транслятора.

<P> </p> - элемент абзаца (paragraph). В принципе позволяет использовать только начальный тэг, так как следующий элемент Р обозначает конец предыдущего и начало следующего абзаца. Вместе с этим элементом используются атрибуты:

align=”left” (“center”, “right”)

<BR> - элемент, обеспечивающий принудительный переход на новую строку. Имеет только стартовый тэг. Строка заканчивается в месте его размещения.

<NOBR> </nobr> - элемент противоположный предыдущему. Текст, заключенный между его тэгами, будет выведен в одну строку. Если строка будет слишком длинна придется использовать горизонтальную полосу прокрутки броузера.

<PRE> </pre> - элемент для обозначения текста, отформатированного заранее (preformatted).

<BLOCKQUOTE> </blockquote> - обозначение цитаты. Этот элемент требует наличия конечного тэга. Текст не претерпевает никаких изменений, но абзац располагается с отступом. В настоящее время существует сокращенное написание этого элемента: BQ.

<CENTER> </center> - элемент для центрирования текста, а точнее любого содержимого. Принято, когда это возможно использовать вместо этого элемента атрибут align=”center”

<DIV> </div> - элемент, похожий на предыдущий, позволяет выравнивать содержимое по левому, правому краю или по центру. Для этого стартовый тэг должен содержать атрибут:

align=”left” (“center”, “right”)

<B> </b> - выделение текста полужирным шрифтом.

<BIG> </big> - увеличенный размер шрифта

<SMALL> </small> - уменьшенный размер шрифта

<I> </i> - выделение текста курсивом

<EM> </em> и <DFN> </dfn> - элементы, обозначающие выразительность (emphasis) фрагмента текста и определение чего-либо (definition). Оба элемента аналогичны по своему действию элементу I, то есть в большинстве случаев позволяют выделить текст курсивом. Они имеют смысл, когда необходимо одинаково выделить фрагменты текста в разных частях документа.

<TT> </tt> - элемент, обозначающий текст телетайпа (teletype).

<STRIKE> </strike> - элемент, создающий перечеркнутое начертание текста. В настоящее время его заменяют более простым <S> </s>.

<U> </u> - подчеркнутое начертание текста.

<STRONG> </strong> - элемент, отвечающий за выделение текста. Обычно его применение равносильно использование элемента для выделения полужирным <B>.

<SUB> </sub> - элемент, создающий эффект нижнего индекса (subscript).

<SUP> </sup> - элемент, создающий эффект верхнего индекса (superscript).

<PLAINTEXT> </plaintext> - элемент, предназначенный для создания текста с конструкциями HTML, которые должны восприниматься именно как текст, а не как команды для броузера. Все тэги, заключенные в этот элемент, будут восприниматься только как произвольные символы.

<CODE> </code>, <SAMP> </samp> и <VAR> </var> - элементы, предназначенные для вывода фрагментов программ. CODE используется для форматирования текста программы. SAMP предполагается задействовать при иллюстрации примеров (sample) вывода данных на экран. VAR был создан для выделения переменных (variables).

<KBD> </kbd> - этот элемент предназначен для указания текста, который пользователь должен ввести с клавиатуры (keyboard).

<CITE> </cite> - предполагается, что этот элемент может быть использован для форматирования цитат и ссылок в обычном понимании этого слова. Текст, расположенный внутри него, выводится по умолчанию курсивом.

<ADDRESS> </address> - подобно предыдущему элементу, этот элемент отличается только предусмотренным содержанием.

<BASEFONT> - элемент, определяющий базовый (основной) размер шрифта. Внутри элемента необходимо указать атрибут:

size=Базовый размер шрифта – его величина может лежать в предела от 1 до 7. По умолчанию используется величина 3. Установка, выполняемая этим элементом, имеет значение для элемента FONT, который позволяет задавать относительный размер шрифта.

<FONT> </font> - определение типа, размера и цвета шрифта. Все эти характеристики определяются с помощью соответствующих атрибутов. Например, абсолютный размер шрифта задается с помощью атрибута:

size=абсолютный размер шрифта – этот атрибут может принимать значение от 1 до 7.

Также размер шрифта может задаваться относительно базового:

size=+число (-число)

Атрибут цвета:

color=”Цвет”

Тип шрифта:

face=”название шрифта”.

Также в HTML можно использовать таблицы, списки, ссылки, рисунки, различные формы, а также подключаемые апплеты и некоторые другие элементы. Но поскольку nroff не поддерживает подобные элементы, они не рассматриваются в данной работе. Более подробно узнать о них можно в литературе, посвященной HTML.

Вид документа в разных форматах.

Для наглядности приведу пример текстового документа с различными приемами форматирования текста, а затем представлю его в обоих рассматриваемых форматах (nroff и HTML).

Результирующий текст (тот, который мы хотим видеть на экране):

Это пример текстового документа

Здесь показаны некоторые возможности форматирования текста

Пропуск строки

Работа с расположением текста:

Выровнять по левому краю

Выровнять по центру

Выровнять по правому краю

Есть также команды, позволяющие работать со шрифтами:

Обычный шрифт

Другой (вызванный) шрифт

Подчеркнутый текст

Подчеркнутый отцентрированный текст

Представим теперь этот текст в формате nroff.

.ft Times New Roman

.ad l

.nf

Это пример текстового документа

.br

Здесь показаны некоторые возможности форматирования текста

.sp

Пропуск строки

.sp

Работа с расположением текста:

.ad l

Выровнять по левому краю

.ad c

Выровнять по центру

.ad r

Выровнять по правому краю

.br

Есть также команды, позволяющие работать со шрифтами:

.br

Обычный шрифт

.br

.ft Arial

Другой (вызванный) шрифт

.ft Times New Roman

.br

.ul 1

Подчеркнутый текст

.ce 1

.ul 1

Подчеркнутый отцентрированный текст

Как видно из примера, каждой строке предшествует определенная команда. Команда отсутствует в том случае, если над текстом не надо производить никаких дополнительных действий. Поясню некоторые команды.

.ft Times New Roman – установка для документа определенного шрифта (а позже его временная смена на шрифт Arial)

.ad l (c, r) – выравнивание текста по левому краю (центру, правому краю)

.sp – пропуск строки

.br – начало новой строки

.ul 1 – подчеркивание следующей (одной) строки

.ce 1 – центрирование следующей (одной) строки

Это простейший пример, в принципе, возможности формата nroff значительно шире. Используя весь набор команд nroff, можно достаточно полно применять разные способы и приемы форматирования текста.