О семантической разметке
Одной из проблем решаемых языками семантической разметки (GML, SGML, XML, HTML), является отделение содержимого документа от его представления.
При использовании семантической разметки содержимое документа размечается тегами (или дескрипторами), которые определяют чем является конкретная часть документа по смыслу с точки зрения параграфов, заголовков, списков, таблиц и т.д. Такая разметка делает возможной дальнейшую автоматизированную обработку содержимого, что в свою очередь позволяет форматировать документ для вывода на различные устройства, или иметь разные виды форматирования (представления) в рамках одного класса устройств, не меняя при этом самого содержимого.
Выбранный для архива подход, ориентирован прежде всего на распространение через Web, поэтому используется HTML-разметка.
HTML
В HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») разметка содержимого производится с помощью пециальных конструкций — тегов. Тег состоит из имени, заключённого между знаками <
и >
(«меньше» и «больше»). Примеры тегов: <h1>
, <b>
, <ul>
.
Теги бывают парными и одиночными. Парные теги могут содержать внутри себя текст и другие теги. Парные теги имеют закрывающую часть, в которой перед именем тега ставится символ /
(«слэш»). Например: <p>
содержимое</p>
.
Спецификация HTML оперирует понятием «элемент». Елемент представляет собой абстрактную единицу языка HTML, обозначаемую в тексте тегом.
HTML позволяет:
создавать единообразное оформление повторяющихся элементов текста (параграфов, цитат и т.п.).
оптимизировать содержимое для поисковых систем;
оптимизировать содержимое для программ синтеза речи и другого ПО, используемого людьми с ограниченными возможностями, что увеличивает общую доступность содержимого;
За основу была взята «Семантика для текста» существующего стандарта HTML, с некоторыми дополнениями.
Markdown
Для хранения текстов используется формат Markdown.
Почему Markdown? Markdown — язык разметки текстов. Такие тексты легко писать и читать. Их можно без труда сконвертировать в HTML. Большинство программистов предпочитают Markdown для написания документации, описаний своих проектов, написания блогов и так далее.
Для большинства наиболее часто используемых элементов HTML существуют аналоги тегов Markdown, но не для всех. Поэтому Markdown допускает использование внутри себя тегов HTML.
Некоторые елементы Markdown имеют более простой и лёгкий для чтения синтаксис, чем их аналоги в HTML. Например, чтобы обозначить параграф текста, достаточно отделить его с обеих сторон пустой строкой — в HTML для этого необходимо обернуть текст в елемент <p>
. Также достаточно естественно смотриться оформление списков.
В тоже время будучи упрощённым языком разметки, Markdown во многом уступает HTML в плане семантичности. Некоторые елементы Markdown невозможно однозначно отобразить в HTML, например *
и **
(выделение курсивом и полужирным). В HTML для этих целей пристутствуют елементы которые указывают как на чисто оформительское выделение — <b>
и <i>
, так и на чисто смысловое — <strong>
и <em>
. Большинство инструментов преобразования выбирают что-то одно, чаще всего <strong>
для **
, и <em>
для *
, что, в целом, может быть неверно, если автор имел в виду другое.
Поэтому, исходя из вышесказанного, для разметки текста должны использоваться лишь некоторые элементы Markdown. Это елементы которые имеют однозначные аналоги в HTML, а также имеют более простую форму записи чем их аналоги, и более естественны для чтения. А именно:
параграфы
списки
Для остальной разметки используется HTML.