Язык разметки

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Язык разметки (текста) в компьютерной терминологии — набор символов или последовательностей, вставляемых в текст для передачи информации о его выводе или строении. Принадлежит классу компьютерных языков. Текстовый документ, написанный с использованием языка разметки, содержит не только сам текст (как последовательность слов и знаков препинания), но и дополнительную информацию о различных его участках — например, указание на заголовки, выделения, списки и т. д. В более сложных случаях язык разметки позволяет вставлять в документ интерактивные элементы и содержание других документов.

Содержание

Логическая и визуальная разметки

Различают логическую и визуальную разметки. В первом случае речь идет только о том, какую роль играет данный участок документа в его общей структуре (например, «данная строка является заголовком»). Во втором определяется, как именно будет отображаться этот элемент (например, «данную строку следует отображать жирным шрифтом»). Идея языков разметки состоит в том, что визуальное отображение документа должно автоматически получаться из логической разметки и не зависеть от его непосредственного содержания. Это упрощает автоматическую обработку документа и его отображение в различных условиях (например, один и тот же файл может по-разному отображаться на экране компьютера, мобильного телефона и на печати, поскольку свойства этих устройств вывода существенно различаются). Однако это правило часто нарушается: например, создавая документ в редакторе наподобие MS Word, пользователь может выделять заголовки жирным шрифтом, но нигде не указывать, что эта строка является заголовком.

Примеры языков разметки

Языки разметки используются везде, где требуется вывод форматированного текста: в типографии (SGML, TeX, PostScript, PDF), пользовательских интерфейсах компьютеров (Microsoft Word, OpenOffice, troff), Всемирной Сети (HTML, XHTML, XML, WML, VML, PGML, SVG, XBRL).

Для написания исходных текстов Википедии, её участники используют особый язык разметки (см. Википедия:Как править статьи), а для отображения сложных математических формул — язык TeX.

Облегчённые языки разметки

Языки, предназначенные для простого и быстрого написания текста в простом текстовом редакторе, называются облегчёнными (en:Lightweight markup language). Особенности таких языков:

  • Минимум функций.
  • Небольшой набор поддерживаемых тегов.
  • Легки в освоении.
  • Исходный текст на таком языке читается с такой же лёгкостью, как и готовый документ.

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

История

Термин «разметка» (markup) произошёл от словосочетания «marking up» (помечание, размечание — анг.) из традиционной издательской практики проставления специальных условных пометок на полях и в тексте рукописи или корректуры перед передачей её в печать. Таким образом «разметчики» (markup men) указывали гарнитуру, стиль и размер шрифта для каждой части текста. В наше время разметкой текста занимаются редакторы, корректоры, графические дизайнеры - и, конечно же, сами авторы.

GenCode

Идея использовать языки разметки в компьютерной обработке текстов, вероятнее всего, была впервые обнародована Вильямом Тьюнниклиффом (англ. William W. Tunnicliffe) на конференции в 1967 году. Сам он именовал своё предложение «универсальным кодированием» (англ. «generic coding»). В 1970-е годы Тьюнниклифф руководил разработкой стандарта GenCode для издательской индустрии и позже занял пост руководителя одного из комитетов Международной организации по стандартизации (ISO, англ. International Organization for Standartization), создавшего SGML, первый описательный язык разметки. Брайан Рэйд (англ. Brian Reid) в своей диссертации, которую он защитил в 1980 году в университете Карнеги (англ. Carnegie Mellon University), в развитие предложенной концепции осуществил практическую реализацию описательной разметки.

Тем не менее, в настоящее время «отцом» языков разметки обычно называют исследователя IBM Чарльза Голдфарба (англ. Charles Goldfarb). Основная концепция родилась у него в 1969 году, при работе над примитивной системой управления документами, предназначенной для адвокатских контор. В том же году он принял участие в создании языка IBM GML, который был впервые представлен в 1973 году.

В 1975 году Голдфарб переехал из Кембриджа, Массачусетс в Силиконовую долину, где стал разработчиком исследовательского центра IBM Almaden Research Center. Там он в 1978 году убедил руководство IBM использовать GML в коммерческих целях в составе разработанного компанией «средства формирования документов» (англ. Document Composition Facility), после чего GML несколько лет широко использовался в бизнесе.

В 1978 году начались первые разработки, которые в конечном итоге привели к созданию стандарта SGML, основанного на GML и GenCode. Сам Голдфарб позднее возглавил комитет по SGML, который был принят организацией ISO в качестве стандартного в октябре 1986 года.

