Урок 4. Гипертекст

Сказание о гипертекстах

Уже достаточно много времени затрачено на то, чтобы научиться при помощи HTML и браузера выводить на экран тексты.

Но это просто тексты. Используя мощный текстовый процессор, такой, как Microsoft Word, сверстать объявление, письмо брошюру и небольшую книгу можно гораздо быстрее, и результат будет лучшего качества.

При этом не надо писать программы, вникать во все тонкости многочисленных тегов и их атрибутов. Работая в Worde, практически не надо думать ни о чем, кроме содержания собственного произведения. Разнообразный оформительский инструментарий имеет интуитивно-понятный интерфейс и многочисленную библиотеку шрифтов, линий, значков, рамочек, орнаментов, фигур, картиночек и других полезных “штучек”, которые делают текст на экране и бумаге приятным для глаза. При условии, конечно, что вы не лишены вкуса и чувства меры.

Так почему же во всем мире разразился настоящий бум HTML-программирования? Сбывается мечта А.П.Ершова: программирование становится второй грамотностью, народным увлечением.

Главных причин популярности HTML три. Вот они в порядке возрастания важности.

  1. HTML-программирование очень простое. В нем нет традиционных алгоритмических структур, таких, как развилка, цикл, процедура. Оно линейно в своей основе.
    (Отступлением от этого тезиса являются ссылки. С их помощью можно организовать ветвление и процедурный вызов. Об этом будет рассказано ниже. Однако, эти средства слишком примитивны для серьезного сопоставления с аналогичными структурами языков типа Си или Паскаль.)

    Многие авторы учебников даже стесняются называть HTML-тексты программами. Работу HTML-проектировщика они называют разметкой текста. На самом деле, в этом названии заключена методическая ошибка. Ведь оно (название) предполагает такой порядок работы:

    Однако, хорошие гипертекстовые документы при таком подходе получить гораздо сложнее, чем в случае когда, структура HTML-документа планируется еще до написания текстов. Ведь гипертекст устроен принципиально иначе (см. третью причину).

  2. Переносимость.

    Если, работая в Word'e, вы создаете документ для собственного потребления, у вас нет проблем. Нет проблем и тогда, когда вы посылаете свою работу в мир как печатную копию. Если же ваш партнер, издатель или коллега просит прислать электронную версию — начинаются проблемы.

    Но даже, если все эти условия выполнены, все равно мало шансов на то, что ваш товарищ увидит текст неискаженным (картинки вылезают из рамок, границы страниц плывут по тексту…). Это происходит потому, что ваш Word и Word вашего партнера настроены по-разному.

    После того, как по телефону (или электронной почте) редакторы будут настроены одинаково, текст все равно может выглядеть по-разному уже по причинам, известным только фирме Microsoft.

    Все, о чем говорилось, называется непереносимостью продукта. Не в том смысле, что продукт кого-то не любит, а в том, что разным пользователям невозможно, или крайне тяжело, отображать у себя то, что сделано в другом месте.

    HTML-документ является переносимым продуктом. Это означает, что авторский труд будет легко доступен огромному числу пользователей, независимо от марки компьютера и типа операционной системы. Именно это свойство HTML-документов, а также их относительно малый размер, позволили с успехом использовать HTML-технологию для подготовки WWW-страниц в Интернете.

    Переносимость HTML-документа достигается за счет того, что пересылается не экранное изображение, а программа. А изображение строит браузер, выполняя команды этой программы. Правда, и здесь не все гладко. Разные браузеры могут работать немного по-разному.

  3. HTML-документ — это гипертекст.

    Обычный текст имеет линейную структуру. И хотя пользователь может читать любые его страницы и строчки, листая документ на экране или в бумажной книге, автор предполагает, что текст читается по порядку. Сначала первая страница, потом вторая и так далее.

Гипертексты и браузеры

Читая эту книгу, вы, конечно, уже достаточно много поработали со ссылками и понимаете, что это такое на практике.

Вы поняли, что:

Если ссылки образуют вложенную цепочку, то кнопки Назад (Back) и Вперед (Forward) можно использовать для движения по пройденному ссылочному пути в обе стороны. Они работают как традиционные операции “откатка” и “накатка” в большинстве прикладных программ.

В нижеприведенном примере используется цепочка вложенных ссылок. Совершите небольшое путешествие. Сначала, щелкая ссылки, доберитесь до текста, в котором ссылок уже нет. Затем, пользуясь навигационными кнопками браузера, “прогуляйтесь” по пройденному пути вперед и назад.

Пример Цепочка вложенных ссылок

Ссылки могут уводить не только в разные документы, но загружать на экран разные фрагменты одного и того же текста. В последнем случае навигационные средства браузера работают также.

Пример Ссылка внутри документа

Переход внутри одного документа

Для задания гипертекстового перехода внутри документа используют две команды <A>. Первая команда с атрибутом href является источником перехода, вторая с атрибутом name — приемником.

Общий вид программы Комментарии

Задание перехода по метке
На экран выводится ссылка: текст

Метка. Сюда браузер приходит по ссылке.
На экране ничего не отображается.

Переход браузера

Для организации перехода внутри документа нужно:

  1. Выбрать имя для метки.


  2. Запрограммировать переход по метке.
    В месте перехода нужно написать команду <A href=#метка>текст</A>.
    Здесь:


  3. Установить тег с меткой в нужном месте HTML-программы.
    Перед фрагментом HTML-программы, на который должен выполниться переход записать команду-метку <A name=метка></A>.
    При этом:

Пример
Программа

Переход к другому документу

Для того, чтобы браузер загрузил в свое окно новый HTML-документ, нужно записать в программе ссылку при помощи команды <A> с атрибутом href=имя_файла.

