Язык разметки
Материал из Википедии — свободной энциклопедии
Язык разметки (текста) в компьютерной терминологии — набор символов или последовательностей, вставляемых в текст для передачи информации о его выводе или строении. Принадлежит классу компьютерных языков. Текстовый документ, написанный с использованием языка разметки, содержит не только сам текст (как последовательность слов и знаков препинания), но и дополнительную информацию о различных его участках — например, указание на заголовки, выделения, списки и т. д. В более сложных случаях язык разметки позволяет вставлять в документ интерактивные элементы и содержание других документов.
Содержание |
[править] Логическая и визуальная разметки
Различают логическую и визуальную разметки. В первом случае речь идет только о том, какую роль играет данный участок документа в его общей структуре (например, «данная строка является заголовком»). Во втором определяется, как именно будет отображаться этот элемент (например, «данную строку следует отображать жирным шрифтом»). Идея языков разметки состоит в том, что визуальное отображение документа должно автоматически получаться из логической разметки и не зависеть от его непосредственного содержания. Это упрощает автоматическую обработку документа и его отображение в различных условиях (например, один и тот же файл может по-разному отображаться на экране компьютера, мобильного телефона и на печати, поскольку свойства этих устройств вывода существенно различаются). Однако это правило часто нарушается: например, создавая документ в редакторе типа MS Word, пользователь может выделять заголовки жирным шрифтом, но нигде не указывать, что эта строка является заголовком.
[править] Примеры языков разметки
Языки разметки используются везде, где требуется вывод форматированного текста: в типографии (SGML, TeX, PostScript, PDF), пользовательских интерфейсах компьютеров (Microsoft Word, OpenOffice, troff), Всемирной Сети (HTML, XHTML, XML, WML, VML, PGML, SVG).
Для написания исходных текстов Википедии, её участники используют особый язык разметки (см. Википедия:Как править статьи), а для отображения сложных математических формул — язык TeX.
[править] Легковесные языки разметки
Языки, предназначенные для простого и быстрого написания текста в простом текстовом редакторе, называются легковесными (en:Lightweight markup language). Особенности таких языков:
- Минимум функций.
- Небольшой набор поддерживаемых тегов.
- Легки в освоении.
- Исходный текст на таком языке читается с такой же лёгкостью, как и готовый документ.
Применяются они там, где человеку приходится подготавливать текст в обычном текстовом редакторе (блоги, форумы, вики), либо там, где важно, чтобы пользователь с обычным текстовым редактором также мог прочитать текст. Вот несколько широко распространённых легковесных языков разметки:
- BBCode
- Markdown
- Textile
- Вики-разметка (см. Википедия:Как править статьи)
- Различные системы автодокументирования (например, Javadoc).
[править] История
Термин «разметка» (markup) произошел от словосочетания «marking up» (помечание, размечание — анг.) из традиционной издательской практики, когда язык разметки выглядел как обычные символические печатные инструкции на полях рукописи. На века эта задача была посильна в основном только типографам-печатникам, которых называли «разметчик» (markup men), которые размечали текст для указания гарнитуры шрифта, его стиля, и размера, которые необходимо было применить к каждой части текста и они просматривали всю рукопись, чтобы другие ее напечатали. Разметка так же была принята редакторами, корректорами, издателями и графическими дизайнерами.
[править] GenCode
Идея использовать языки разметки вероятнее всего была впервые опубликована издателем Вильямом Тьюнниклиффом (англ. William W. Tunnicliffe) на конференции в 1967, известной как «generic coding». В 1970-х, Тьюнниклифф руководил разработкой стандарта под названием «англ. GenCode» для издательской индустрии и позже занял пост руководителя небезызвестной ISO (International Organization For Starndartization), комитет которой создал SGML, первый описательный язык разметки. Брайан Рэйд (англ. Brian Reid), в его диссертации от 1980 года в университете Карнеги (англ. Carnegie Mellon University) разработал теорию и выполнил реализацию описательной разметки в реальном использовании.
Тем не менее, в настоящее время «отцом» языков разметки обычно называют научного работника IBM Чарльза Голдфарба (англ. Charles Goldfarb). Голдфарб придумал додумался до основной идеи пока работал на примитивной системе управления документами, предназначенной для адвокатских контор в 1969 году, и принимал участие в создании языка IBM GML позже в этом же году. GML был впервые представлен в 1973 году.
В 1975 Голдфарб переехал из Кембриджа, Массачусетс в Силиконовую долину, где стал проектировщиком в IBM Almaden Research Center, Там он убедил управленцев IBM использовать GML в коммерческих целях как часть айбиэмовского «средства формирования документов» (англ. Document Composition Facility), GML широко использовался в бизнесе в течение нескольких лет.
Разработка языка неофициально началась в 1978 году и в конечном итоге привела в созданию стандарта SGML, основанном на GML и GenCode. Голдфарб конечном же счете стал председателем комитета SGML. Этот язык был впервые опубликован организацией ISOпод номером 8879в октябре 1986 года.
Некоторые ранние реализации компьютерных языков разметки можно обнаружить в утилитах обработки текста, например так troff и nroff. В этих системах команды форматирования вставляются в текст документа так что программы обработки текста могут форматировать текст согласно спецификациям редактора. Этот повторяющийся метод проб и ошибок дает корректное форматирование текста.
Доступность издательского софта с функцией WYSIWYG («what you see is what you get» -«что увидишь, то и получишь») вытеснила большинство этих языков среди обычных пользователей, хотя серьезная издательская работа по-прежнему использует разметку для специфических невизуальных структур текста, а WYSIWYG-редакторы сейчас чаще всего сохраняют документы в форматах, основанных на языках разметки.
[править] TeX
Другой важный издательский стандарт — это ТеХ, созданный и впоследствии улучшенный Дональдом Кнутом (Donald Knuth) в 70е-80е года двадцатого столетия. ТеХ собрал воедино высокие возможности форматирования текста и описания шрифтов, в особенности для математических книг профессионального качества. Это потребовало от Кнута большого количества времени для изучения искусства набора текстов. Тем не менее ТеХ пошел вниз по наклонной кривой, так что теперь он в основном используется в научном мире, где является стандартом де-факто во многих научных дисциплинах. Помимо Тех, сущестует 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-инструменты (которые сохраняли документы в проприетарных бинарных форматах) использовались для остальных программ обработки документнов. Ситуация изменилась, когда сэр Тим Бернерс-Ли (Sir Tim Berners-Lee) узнав о SGML от своего коллеги Андерса Бергланда (Anders Berglund) и других сотрудников в ЦЕРНе, использовал синтаксис SGML для создания HTML. Этот язык имел сходство с другими основанными на синтаксисе SGML языками разметки, однако начать его использование было гораздо проще даже тем разработчикам, которые никогда этого не делали. Стивен ДеРоуз (Steven DeRose) убеждал, что HTML, использующий описательную разметку (и от языка SGML в частности) это основной фактор в развитии Web, потому что в нем была заложена гибкость и расширяемость (а так же другие факторы, включая понятие о URL и свободное использование браузерами). В наше время HTML наиболее привлекательный и самый часто используемый язык разметки в мире.
Однако статус 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
Для улучшения этой статьи желательно?:
|

