Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

История [ править ]

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

В 1986 году международный стандарт SGML предоставил средства для определения и анализа облегченных языков разметки с использованием грамматик и импликации тегов. W3C XML 1998 года - это профиль SGML, в котором эти возможности отсутствуют. Однако определение типа документа SGML (DTD) для любого из перечисленных ниже языков неизвестно.

Типы [ править ]

Легкие языки разметки можно разделить на категории по типам тегов. Как и HTML ( ), в некоторых языках используются именованные элементы, которые имеют общий формат для начальных и конечных тегов (например, BBCode ), тогда как правильные облегченные языки разметки ограничены только знаками препинания ASCII и другими небуквенными символами для тегов, но некоторые также смешайте оба стиля (например, Textile ) или разрешите встроенный HTML (например, Markdown ), возможно, расширенный пользовательскими элементами (например, MediaWiki ).<b>bold</b> [b]bold[/b] bq. <ref>source</ref>

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

Некоторые языки разметки предназначены для определенной цели, например, для документирования компьютерного кода (например, POD , RD ) или для преобразования в определенный выходной формат (обычно HTML) и ничего больше, другие более общие в применении. Сюда входит, ориентированы ли они на текстовое представление или на сериализацию данных. [ требуется разъяснение ]

Презентационные ориентированные языки включают AsciiDoc , АТХ , BBCode, креольской , Crossmark, Epytext , Haml , JsonML , MakeDoc , Markdown, Org-режим , POD, Rest , RD, Setext , Sisu , SPIP , Xupl , TExy! , Текстиль, txt2tags , UDO и Wikitext .

Языки, ориентированные на сериализацию данных, включают Curl (гомоиконный, но также читает JSON; каждый объект сериализует), JSON и YAML .

Сравнение языковых характеристик [ править ]

Собственный синтаксис Markdown не поддерживает атрибуты класса или атрибуты id; однако, поскольку Markdown поддерживает включение собственного HTML-кода, эти функции могут быть реализованы с использованием прямого HTML. (Некоторые расширения могут поддерживать эти функции.)

Собственный синтаксис txt2tags не поддерживает атрибуты класса или атрибуты id; однако, поскольку txt2tags поддерживает включение собственного кода HTML в области с тегами, эти функции могут быть реализованы с использованием прямого HTML при сохранении в целевой HTML. [22]

Сравнение возможностей реализации [ править ]

Сравнение синтаксиса облегченного языка разметки [ править ]

Встроенный синтаксис диапазона [ править ]

Хотя обычно документируется выделение текста курсивом и полужирным шрифтом, большинство облегченных процессоров разметки выводят семантические элементы HTML emи strongвместо них. Моноширинный текст может иметь семантические codeили презентационные ttэлементы. Некоторые языки делают различие, например Textile, или позволяют пользователю легко настраивать вывод, например Texy.

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