Общий вид программы Комментарии
Выполнить файл “имя_файла”.
На экран выводится ссылка: текст

При щелчке пользователя на ссылке
браузер строит на экране документ
по программе, заданной в файле
“имя_файла”.

Документ
Программа (файл doc1.htm)
Программа, на которую настроена ссылка в документе (файл doc2.htm)

Переход браузера

Переход к метке другого документа

Мы научились решать такие задачи:

Эти два метода можно объединить и передать управление из одного документа к метке внутри другого.

Общий вид программы Комментарии

Приступить к показу фрагмента
с меткой "метка" в файле
"имя_файла". На экран выводится
ссылка: текст.


При щелчке пользователя на
ссылке браузер строит на экране
документ по программе, заданной
в файле "имя_файла", начиная с
фрагмента с меткой "метка".

Документ
Программа (файл doc3.htm)
Программа, на которую настроена ссылка в документе (файл doc4.htm)

Переход браузера

Имена файлов и ссылки на них

Имена файлов с HTML-программами имеют расширение htm или html.

Без необходимости обозначение html лучше не использовать, так как не все операционные системы понимают 4 символа в расширении имени файла.

Имена для файлов всегда стараются придумать осмысленные. Когда файлов много, порядок в именах имеет особое значение.

Если, например, ваш многофайловый гипертекст имеет иерархическую структуру, старайтесь в обозначениях учитывать иерархию. Так, основной файл с оглавлением можно назвать 00.htm (или index.htm). Файл с первой главой — 01.htm и так далее (быть может до 99.htm). Когда главы имеют файлы-параграфы, их имена получаются из имени главы добавлением двузначного номера параграфа. Так же поступают и с файлами-пунктами параграфа.

Предлагаемая нотация позволяет по имени файла определить его принадлежность. Например, файл 0205.htm — описывает построение пятого параграфа второй главы, а файл 111299.htm — 99-ый пункт 12-ого параграфа 11-ой главы.

Если в теге <A> указано имя файла, браузер ищет файл в том же каталоге, в котором расположен файл со ссылкой. Когда необходимо сослаться на файл из другого каталога можно:

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

Пусть, например, ваш гипертекст расположен в каталоге BOOK корневого каталога диска C. В самом каталоге BOOK расположен файл с оглавлением 00.htm. Остальные файлы помещены в подкаталоги 01, 02, 03, 04 в соответствии с принадлежностью к той или иной главе документа. Каталог

Как можно сослаться из файла 00.htm на файл 02.htm?

  1. C:/BOOK/02/02.htm (абсолютная адресация)
  2. ./02/02.htm (относительная адресация)

Первый способ приводит к непереносимости вашего продукта. Стоит вам перезаписать, например, каталог BOOK на диск D, как ссылки перестают работать.

Вторая запись предлагает браузеру ориентироваться на текущий каталог — об этом говорит указание “./”. Можно перемещать каталог BOOK в любое место и даже переименовывать его — ссылки работать будут.

Относительная ссылка из файла 02.htm в файл 00.htm запишется так: ../00.htm. Символы “../” указывают на родительский каталог.

Замечание
При записи пути к файлу используйте косую черту с наклоном вправо, а не влево, как принято в DOS, даже если ваш браузер находит ссылки и с левонаклонной чертой. Наклон черты становится существенным при размещении гипертекста на сервере для доступа к нему из Интернета. Серверы, как правило, работают под операционной системой UNIX, а в ней черточки — правонаклонные.



Зачетный класс

Нажмите кнопку “Сброс”, затем выберите верные ответы на вопросы.

  1. Запишите имя команды для задания гиперссылки



  2. Запишите имя атрибута команды <A> для задания гиперссылки



  3. Запишите имя атрибута команды <A> для задания метки внутри программы



  4. Однажды Иван Ломтиков программировал гипертекст — справочник по животным. В начало страницы он захотел поместить список зверей, а ниже — их описание. Подумав немного, он решил каждый элемент списка сделать гиперссылкой. У него получилась такая программа:


    Довольный работой, Иван запустил браузер и увидел вот что. Почему браузер не показывает ссылки? Документ ведь должен был быть таким.

    Ссылки нельзя записывать внутри списков Метки нужно записывать так:
    <A name=#волк></A>
    <A name=#цыпа></A>
    Ссылки нужно записать так:
    <A href=#волк>волк</A>
    <A href=#цыпа>цыпа</A>
    Имя метки нужно записывать в кавычках.


  5. В другой раз, Иван Ломтиков решил улучшить свой справочник и сделать его многофайловым гипертекстом. В файл 00.htm Иван поместил содержание справочника, а в файлы 01.htm и 02.htm — описания животных.
    Все файлы Иван поместил в один каталог.

    Файл 00.htm Файл 01.htm Файл 02.htm

    Отметьте верные утверждения:
    Программы написаны правильно
    Ссылки не будут видны на экране
    Иван забыл разместить в файлах 01.htm и 02.htm метки
    Перед именем файла в ссылках нужно записывать символ “#”
    Ссылки заданы правильно
    В файле 01.htm должен быть тег <A name=волк>
    В файле 02.htm должен быть тег <A name=цыпа>


Чтобы увидеть результат работы, нажмите кнопку “Оценка”.


Задания

  1. Создайте справочник в виде одного HTML-файла. Документ должен начинаться с оглавления, содержащего ссылки. Далее должна располагаться справочная информация с метками.

  2. Создайте игру в загадки в виде многофайлового HTML-документа. Основной файл должен содержать загадки, вспомогательные — разгадки.

[оглавление] [урок 3] [урок 5]