Некоторые ранние реализации компьютерных языков разметки можно обнаружить в типографских утилитах UNIX, таких как troff и nroff. Они позволяют вставлять команды форматирования в текст документа для его форматирования согласно требованиям редактора.

Доступность издательского софта с функцией WYSIWYG (англ. «what you see is what you get» — «что увидишь, то и получишь») вытеснила большинство этих языков среди обычных пользователей, хотя серьезная издательская работа по-прежнему использует разметку для специфических не визуальных структур текста, а WYSIWYG-редакторы сейчас чаще всего сохраняют документы в форматах, основанных на языках разметки.

TeX

Другой важный издательский стандарт — это ТеХ, созданный и впоследствии улучшенный Дональдом Кнутом в 70е-80е года двадцатого столетия. ТеХ собрал воедино высокие возможности форматирования текста и описания шрифтов, в особенности для математических книг профессионального качества. Это потребовало от Кнута большого количества времени для изучения искусства набора текстов. Тем не менее, ТеХ пошел вниз[источник не указан 1912 дней] по наклонной кривой, так что теперь он в основном используется в научном мире, где является стандартом де-факто во многих научных дисциплинах. Помимо Тех существует LaTeX, который представляет собой широко используемую описательную систему разметки на основе ТеХ.

Scribe, GML и SGML

Первым языком с четким и ясным различием между структурой и видом документа был Scribe, был создан и описан докторской диссертацией Брайана Рейда (Brian Reid) в 1980 году. Scribe был революционным в количестве способов обработки, не в последнюю очередь из-за введенной идеи стилей, отделенных от собственно текста и грамматики и управляющих использованием описательных элементов. Scribe оказал влияние на разработку языка GML (позже SGML), а так же он является прямым предком языков HTML и LaTeX.

В начале 80х идея, что разметка должна быть сфокусирована на структурных аспектах документа и должна оставить внешнее представление документа интерпретатору, привела к созданию SGML. Язык был разработан комитетом, возглавляемым Голдфарбом. Он объединил идеи со многих источников, включая Тьюнникоффликский проект, GenCode. Шэрон Адлер (Sharon Adler), Андерс Бергланд (Anders Berglund) и Джеймс А. Марк (James A.Marke) так же были ключевыми членами комитета SGML.

SGML точно определял синтаксис для включения разметки в текст, а так же отдельно описывал какие теги разрешены и где (DTD — Document Type Definition). Это давало возможность авторам создавать и использовать любую разметку, какую они захотят, выбирая теги для использования и давая им имена на нормальном языке. Таким образом, SGML следует считать мета-языком; множественные специальные языки разметок произошли от него. Поздние 80е были наиболее значимыми в появлении новых языков разметок, основанных на SGML, например TEI и DocBook.

В 1986 году SGML был опубликован как международный стандарт организацией ISO под номером 8879. SGML нашел широкое признание и широко использовался в очень больших проектах. Как бы то ни было, в целом было обнаружено, что он громоздок и труден для изучения, побочным эффектом языка было в том, что он пытался сделать слишком много и быть чересчур гибким. Для примера, SGML создавал не всегда нужные закрывающие теги (или открывающие, или даже оба), потому что считал, что эта разметка будет добавлена вручную, штатом поддержки проекта, которые бы оценили экономию нажатий клавиш.

HTML

К 1991 году использование SGML было ограничено бизнес-программами и базами данных, а WYSIWYG-инструменты (которые сохраняли документы в проприетарных бинарных форматах) использовались для остальных программ обработки документов. Ситуация изменилась, когда сэр Тим Бернерс-Ли, узнав о SGML от своего коллеги Андерса Бергланда (англ. Anders Berglund) и других сотрудников в ЦЕРНе, использовал синтаксис SGML для создания HTML. Этот язык имел сходство с другими основанными на синтаксисе SGML языками разметки, однако начать его использование было гораздо проще даже тем разработчикам, которые никогда этого не делали. Стивен ДеРоуз (Steven DeRose) убеждал, что HTML, использующий описательную разметку (и от языка SGML в частности) — это основной фактор в развитии Web, потому что в нем была заложена гибкость и расширяемость (а также другие факторы, включая понятие о URL и свободное использование браузерами). В наше время HTML — наиболее привлекательный и самый часто используемый[источник не указан 2008 дней] язык разметки в мире.

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

XML

