Язык разметки
Язык разметки система — это кодирования текста , которая определяет структуру и форматирование документа и, возможно, отношения между его частями. [ 1 ] Разметка может управлять отображением документа или обогащать его содержимое для облегчения автоматической обработки.
Язык разметки — это набор правил, определяющих, какая информация разметки может быть включена в документ и как она сочетается с содержимым документа таким образом, чтобы облегчить его использование людьми и компьютерными программами. Идея и терминология произошли от «разметки» бумажных рукописей (например, с инструкциями редакторов по пересмотру), традиционно написанных красной ручкой или синим карандашом на рукописях авторов. [ 2 ]
Старые языки разметки, которые обычно ориентированы на типографику и представление, включают Troff , TeX и LaTeX . Scribe и большинство современных языков разметки, таких как XML , идентифицируют компоненты документа (например, заголовки, абзацы и таблицы) с ожиданием, что такие технологии, как таблицы стилей . для применения форматирования или другой обработки будут использоваться [ нужна ссылка ]
Некоторые языки разметки, такие как широко используемый HTML , имеют заранее определенную семантику представления , то есть их спецификации предписывают некоторые аспекты представления структурированных данных на конкретном носителе. HTML, как DocBook , Open eBook , JATS и многие другие, основан на мета-языках разметки SGML и XML . То есть SGML и XML позволяют дизайнерам указывать конкретные схемы , которые определяют, какие элементы, атрибуты и другие функции разрешены и где. [ нужна ссылка ]
Ключевой характеристикой большинства языков разметки является то, что они позволяют смешивать разметку с содержимым документа, таким как текст и изображения. Например, если несколько слов в предложении необходимо подчеркнуть или идентифицировать как имя собственное, определенный термин или другой специальный элемент, разметка может быть вставлена между символами предложения.
Этимология
[ редактировать ]Существительная разметка возникла из традиционной издательской практики, называемой разметкой» рукописи « . [ 3 ] который предполагает добавление рукописных аннотаций в виде обычных символических инструкций типографии — на полях и в текст статьи или печатной рукописи.
На протяжении веков эту задачу выполняли в основном опытные типографы, известные как «разметчики». [ 4 ] или «маркеры» [ 5 ] который размечал текст, указывая, какой шрифт , стиль и размер следует применить к каждой части, а затем передал рукопись другим для набора вручную или на машине.
Разметка также широко применялась редакторами, корректорами , издателями и графическими дизайнерами, а также авторами документов, каждый из которых мог также отмечать другие вещи, такие как исправления, изменения и т. д.
Типы языка разметки
[ редактировать ]Существует три основные категории электронной разметки, сформулированные Кумбсом, Рениром и ДеРоузом (1987): [ 6 ] и Брей (2003). [ 7 ]
Презентационная разметка
[ редактировать ]- Вид разметки, используемый традиционными системами обработки текста : двоичные коды, встроенные в текст документа, которые создают эффект WYSIWYG (« что видишь, то и получаешь »). Такая разметка обычно скрыта от пользователей, даже от авторов и редакторов. Собственно говоря, такие системы используют процедурную и/или описательную разметку, но преобразуют ее в «представление» пользователю в виде геометрических компоновок типа. [ нужна ссылка ]
Процедурная разметка
[ редактировать ]- Разметка встроена в текст и содержит инструкции для программ по обработке текста. Хорошо известные примеры включают troff , TeX и Markdown . Предполагается, что программное обеспечение обрабатывает текст последовательно от начала до конца, следуя инструкциям по мере поступления. Такой текст часто редактируется с видимой разметкой, которой автор непосредственно манипулирует. Популярные системы процедурной разметки обычно включают в себя программные конструкции , особенно макросы , позволяющие вызывать сложные наборы инструкций по простому имени (и, возможно, нескольким параметрам). Это намного быстрее, менее подвержено ошибкам и более удобно в обслуживании, чем повторение одних и тех же или похожих инструкций во многих местах.
Описательная разметка
[ редактировать ]- Разметка специально используется для обозначения частей документа по тому, что они собой представляют, а не по тому, как их следует обрабатывать. Хорошо известные системы, предоставляющие множество таких меток, включают LaTeX , HTML и XML . Цель состоит в том, чтобы отделить структуру документа от какой-либо конкретной его обработки или представления. Такую разметку часто называют « семантической ». Примером описательной разметки может служить HTML.
<cite>
тег, который используется для обозначения цитаты. Описательная разметка — иногда называемая логической разметкой или концептуальной разметкой — побуждает авторов писать так, чтобы описывать материал концептуально, а не визуально. [ 8 ]
Границы между типами разметки существенно размыты. В современных системах обработки текстов презентационная разметка часто сохраняется в системах, ориентированных на описательную разметку, таких как XML , а затем процедурно обрабатывается реализациями . Программирование в системах процедурной разметки, таких как TeX , может использоваться для создания систем разметки более высокого уровня, которые имеют более описательный характер, таких как LaTeX .
В последние годы было разработано несколько языков разметки, основной целью которых является простота использования и без участия организаций по стандартизации, целью которых является предоставление авторам возможности создавать форматированный текст через веб-браузеры , например, в вики и на веб-форумах . Их иногда называют облегченными языками разметки . Markdown , BBCode и язык разметки, используемый Википедией, являются примерами таких языков.
История языков разметки
[ редактировать ]Генкод
[ редактировать ]Первую широко известную публичную презентацию языков разметки в компьютерной обработке текста сделал Уильям Танниклифф на конференции в 1967 году, хотя он предпочитал называть это общим кодированием. Это можно рассматривать как ответ на появление таких программ, как RUNOFF , каждая из которых использовала свои собственные управляющие обозначения, часто специфичные для целевого наборного устройства. В 1970-х годах Танниклифф руководил разработкой стандарта под названием GenCode для издательской индустрии, а позже стал первым председателем комитета Международной организации по стандартизации , создавшего SGML , первый стандарт описательного языка разметки. Книжный дизайнер Стэнли Райс опубликовал аналогичные предположения в 1970 году. [ 9 ]
Брайан Рид в своей диссертации 1980 года в Университете Карнеги-Меллон разработал теорию и рабочую реализацию описательной разметки в реальном использовании. Однако IBM исследователя Чарльза Гольдфарба сегодня чаще называют «отцом» языков разметки. Гольдфарб пришел к основной идее, когда работал над примитивной системой управления документами, предназначенной для юридических фирм, в 1969 году, а помог изобрести IBM GML позже в том же году . Впервые GML был публично раскрыт в 1973 году.
В 1975 году Гольдфарб переехал из Кембриджа, штат Массачусетс, в Силиконовую долину и стал специалистом по планированию продуктов в исследовательском центре IBM в Альмадене . Там он убедил руководителей IBM в 1978 году развернуть GML на коммерческой основе как часть продукта IBM Document Composition Facility, и в течение нескольких лет он широко использовался в бизнесе.
SGML, основанный как на GML, так и на GenCode, представлял собой проект ISO, над которым Гольдфарб работал начиная с 1974 года. [ 10 ] В конце концов Гольдфарб стал председателем комитета SGML. SGML был впервые выпущен ISO как стандарт ISO 8879 в октябре 1986 года.
Трофф и Нрофф
[ редактировать ]Некоторые ранние примеры языков компьютерной разметки, доступных за пределами издательской индустрии, можно найти в инструментах набора текста в системах Unix, таких как troff и nroff . В этих системах команды форматирования были вставлены в текст документа, чтобы программное обеспечение для набора текста могло форматировать текст в соответствии со спецификациями редактора. была методом проб и ошибок . Правильная печать документа [ 11 ] Доступность программного обеспечения для публикации WYSIWYG («что видишь, то и получаешь») вытеснило широкое использование этих языков среди обычных пользователей, хотя в серьезных издательских работах по-прежнему используется разметка для определения невизуальной структуры текста, а редакторы WYSIWYG теперь обычно сохраняют документы. в формате на основе языка разметки.
ТеХ
[ редактировать ]Еще один крупный издательский стандарт — TeX , созданный и усовершенствованный Дональдом Кнутом в 1970-х и 80-х годах. TeX сосредоточился на детальной компоновке текста и описаний шрифтов для набора математических книг. Это потребовало от Кнута потратить значительное время на изучение искусства набора текста . TeX в основном используется в академических кругах , где он является фактическим стандартом во многих научных дисциплинах. Пакет макросов TeX, известный как LaTeX, предоставляет систему описательной разметки поверх TeX и широко используется как в научном сообществе, так и в издательской индустрии.
Писец, GML и SGML
[ редактировать ]Первым языком, который провел четкое различие между структурой и представлением, был Scribe , разработанный Брайаном Ридом и описанный в его докторской диссертации в 1980 году. [ 12 ] Scribe был революционным во многих отношениях, представив идею стилей, отделенных от размеченного документа, и грамматику , которая контролировала использование описательных элементов. Scribe повлиял на развитие обобщенного языка разметки (позже SGML), [ 13 ] и является прямым предком HTML и LaTeX . [ 14 ]
В начале 1980-х годов идея о том, что разметка должна фокусироваться на структурных аспектах документа и оставлять визуальное представление этой структуры интерпретатору, привела к созданию SGML . Язык был разработан комитетом под председательством Гольдфарба. В него вошли идеи из разных источников, включая проект Танниклиффа GenCode. Шэрон Адлер, Андерс Берглунд и Джеймс А. Марк также были ключевыми членами комитета SGML.
SGML определил синтаксис для включения разметки в документы, а также синтаксис для отдельного описания того, какие теги разрешены и где (Определение типа документа ( DTD ), позже известное как схема ). Это позволило авторам создавать и использовать любую разметку по своему желанию, выбирая теги, которые имели для них наибольший смысл и назывались на их родном языке, а также позволяло осуществлять автоматическую проверку. Таким образом, SGML по сути является метаязыком , и на его основе произошли многие языки разметки. С конца 80-х годов большинство новых языков разметки базировались на системе SGML, включая, например, TEI и DocBook . SGML был обнародован в качестве международного стандарта Международной организацией по стандартизации ISO 8879 в 1986 году. [ 15 ]
SGML нашел широкое признание и применение в областях с очень большими требованиями к документации. Однако многие сочли его громоздким и трудным в освоении — это побочный эффект того, что его конструкция пыталась делать слишком много и была слишком гибкой. Например, SGML сделал конечные теги (или начальные теги, или даже оба) необязательными в определенных контекстах, поскольку его разработчики думали, что разметка будет выполняться вручную перегруженным работой персоналом службы поддержки, который был бы признателен за экономию нажатий клавиш. [ нужна ссылка ] .
HTML
[ редактировать ]В 1989 году ученый-компьютерщик сэр Тим Бернерс-Ли написал записку, в которой предлагал создать Интернета систему на базе гипертекстовую . [ 16 ] затем определил HTML и написал браузер и серверное программное обеспечение во второй половине 1990 года. Первым общедоступным описанием HTML был документ под названием «HTML-теги», впервые упомянутый в Интернете Бернерсом-Ли в конце 1991 года. [ 17 ] [ 18 ] Он описывает 18 элементов, составляющих первоначальный, относительно простой дизайн HTML. За исключением тега гиперссылки, на них сильно повлиял SGMLguid , собственный формат документации на основе SGML в CERN , который очень похож на образец схемы в стандарте SGML. Одиннадцать из этих элементов все еще существуют в HTML 4. [ 19 ]
Бернерс-Ли считал HTML приложением SGML. Инженерная группа Интернета (IETF) официально определила его как таковой, опубликовав в середине 1993 года первое предложение по спецификации HTML: «Язык гипертекстовой разметки (HTML)». Интернет-проект, заархивированный 3 января 2017 г. на Wayback Machine , автор: Бернерса-Ли и Дэна Коннолли , которые включали определение типа документа SGML для определения грамматики. [ 20 ] Многие текстовые элементы HTML можно найти в техническом отчете ISO 1988 года TR 9537 «Методы использования SGML» , который, в свою очередь, охватывает особенности ранних языков форматирования текста, таких как тот, который использовался командой RUNOFF, разработанной в начале 1960-х годов для CTSS (Compatible Система разделения времени) — операционная система. Эти команды форматирования были созданы на основе тех, которые используются наборщиками для ручного форматирования документов. Стивен ДеРоуз [ 21 ] утверждает, что использование описательной разметки в HTML (и влияние SGML в частности) стало основным фактором успеха Интернета из-за гибкости и расширяемости, которые оно обеспечивало. HTML стал основным языком разметки для создания веб-страниц и другой информации, которая может отображаться в веб-браузере, и, вероятно, сегодня является наиболее используемым языком разметки в мире.
XML
[ редактировать ]XML (расширяемый язык разметки) — это мета-язык разметки, который очень широко используется. XML был разработан Консорциумом Всемирной паутины в комитете, созданном и возглавляемым Джоном Босаком . Основная цель XML заключалась в том, чтобы упростить SGML, сосредоточив внимание на конкретной проблеме — документах в Интернете. [ 22 ] XML остается мета-языком, подобным SGML, позволяя пользователям создавать любые необходимые теги (следовательно, «расширяемые»), а затем описывая эти теги и их разрешенное использование.
Внедрению XML способствовало то, что каждый XML-документ может быть написан таким образом, что он также является документом SGML, и существующие пользователи и программное обеспечение SGML могли довольно легко переключиться на XML. Однако XML устранил многие из более сложных функций SGML, чтобы упростить среды реализации, такие как документы и публикации. Казалось, что он представляет собой золотую середину между простотой и гибкостью, а также поддерживает очень надежные инструменты определения и проверки схемы и был быстро принят для многих других целей. В настоящее время XML широко используется для передачи данных между приложениями, для сериализации программных данных, для протоколов аппаратной связи, векторной графики и многих других целей, а также для документов.
XHTML
[ редактировать ]года и до выпуска HTML 5 все W3C основывались на XML с использованием аббревиатуры XHTML ( расширяемый язык гипертекстовой разметки рекомендации С . января 2000 по HTML ) Спецификация языка требует, чтобы веб-документы XHTML были правильно сформированными XML-документами. Это позволяет создавать более строгие и надежные документы, избегая многих синтаксических ошибок, которые исторически приводили к несовместимому поведению браузера, при этом используя компоненты документа, знакомые с HTML.
Одним из наиболее заметных различий между HTML и XHTML является правило, согласно которому все теги должны быть закрыты : пустые теги HTML, такие как <br>
необходимо либо закрыть обычным закрывающим тегом, либо заменить специальной формой: <br />
(пробел перед ' /
' в конечном теге не является обязательным, но часто используется, поскольку позволяет некоторым веб-браузерам, поддерживающим XML, и анализаторам SGML принимать этот тег). Еще одно отличие состоит в том, что все значения атрибутов в тегах должны быть заключены в кавычки. Оба эти различия обычно критикуются как многословные, но их также хвалят, поскольку они значительно упрощают обнаружение, локализацию и исправление ошибок. Наконец, чтобы быть действительными, все имена тегов и атрибутов в пространстве имен XHTML должны быть написаны строчными буквами. HTML, с другой стороны, был нечувствителен к регистру.
Другие приложения на основе XML
[ редактировать ]В настоящее время существует множество приложений на основе XML, включая структуру описания ресурсов ( RDF/XML) , XForms , DocBook , SOAP и язык веб-онтологий (OWL). Неполный их список см. в разделе Список языков разметки XML .
Особенности языков разметки
[ редактировать ]Общей особенностью многих языков разметки является то, что они смешивают текст документа с инструкциями разметки в одном потоке данных или файле. В этом нет необходимости; можно изолировать разметку от текстового содержимого, используя указатели, смещения, идентификаторы или другие методы для их координации. Такая «противостоящая разметка» типична для внутренних представлений, которые программы используют для работы с размеченными документами. Однако встроенная или «встроенная» разметка гораздо более распространена в других местах. Вот, например, небольшой фрагмент текста, размеченный в HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My test page</title>
</head>
<body>
<h1>Mozilla is cool</h1>
<img src="images/firefox-icon.png" alt="The Firefox logo: a flaming fox surrounding the Earth.">
<p>At Mozilla, we’re a global community of</p>
<ul> <!-- changed to list in the tutorial -->
<li>technologists</li>
<li>thinkers</li>
<li>builders</li>
</ul>
<p>working together to keep the Internet alive and accessible, so people worldwide can be informed contributors and creators of the Web. We believe this act of human collaboration across an open platform is essential to individual growth and our collective future.</p>
<p>Read the <a href="https://www.mozilla.org/en-US/about/manifesto/">Mozilla Manifesto</a> to learn even more about the values and principles that guide the pursuit of our mission.</p>
</body>
</html>
Коды, заключенные в угловые скобки. < like this>
представляют собой инструкции разметки (известные как теги), а текст между этими инструкциями является фактическим текстом документа. Коды h1
, p
, и em
являются примерами семантической разметки, поскольку они описывают предполагаемую цель или значение включаемого в них текста. Конкретно, h1
означает «это заголовок первого уровня», p
означает «это абзац», и em
означает «это выделенное слово или фраза». Программа, интерпретирующая такую структурную разметку, может применять свои собственные правила или стили для представления различных фрагментов текста, используя разные гарнитуры, жирность, размер шрифта, отступ, цвет или другие стили по желанию. Например, такой тег, как «h1» (уровень заголовка 1), может быть представлен в статье крупным жирным шрифтом без засечек или может быть подчеркнут в моноширинном документе (в стиле пишущей машинки), а может просто не отображаться. вообще изменить презентацию.
Напротив, i
Тег в HTML 4 — это пример презентационной разметки, которая обычно используется для указания определенной характеристики текста без указания причины ее появления. В этом случае i
элемент диктует использование курсива. Однако в HTML 5 этот элемент был перепрофилирован с более семантическим использованием: для обозначения диапазона текста, заархивированного 08 марта 2018 г. в Wayback Machine, с альтернативным голосом или настроением или иным образом смещенным от обычной прозы. указывающее на разное качество текста
. Например, уместно использовать i
элемент для обозначения таксономического обозначения или фразы на другом языке. [ 23 ] Это изменение было сделано для того, чтобы максимально облегчить переход от HTML 4 к HTML 5, чтобы устаревшее использование презентационных элементов сохраняло наиболее вероятную предполагаемую семантику.
Инициатива по кодированию текста (TEI) опубликовала обширные рекомендации. [ 24 ] о том, как кодировать тексты, представляющие интерес в области гуманитарных и социальных наук, разработанные в результате многолетней международной совместной работы. Эти рекомендации используются проектами, кодирующими исторические документы, произведения отдельных ученых, периодов, жанров и т. д.
Язык
[ редактировать ]Хотя идея языка разметки возникла в текстовых документах, языки разметки все чаще используются при представлении других типов информации, включая списки воспроизведения , векторную графику , веб-сервисы , распространение контента и пользовательские интерфейсы . Большинство из них представляют собой XML-приложения, поскольку XML — это четко определенный и расширяемый язык. [ по мнению кого? ]
Использование XML также привело к возможности объединения нескольких языков разметки в один профиль, например XHTML+SMIL и XHTML+MathML+SVG . [ 25 ]
См. также
[ редактировать ]- Сравнение языков разметки документов
- Curl (язык программирования)
- HTML
- Латекс
- Легкий язык разметки
- Список языков разметки
- Уценка
- Язык программирования
- Язык моделирования
- Обычный текст
- Форматированный текст
- Реструктурированныйтекст
- Язык таблицы стилей
- тег (разметка)
- ВИЗИВИГ
- XML
Ссылки
[ редактировать ]- ^ «Язык разметки | Определение, примеры и факты» . Британская энциклопедия . Архивировано из оригинала 26 октября 2020 г. Проверено 17 августа 2022 г.
- ^ Зихерт, Карл; Ботт, Эд (2013). Microsoft Office наизнанку: издание 2013 г. Пирсон Образование. п. 305. ИСБН 978-0735669062 .
Некоторые рецензенты предпочитают придерживаться старой школы, используя красную ручку при написании печатных материалов.
- ^ ЧЭНЬ, Синьин (2011). «Центральные узлы китайских синтаксических сетей» . Китайский научный бюллетень . 56 (10): 735–740. дои : 10.1360/972010-2369 . ISSN 0023-074X .
- ^ Аллан Вудс, Современное газетное производство (Нью-Йорк: Harper & Row, 1963), 85; Стюарт Харрал, «Прибыльные связи с общественностью для газет» (Анн-Арбор: JW Edwards, 1957), 76; и Кьярелла против Соединенных Штатов , 445 U.S. 222 (1980).
- ^ Из записных книжек HJH и DHAn по композиции , Kingsport Press Inc., без даты (1960-е).
- ^ Кумбс, Джеймс Х.; Ренер, Аллен Х.; ДеРоуз, Стивен Дж. (ноябрь 1987 г.). «Системы разметки и будущее научной обработки текста» . Коммуникации АКМ . 30 (11): 933–947. CiteSeerX 10.1.1.515.5618 . дои : 10.1145/32206.32209 . S2CID 59941802 . Архивировано из оригинала 12 мая 2019 г. Проверено 19 апреля 2005 г.
- ^ Брей, Тим (9 апреля 2003 г.). «О семантике и разметке, таксономия разметки» . www.tbray.org . Архивировано из оригинала 27 февраля 2021 г. Проверено 16 августа 2021 г.
- ^ Майкл Даунс. «TEX и LATEX 2e». Архивировано 24 мая 2021 г. в Wayback Machine.
- ^ Райс, Стэнли. «Редакционные текстовые структуры (с некоторыми связями с информационными структурами и элементами управления форматом в компьютеризированной композиции)». Американский национальный институт стандартов, 17 марта 1970 г.
- ^ «Интервью 2009 года с создателем SGML Чарльзом Ф. Гольдфарбом» . Журнал доктора Добба . Проверено 18 июля 2010 г. [ постоянная мертвая ссылка ]
- ^ Дэниел Гилли. Коротко о Unix: Глава 12. Грофф и Трофф. Архивировано 5 января 2016 г. в Wayback Machine . Книги О'Рейли, 1992. ISBN 1-56592-001-5
- ^ Рид, Брайан. «Писец: язык спецификации документов и его компилятор». доктор философии диссертация, Университет Карнеги-Меллон, Питтсбург, Пенсильвания. Также доступен технический отчет CMU-CS-81-100.
- ^ Рид, Брайан . «20 лет абстрактной разметки – есть прогресс?» . xml.coverpages.org . Архивировано из оригинала 01 мая 2019 г. Проверено 16 августа 2021 г.
- ^ HTML — это частный случай SGML, тогда как LaTeX разработан с учетом философии разделения между контентом и дизайном Scribe.
- ^ «ИСО 8879:1986» . ИСО . Архивировано из оригинала 17 августа 2021 г. Проверено 15 августа 2021 г.
- ^ Тим Бернерс-Ли, « Управление информацией: предложение ». ЦЕРН (март 1989 г., май 1990 г.). W3C. Архивировано 1 апреля 2010 г. в Wayback Machine.
- ^ «Первое упоминание HTML-тегов в списке рассылки www-talk» . Консорциум Всемирной паутины. 29 октября 1991 года. Архивировано из оригинала 8 августа 2021 года . Проверено 16 августа 2021 г.
- ^ «Указатель элементов в HTML 4» . Консорциум Всемирной паутины. 24 декабря 1999 г. Архивировано из оригинала 5 мая 2007 г. Проверено 16 августа 2021 г.
- ^ Тим Бернерс-Ли (9 декабря 1991 г.). «Re: Документы SGML/HTML, X Browser (архив сообщения списка рассылки www-talk)» . Архивировано из оригинала 3 июля 2021 года . Проверено 16 августа 2021 г.
SGML очень общий. HTML — это специфическое применение базового синтаксиса SGML, применяемое к гипертекстовым документам с простой структурой.
- ^ ДеРоуз, Стивен Дж. «Книга часто задаваемых вопросов по SGML». Бостон: Kluwer Academic Publishers, 1997. ISBN 0-7923-9943-9
- ^ «Расширяемый язык разметки (XML) 1.1 (второе издание)» . W3C. 16 августа 2006 г. Архивировано из оригинала 11 августа 2021 г. Проверено 16 августа 2021 г.
- ^ Хиксон, Ян. «HTML-уровень жизни» . ЧТОРГ — HTML . Архивировано из оригинала 8 марта 2018 года . Проверено 13 сентября 2020 г.
- ^ «Руководство TEI по электронному кодированию и обмену текстом» . Tei-c.org. Архивировано из оригинала 3 июля 2014 г. Проверено 16 августа 2021 г.
- ^ Профиль XHTML + MathML + SVG, заархивированный 19 июля 2021 г. на Wayback Machine . W3C. 9 августа 2002 г. Проверено 16 августа 2021 г.