Gemtext не имеет встроенного форматирования, моноширинный текст (известный в сообществе Gemini форматированный текст) должен иметь начало и закрытие ```на отдельных строках.

Синтаксис акцента [ править ]

В HTML текст выделяется типами элементов <em>и <strong>, тогда как <i>и <b>традиционно выделяют текст курсивом или жирным шрифтом соответственно.

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

Редакционный синтаксис [ править ]

В HTML, удалены или удалены , и вставленный текст размечен с <del>и <ins>элементных типов, соответственно. Тем не менее, устаревшие типы элементов <s>или <strike>и <u>по-прежнему доступны для зачеркнутых и подчеркнутых участков текста.

AsciiDoc, ATX, Creole, MediaWiki, PmWiki, reST, Slack, Textile, Texy! и WhatsApp не поддерживают специальную разметку для подчеркивания текста.

AsciiDoc, ATX, Creole, MediaWiki, PmWiki, reST, Setext, Textile и Texy! не поддерживают специальную разметку для зачеркивания текста.

Синтаксис программирования [ править ]

Цитируемый компьютерный код традиционно представлен шрифтами, подобными пишущей машинке, где каждый символ занимает одинаковую фиксированную ширину. HTML предлагает семантические <code>и устаревшие <tt>типы презентационных элементов для этой задачи.

Mediawiki, Setext и Gemtext не предоставляют облегченную разметку для встроенных участков кода.

Синтаксис заголовка [ править ]

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

Большинство LMLs следует один из двух стилей для заголовков, либо Setext -как подчеркивание или АТЙ -как [44] маркеры линии, или они поддерживают оба.

Подчеркнутые заголовки [ править ]

Заголовок уровня 1===============Заголовок уровня 2---------------Заголовок уровня 3~~~~~~~~~~~~~~~

В первом стиле используются подчеркивания, т. Е. Повторяющиеся символы (например =, знак равенства , дефис -или тильда ~, обычно не менее двух или четырех раз) в строке под текстом заголовка.

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

Заголовки с префиксом [ править ]

# Заголовок уровня 1## Заголовок 2 уровня ##### Заголовок 3-го уровня ###

Второй стиль основан на повторяющихся маркерах (например, хэш #, равно =или звездочка *) в начале самого заголовка, где количество повторений указывает (иногда обратный) уровень заголовка. Большинство языков также поддерживают дублирование маркеров в конце строки, но в то время как некоторые делают их обязательными, другие даже не ожидают совпадения их номеров.

Org-mode поддерживает отступы как средство указания уровня.

BBCode вообще не поддерживает заголовки разделов.

POD и Textile вместо этого выбирают соглашение HTML о нумерованных уровнях заголовков.

Microsoft Word поддерживает автоматическое форматирование абзацев в качестве заголовков, если они содержат не более нескольких слов, без точки в конце и если пользователь дважды нажимает клавишу ввода. Для более низких уровней пользователь может нажать клавишу табулятора соответствующее количество раз перед вводом текста, т. Е. С одной по восемь вкладок для уровней заголовков со второго по девятый.

Синтаксис ссылки [ править ]

Гиперссылки могут быть добавлены в строку, что может загромождать код из-за длинных URL-адресов, или с именованными aliasили пронумерованными idссылками на строки, не содержащие ничего, кроме адреса и связанных атрибутов, и часто могут быть расположены в любом месте документа. Большинство языков позволяют автору указывать текст, Textкоторый будет отображаться вместо простого адреса, http://example.comа некоторые также предоставляют методы для установки другого заголовка ссылки, Titleкоторый может содержать дополнительную информацию о месте назначения.

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

Большинство языков используют (двойные) квадратные или угловые скобки для окружения ссылок, но вряд ли какие-либо два языка полностью совместимы. Многие могут автоматически распознавать и анализировать абсолютные URL-адреса внутри текста без дополнительной разметки.

Ссылки Gemtext должны быть в строке сами по себе, их нельзя использовать в строке.

Обычный синтаксис ссылок Org-mode выполняет текстовый поиск файла. Вы также можете установить специальные цели с помощью <<id>>.


Синтаксис списка [ править ]

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

Microsoft Word автоматически преобразует абзацы, начинающиеся со звездочки *, дефис-минус -или скобки, >за которыми следует пробел или горизонтальный табулятор, в элементы маркированного списка. Он также начнет нумерованный список для цифры 1 и букв без учета регистра a (для алфавитных списков) или i (для римских цифр), если за ними следует точка ., закрывающая круглая скобка ), знак "больше" >или дефис-минус -и пробел или табуляция; в случае круглой скобки также поддерживается необязательная открывающая скобка (перед маркером списка.

Языки различаются по тому, поддерживают ли они необязательные или обязательные цифры в элементах нумерованного списка, какие типы счетчиков они понимают (например, десятичная цифра 1 , римские цифры i или I , буквенные буквы a или A ) и поддерживают ли они сохранение явных значений в выводе формат. Например, некоторые диалекты Markdown будут уважать начальное значение, отличное от 1, но игнорировать любое другое явное значение.

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


См. Также [ править ]

  • Легкий язык программирования
  • Сравнение языков разметки документов
  • Сравнение генераторов документации
  • WikiText
  • Markdown

Ссылки [ править ]

  1. ^ "AsciiDoc ChangeLog" . Проверено 24 февраля 2017 .
  2. ^ "Версии WikiCreole" . Проверено 24 февраля 2017 .
  3. ^ а б Jira. «Справка по форматированию текста» . Atlassian . Проверено 22 декабря 2020 .
  4. ^ «Уценка» . Аарон Шварц: Интернет-блог . 2004-03-19.
  5. ^ «Дерзкий огненный шар: Markdown» . Архивировано из оригинала на 2004-04-02 . Проверено 25 апреля 2014 .
  6. ^ «PHP Markdown Extra» . Мишель Фортин . Проверено 8 октября 2013 .
  7. ^ «PHP Markdown: История» . Мишель Фортин . Проверено 23 декабря 2020 .
  8. ^ «История MediaWiki» . Проверено 24 февраля 2017 .
  9. ^ a b c Pandoc , написанный на Haskell , анализирует Markdown (в двух формах) и ReStructuredText , а также HTML и LaTeX; он записывает из любого из этих форматов в HTML , RTF , LaTeX , ConTeXt , OpenDocument , EPUB и несколько других форматов, включая (через LaTeX) PDF.
  10. ^ "Режим организации для Emacs - Ваша жизнь в виде простого текста" . orgmode.org . Команда OrgMode . Проверено 9 декабря 2016 .
  11. ^ "PmWiki Cookbook - экспорт дополнений" . Проверено 7 января 2018 .
  12. ^ «Введение в reStructuredText» . Проверено 24 февраля 2017 .
  13. ^ «Справочный центр Slack> Использование Slack> Отправлять сообщения> Форматировать сообщения» . Проверено 7 августа 2018 .
  14. ^ «Документация по Slack API: базовое форматирование сообщений» . Проверено 7 августа 2018 .
  15. ^ "История TiddlyWiki" . tiddlywiki.com .
  16. ^ «Текстизм› Инструменты ›Текстиль» . textism.com . Архивировано из оригинального 26 декабря 2002 года.
  17. ^ "Что такое Texy" . Проверено 24 февраля 2017 .
  18. ^ "Модуль Html2wiki txt2tags" . cpan.org . Проверено 30 января 2014 .
  19. ^ "Руководство пользователя Txt2tags" . Txt2tags.org . Проверено 24 февраля 2017 .
  20. ^ "Журнал изменений txt2tags" . Проверено 24 февраля 2017 .
  21. ^ «WhatsApp FAQ: Форматирование сообщений» . Проверено 21 ноября 2017 .
  22. ^ "Руководство пользователя Txt2tags" . Txt2tags.org . Проверено 24 февраля 2017 .
  23. ^ «Конвертеры» . WikiCreole . Проверено 8 октября 2013 .
  24. ^ pegdown : библиотека Java для обработки Markdown
  25. ^ a b gfms : Сервер разметки со вкусом Github
  26. ^ a b отмечено : полнофункциональный анализатор и компилятор уценки, написанный на JavaScript. Создан для скорости.
  27. ^ a b node-gfm : конвертер разметки в HTML со вкусом GitHub
  28. ^ Parsedown : парсер Markdown, написанный на PHP
  29. ^ a b Ciconia : парсер Markdown, написанный на PHP
  30. ^ a b Grip : предварительный просмотр Readme на GitHub
  31. ^ github-markdown : Автономный парсер Markdown для GitHub
  32. ^ Пег-уценка является реализацией уценки в C .
  33. ^ Discount также реализация уценки в C .
  34. ^ "Python-Markdown" . Github.com . Проверено 8 октября 2013 .
  35. ^ Брюс Уильямс < http://codefluency.com >, для Ruby Central < http://rubycentral.org >. "kramdown: Информация о проекте" . RubyForge. Архивировано из оригинала на 2013-08-07 . Проверено 8 октября 2013 .
  36. ^ a b "Через ox-pandoc и сам pandoc" .
  37. ^ Atlassian. «Редактор Confluence 4.0 - Что изменилось для пользователей разметки Wiki (разметка Confluence Wiki мертва)» . Проверено 28 марта 2018 .
  38. ^ Docutils - это реализация ReStructuredText в Python
  39. ^ Sphinx является реализация ReStructuredText в Python и Docutils с числом форматов вывода строителей
  40. ^ Аурелио Джаргас www.aurelio.net (2012-01-11). "txt2tags" . txt2tags . Проверено 8 октября 2013 .
  41. ^ "txt2tags.class.php - онлайн-конвертер [sic]" . Txt2tags.org . Проверено 8 октября 2013 .
  42. ^ "Синтаксис Markdown" . Daringfireball.net . Проверено 8 октября 2013 .
  43. ^ a b Текстильный синтаксис Архивировано 12 августа 2010 г. в Wayback Machine
  44. ^ "atx, истинный формат структурированного текста" Аарона Шварца (2002)
  45. ^ «Руководство организации: раздел« Более четкое представление структуры » » . Дата обращения 14 июня 2020 .
  46. ^ "используя org-adaptor-indentation" .
  47. ^ "используя org-indent-mode или org-indent" .
  48. ^ Сноска в официальном руководстве "При использовании символа '*' в качестве маркера строки должны иметь отступ, чтобы они не интерпретировались как заголовки. Кроме того, когда вы скрываете ведущие звезды, чтобы получить четкий вид контура, простые элементы списка начинаются со звезды может быть трудно отличить от настоящих заголовков. Вкратце: даже если '*' поддерживается, может быть лучше не использовать его для простых элементов списка ».

Внешние ссылки [ править ]

  • Список C2
  • Curl Markup для замены HTML + CSS + JS
  • Жители авторской экосферы
  • Список на сайте otl
  • Гуманные текстовые форматы - сравнение (устарело)
  • Pandoc: универсальный межформатный конвертер