Markdown

«Markdown» (МФА: [маркда́ун]) — полегшена мова розмітки даних, яку створено з ухилом на прочитність та зручність у публікації з подальшим перетворенням її на structurally valid XHTML або HTML. Чимало ідей для мови позичено з існуючих домовленостей у розмітці тексту в електронних листах. Першу реалізацію Markdown написано Грубером на Perl, але з часом з'явились багато реалізацій від сторонніх розробників (див. нижче). Реалізація на Perl розповсюджується за ліцензією BSD. Реалізації Markdown різними мовами програмування включені (або наявні як плаґіни) у численні системи керування вмістом.

Markdown
Розширення файлу: ..md, .markdown
MIME-тип: text/markdown
Узагальнений ідентифікатор типу: net.daringfireball.markdown
Розробник: Джон Грубер
Тип ліцензії: Ліцензія BSD
Рік випуску: 19 березня 2004 (2004-03-19)
Остання версія: 1.0.1
Дата випуску останньої версії: 17 грудня 2004 (2004-12-17)
Тип формату: Мова розмітки даних
Розширений до: MultiMarkdown, Markdown Extra, CommonMark
Сайт: daringfireball.net/projects/markdown/

Такі сайти, як GitHub, Reddit та Stack Overflow використовують Markdown для полегшення обговорень між користувачами[1][2][3].

Приклади синтаксису

Цей опис не є вичерпним переліком синтаксису Markdown, та у багатьох випадках для досягнення певного ефекту існує декілька стилів синтаксису[4]. Літери, які Markdown однозначно визначає як команди форматування, можуть бути екрановані бекслешем; наприклад, вираз '\*' виведе зірочку, а не означатиме початку проміжку виділеного тексту. Також Markdown не перетворює текст із «сирим» XHTML-елементом блокового рівня. Це дозволяє включати секції XHTML у джерело Markdown документа, обернувши їх в XHTML теги блокового рівня.

Заголовки

HTML-заголовки створюються розміщенням числа "решіток" перед текстом заголовка відповідно до бажаного рівня (HTML підтримує 6 рівнів озаглавлення), наприклад:

 # заголовок першого рівня

 #### заголовок четвертого рівня

Перші два рівні заголовків також мають альтернативний синтаксис:

Заголовок першого рівня
=======================

Заголовок другого рівня
-----------------------

Параграфи

Параграф є одним чи декількома послідовними рядками тексту, які розділяються одним чи декількома порожніми рядками. Звичайні параграфи не повинні мати відступи або табуляцію:

Це параграф. Він містить два речення.

Це інший параграф. Він також містить два речення.

Список

 * Пункт в маркованому (ненумерованому) списку
     * Підпункт, відділений 4 пробілами
 * Інший пункт в маркованому списку

 1. Пункт в нумерованому списку
     1.1. Підпункт, відділений 4 пробілами
 2. Інший пункт в нумерованому списку

Виділений текст

 *emphasis* або _emphasis_ (тобто нахил)

 **сильне виділення** або __сильне виділення__ (тобто напівжирний)

Код

