stringtranslate.com

Легкий язык разметки

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

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

История

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

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

Типы

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

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

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

Языки, ориентированные на представление, включают AsciiDoc , atx , BBCode , Creole , Crossmark, Djot , Epytext , Haml , JsonML , MakeDoc , Markdown , Org-mode , POD (Perl) , reST (Python) , RD (Ruby) , Setext , SiSU , SPIP. , Xupl, Текси! , Текстиль, txt2tags , UDO и Wikitext .

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

Сравнение особенностей языка

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

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

Сравнение особенностей реализации

Сравнение упрощенного синтаксиса языка разметки

Синтаксис встроенного диапазона

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

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

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

Синтаксис акцента

В 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 не поддерживают специальную разметку для подчеркивания текста. Однако Textile поддерживает вставку через +inserted+синтаксис.

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

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

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

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

Синтаксис заголовка

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

Большинство LML придерживаются одного из двух стилей заголовков: либо подчеркивания типа Setext , либо маркеров строк типа atx [47] , либо поддерживают оба стиля.

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

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

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

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

Префиксные заголовки

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

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

Режим организации поддерживает отступы как средство указания уровня.

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

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

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

Синтаксис ссылки

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

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

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

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

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

Синтаксис списка

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

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

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

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

Исторические форматы

Следующие облегченные языки разметки, хотя и похожи на некоторые из уже упомянутых, еще не добавлены в таблицы сравнения в этой статье:

Смотрите также