XML (расширяемый язык разметки) — это мета-язык разметки, широко используемый в настоящее время. XML разработан консорциумом World Wibe Web в комитете, возглавляемом Джоном Босаком (Jon Bosak). Основное предназначение XML — быть более простым, чем SGML и сфокусироваться на специфичной проблеме — документах в интернете. XML — мета-язык как SGML, пользователям разрешается создавать любые теги, какие необходимы (отсюда «расширяемый»). Становлению XML помогли, т. к. каждый XML-документ мог быть написан таким же способом, как и SGML-документ, а программы и пользователи, использующие SGML, могли перейти на XML достаточно легко.

Тем не менее, XML лишился многих ориентированных на людей особенностей языка SGML, упрощавших его использование (пока не расширилось количество разметки и не восстановилась читаемость и редактируемость на прежнем уровне). Другие улучшения исправляли некоторые проблемы SGML на международном уровне и делали возможным разбор документа иерархически, даже если не был доступен DTD.

XML был спроектирован, в основном, для не полностью структурированной среды, например для документов и публикаций. Тем не менее, это привело к золотой середине между гибкостью и простотой, и он был быстро принят многими пользователями. В настоящее время XML широко используется для передачи данных между программами. Как HTML, он может быть охарактеризован как «контейнерный» язык.

XHTML

Начиная с января 2000 года, все рекомендации для W3C были основаны на XML в большей степени, чем на SGML, была предложена аббревиатура XHTML (Extensible HyperText Markup Languge — Расширяемый Гипертекстовый Язык Разметки). Спецификации языка требовали, чтобы XHTML-документы были оформлены как XML-документы, это позволяет использовать XHTML для более четких и точных документов, используя теги от HTML.

Одно из самых достойных внимания различий между HTML и XHTML — это правило, гласящее что все теги должны быть закрытыми: пустые теги, например <br />, должны быть оба закрыты стандартным закрывающим тегом или специальной записью: <br /> (пробел перед «/» в закрывающем теге опцинален, но часто используется, поскольку его используют некоторые пре-XML браузеры, также SGML-парсеры). Другие атрибуты в тегах должны быть в кавычках. Наконец, все теги и имена атрибутов должны быть написаны в нижнем регистре, чтобы восприниматься правильно; HTML невосприимчив к регистру.

Другие разработки, основанные на XML

Сейчас используются многие разработки, основанные на XML, например RDF (Resource Descriprtion Framework — Фреймворк Описания Ресурсов), XFORMS, DocBook, SOAP и OWL (Ontology Web Language).

Особенности

Общая особенность всех языков разметки в том, что они перемешивают текст документа с инструкциями разметки в потоке данных или файле. Это не необходимость, возможно изолировать разметку от текста, используя указатели, метки, идентификаторы или другие методы координации. Такая «отделенная разметка» характерна для внутреннего представления программ, работающих с размеченными документами. Тем не менее, внедренная или «междустрочная» разметка более принята где бы то ни было. Вот, для примера, небольшая часть текста, размеченного при помощи HTML:

<h1> Anatidae </h1>
<p>
The family <i>Anatidae</i> includes ducks, geese, and swans,
but <em>not</em> the closely-related screamers.
</p>

Код разметочных инструкций (известный как теги) обведен угловыми скобками <как здесь>. Текст, находящийся между этими инструкциями, является текстом документа. Коды h1, p и em — примеры структурной разметки, они описывают позицию, назначение или значение текста, включенного в них.

Более точно, h1 означает «это заголовок первого уровня», p значит «это параграф», а em означает «это подчеркнутое слово или фраза». Интерпретирующая программа может применять эти правила или стили для показа различных частей текста, используя различные гарнитуры, размеры шрифта, отступы, цвет или другие стили, если это необходимо. Такой тег, как h1, может быть, например, представлен большим жирным типографским шрифтом, или в документе с моноширинным текстом (как на печатной машинке) может быть подчеркнутым, или может вообще не менять внешний вид.

Для контраста, тег i в HTML — пример визуальной разметки; обычно он используется для определения специфичных особенностей текста (в этом блоке использовать наклонную гарнитуру) без объяснения причин.

TEI (Tex Encoding Initiative) опубликовала всесторонние руководящие документы, указывающие кодировать текст в интересах человечества и научных обществ. Эти руководства использовались для кодирования исторических документов, специфичных работах ученых, периодике и так далее.

Альтернативное использование

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

Использование языка XHTML также показывает, что его можно комбинировать с различными языками разметки одного профиля, например XHTML+SMIL или XHTML+MathML+SVG.

Личные инструменты

Served in 0.160 secs.