Для включення коду (відформатованого в моноширинний шрифт), ви можете або оточити вбудований код зворотніми лапками (`), наприклад, `деякий код`, або відділити декілька рядків коду щонайменше чотирма пробілами, як тут:

    перший рядок коду
    другий рядок коду
    третій рядок коду

Останній варіант за допомогою пробілів дозволяє зберігати і показувати синтаксис Markdown.

Кінець рядка

Якщо ви хочете вставити закінчення рядка Markdown, закінчіть рядок з щонайменше двома пробілами.

Наприклад:

 def show_results space space
 end

Результат:

 def show_results
 end

Ви також можете використати два порожніх рядки, наприклад:

 sentence A
 
 sentence B

Результат:

 sentence A
 sentence B

Цитати

 > "Весь цей абзац тексту буде поміщений у HTML blockquote елемент.
 Blockquote елементи змінюються в залежності від потреби/пристрою виводу.
 Ви можете обернути довільний текст за власним смаком, та воно перетвориться
 на єдиний blockquote елемент."

Приклад вище перетвориться на такий HTML:

<blockquote><p>Весь цей абзац тексту буде поміщений у HTML blockquote елемент.
 Blockquote елементи змінюються в залежності від потреби/пристрою виводу.
 Ви можете обернути довільний текст за власним смаком, та воно перетвориться
 на єдиний blockquote елемент.</p></blockquote>

Зовнішні посилання

Посилання можуть бути вбудованими:

 [текст посилання](адреса посилання)

Наприклад: [Markdown](http://en.wikipedia.com/wiki/Markdown)

Також посилання можуть бути розміщені у примітках поза параграфом, наприклад:

 [текст посилання][linkref]

створить посилання, якщо додати примітку (як показано нижче) поза параграфом (або в кінці документу):

 [linkref]: link.address.here "link title here"

Зображення

Зображення мають схожий із посиланнями синтаксис з попереднім знаком оклику.

[Alt text](/path/to/img.jpg)

Або:

[Alt text](/path/to/img.jpg "Optional title")

Як і посилання, зображення також мають примітковий стиль синтаксису

[Alt text][id]

з пізнім посиланням в документі, яке визначає URL розміщення.

 [id]: url/to/image "Optional title attribute"

Горизонтальні лінії

Горизонтальні лінії задаються розміщенням трьох або більшим дефісів, зірочок, або підкресленням в рядку самостійно. Ви можете використовувати пробіли між дефісами чи зірочками. Кожен з наведених нижче рядків створить горизонтальну лінію:

 * * *
 ***
 *****
 - - -
 ---------------------------------------

Редактори

Хоча Markdown є полегшеною мовою розмітки яку легко читати та редагувати звичайними текстовими редакторами, існують спеціально розроблені редактори, які дозволяють попередньо переглядати зі стилями. Є безліч таких редакторів, які наявні для всіх основних платформ. Існує плаґін підсвітки синтаксису для Markdown, вбудований у gedit та Vim. Текстовий редактор Atom має підсвітку синтаксису Markdown, є також можливість легко встановлювати пакунки для розширення функціоналу мови: наприклад, пакунок markdown-preview-plus дозволяє відтворювати також синтаксис LaTeX, а markdown-writer допомагає з форматуванням списків, таблиць тощо.


Markdown із LaTeX також використовуються в IPython-записниках в Jupyter та Google Colaboratory для форматування тексту. Ці веб-оболонки для IPython можуть використовуватись як текстові редактори, оскільки там є можливість створювати блоки тексту окремо від блоків коду та можливість завантажувати сторінку, наприклад, у PDF. [5][6]

Реалізації

Реалізації Markdown існують для багатьох різних фреймворків, платформ та мов.

  • Система документації джерельних текстів Doxygen підтримує Markdown з додатковими можливостями[джерело?].
  • RStudio, IDE для R підтримує C++ обгортку функцій для реалізації markdown Sundown[7].
  • IntelliJ IDEA, IDE для Java, містить плаґін для підтримки Markdown[8][9].
  • Існують формат і програма MultiMarkdown з ширшим синтаксисом та можливостями експорту, ніж в традиційній Markdown.

Існує багато іншого відкритого програмного забезпечення реалізації Markdown, доступного в мережі.

Markdown Extra

Markdown Extra - це легка мова розмітки на основі Markdown реалізована в PHP (початково), Python та Ruby. Вона містить функції недоступні в звичайному синтаксисі Markdown. Markdown Extra підтримується системами керування вмістом, наприклад Drupal,[10] TYPO3[11] та MediaWiki.[12]

Додає наступні функції до Markdown:

  • Markdown всередині блоків HTML
  • Елементи з атрибутами id/class
  • "обгороджені" блоки коду (англ. Fenced code blocks)
  • Таблиці[13]
  • Списки означень (dl)
  • Зноски
  • Абревіатури

Див. також

  • Розширення Markdown
  • Org-mode має подібну полегшену розмітку.
  • txt2tags, інша полегшена мова розмітки.
  • Setext, стара полегшена мова розмітки(1992).

Посилання

  1. GitHub Flavored Markdown. GitHub. Процитовано 29 березня 2013.
  2. Приклад Markdown у Reddit. Або, іншими словами, як зробити гламурне форматування ваших коментарів. Reddit. Архів оригіналу за 27 серпня 2013. Процитовано 29 березня 2013.
  3. Допомога з Markdown. Stack Overflow. Архів оригіналу за 27 серпня 2013. Процитовано 29 березня 2013.
  4. Повний синтаксис Markdown.
  5. Project Jupyter. www.jupyter.org. Процитовано 30 січня 2021.
  6. Google Colaboratory. colab.research.google.com (укр.). Процитовано 30 січня 2021.
  7. https://github.com/rstudio/rstudio/blob/master/src/cpp/core/markdown/Markdown.cpp
  8. Порожнє посилання на джерело‎ (довідка)
  9. https://github.com/nicoulaj/idea-markdown. Пропущений або порожній |title= (довідка)
  10. Markdown editor for BUEditor
  11. Markdown for TYPO3
  12. MarkdownExtraParser for MediaWiki
  13. PHP Markdown Extra - Tables

Зовнішні посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.