Рекомендации

  1. ^ "Журнал изменений AsciiDoc" . Проверено 24 февраля 2017 г.
  2. ^ «Версии WikiCreole» . Проверено 24 февраля 2017 г.
  3. ^ аб "джот" . Проверено 26 августа 2023 г.
  4. ^ "Джот 0.1.0" . Проверено 26 августа 2023 г.
  5. ^ аб Джира. «Справка по обозначениям форматирования текста». Атласиан . Проверено 22 декабря 2020 г.
  6. ^ "Уценка". Аарон Шварц: Блог . 19 марта 2004 г.
  7. ^ "Дерзкий огненный шар: Уценка" . Архивировано из оригинала 2 апреля 2004 г. Проверено 25 апреля 2014 г.
  8. ^ «Дополнительная PHP Markdown» . Мишель Фортен . Проверено 8 октября 2013 г.
  9. ^ «PHP Markdown: История» . Мишель Фортен . Проверено 23 декабря 2020 г.
  10. ^ "История MediaWiki" . Проверено 24 февраля 2017 г.
  11. ^ abc Pandoc, написанный на Haskell , парсит Markdown (в двух формах) и ReStructuredText , а также HTML и LaTeX; он записывает из любого из этих форматов в HTML , RTF , LaTeX , ConTeXt , OpenDocument , EPUB и несколько других форматов, включая (через LaTeX) PDF.
  12. ^ «Организационный режим для Emacs - Ваша жизнь в простом тексте» . orgmode.org . Команда OrgMode . Проверено 9 декабря 2016 г.
  13. ^ «Поваренная книга PmWiki — Экспорт дополнений» . Проверено 7 января 2018 г.
  14. ^ «Введение в reStructuredText» . Проверено 24 февраля 2017 г.
  15. ^ «TidBITS в новом формате» . TidBITS . 06.01.1992 . Проверено 1 июля 2022 г.
  16. ^ «Справочный центр Slack > Использование Slack > Отправка сообщений > Форматирование сообщений» . Проверено 7 августа 2018 г.
  17. ^ «Документация по Slack API: базовое форматирование сообщений» . Проверено 7 августа 2018 г.
  18. ^ «История TiddlyWiki». tiddlywiki.com .
  19. ^ «Текстизм › Инструменты › Текстиль» . textism.com . Архивировано из оригинала 26 декабря 2002 года.
  20. ^ "Что такое Текси" . Проверено 24 февраля 2017 г.
  21. ^ "Модуль Html2wiki txt2tags" . cpan.org . Проверено 30 января 2014 г.
  22. ^ «Руководство пользователя Txt2tags» . Txt2tags.org . Проверено 24 февраля 2017 г.
  23. ^ "Журнал изменений txt2tags" . Проверено 24 февраля 2017 г.
  24. ^ «Часто задаваемые вопросы по WhatsApp: форматирование сообщений» . Проверено 21 ноября 2017 г.
  25. ^ «Руководство пользователя Txt2tags» . Txt2tags.org . Проверено 24 февраля 2017 г.
  26. ^ «Конвертеры». Викикреольский . Проверено 8 октября 2013 г.
  27. ^ pegdown: библиотека Java для обработки Markdown.
  28. ^ ab gfms: Сервер Markdown со вкусом Github
  29. ^ ab отмечено: Полнофункциональный анализатор и компилятор уценки, написанный на JavaScript. Создан для скорости.
  30. ^ ab node-gfm: конвертер уценки в HTML со вкусом GitHub
  31. ^ Parsedown: анализатор Markdown, написанный на PHP.
  32. ^ ab Ciconia: парсер Markdown, написанный на PHP.
  33. ^ ab Grip: мгновенный предварительный просмотр файла Readme на GitHub
  34. ^ github-markdown: автономный парсер Markdown для GitHub.
  35. ^ peg - markdown — это реализация уценки в C.
  36. ^ Discount также является реализацией уценки в C.
  37. ^ "Python-Markdown". Гитхаб.com . Проверено 8 октября 2013 г.
  38. ^ Брюс Уильямс <http://codefluency.com>, для Ruby Central <http://rubycentral.org>. «Крамдаун: Информация о проекте» . РубиФордж. Архивировано из оригинала 7 августа 2013 г. Проверено 8 октября 2013 г.
  39. ^ ab «Через ox-pandoc и сам пандок». Гитхаб .
  40. ^ Атласиан. «Редактор Confluence 4.0 — что изменилось для пользователей вики-разметки (Вики-разметка Confluence мертва)» . Проверено 28 марта 2018 г.
  41. ^ Docutils — это реализация ReStructuredText на Python.
  42. ^ Sphinx — это реализация ReStructuredText в Python и Docutils с несколькими построителями выходных форматов.
  43. ^ Аурелио Харгас www.aurelio.net (11 января 2012 г.). «txt2tags». txt2tags . Проверено 8 октября 2013 г.
  44. ^ "txt2tags.class.php - онлайн-конвертер [так в оригинале]" . Txt2tags.org . Проверено 8 октября 2013 г.
  45. ^ «Синтаксис Markdown». Daringfireball.net . Проверено 8 октября 2013 г.
  46. ^ ab Textile Syntax. Архивировано 12 августа 2010 г. в Wayback Machine.
  47. ^ «atx, настоящий формат структурированного текста» Аарона Шварца (2002)
  48. ^ «Руководство организации: раздел «Чистое представление о структуре»» . Проверено 14 июня 2020 г.
  49. ^ «с использованием org-adapt-indentation».
  50. ^ «с использованием режима org-indent или org-indent».
  51. ^ Сноска в официальном руководстве: «При использовании '*' в качестве маркера строки должны быть с отступом, чтобы они не интерпретировались как заголовки. Кроме того, когда вы скрываете ведущие звезды, чтобы получить четкое представление контура, элементы простого списка, начинающиеся со звездочки может быть трудно отличить от настоящих заголовков. Короче говоря: даже несмотря на то, что '*' поддерживается, возможно, лучше не использовать его для элементов простого списка».
  52. ^ «EtText: Документация: Использование EtText» . ettext.taint.org . Проверено 30 июня 2022 г.изначально из проекта WebMake[1].
  53. ^ "Личный науфраджио: разметка Grutatxt" . triptico.com . Проверено 30 июня 2022 г.Формат общественного достояния (начиная с версии 2.20); первоначально использовался в системе Gruta CMS .

Внешние ссылки