Markdown: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Виправив "списці" на "списку".
додано історію
Мітка: редагування коду 2017
 
(Не показані 30 проміжних версій ще одного користувача)
Рядок 1: Рядок 1:
{{Infobox file format
{{Поліпшити}}
| name = Markdown
'''''«Markdown»''''' (''вимова:'' маркдаун) — полегшена [[мова розмітки|мова розмітки даних]], яку створено з ухилом на [[прочитність]] та зручність в публікації з подальшим перетворенням її на ''structurally valid'' ''[[XHTML]]'' (або ''[[HTML]]''). Чимало ідей для мови позичено з існуючих домовленостей у розмітці [[Текстові дані|тексту]] в [[електронна пошта|електроних листах]]. Першу реалізацію ''Markdown'' написано Грубером на ''[[Perl]]'', але з часом з'явились багато реалізацій від сторонніх розробників (див. [[#Реалізації Markdown|нижче]]). Реалізація на ''Perl'' росповсюджується за ліцензією [[BSD]]. Реализації ''Markdown'' різними [[Мова програмування|мовами программування]] включені (або наявні в якості [[плагин]]ів) у чисельні [[Система керування вмістом|системи керування вмістом]].
| icon =
| logo = [[Файл:Markdown-mark.svg]]
| screenshot =
| caption =
| extension = .md, .markdown
| mime = text/markdown
| type code =
| uniform type = net.daringfireball.markdown
| magic =
| owner = {{не перекладено|Джон Грубер|||John Gruber}}
| licence = [[Ліцензія BSD]]
| released = {{Дата релізу та вік|2004|3|19}}
| latest release version = 1.0.1
| latest release date = {{Дата релізу та вік|2004|12|17}}
| genre = [[Мова розмітки даних]]
| container for =
| contained by =
| extended from =
| extended to = [[MultiMarkdown]], [[#Markdown Extra|Markdown Extra]], CommonMark
| standard =
| url = {{url|http://daringfireball.net/projects/markdown/}}
}}


'''Markdown''' — полегшена [[мова розмітки даних]], яку створено з ухилом на [[прочитність]] та зручність у публікації з подальшим перетворенням її на ''structurally valid'' [[XHTML]] або [[HTML]]. Чимало ідей для мови позичено з існуючих домовленостей у розмітці [[Текстові дані|тексту]] в [[Електронна пошта|електронних листах]]. Першу реалізацію ''Markdown'' написано Грубером на ''[[Perl]]'', але з часом з'явились багато реалізацій від сторонніх розробників (див. [[#Реалізації Markdown|нижче]]). Реалізація на ''Perl'' розповсюджується за [[Ліцензія BSD|ліцензією BSD]]. Реалізації ''Markdown'' різними [[Мова програмування|мовами програмування]] включені (або наявні як [[плаґін]]и) у численні [[Система керування вмістом|системи керування вмістом]].
Такі сайти як ''[[GitHub]]'' , ''[[reddit]]'' та ''[[Stack Overflow]]'' використовують ''Markdown'' для полегшення обговорень між користувачами.<ref>{{cite web|title=GitHub Flavored Markdown|url=https://help.github.com/articles/github-flavored-markdown|publisher=github.com|accessdate=29 March 2013}}</ref><ref>{{cite web|title=Reddit markdown приклад. Або іншими словами, як зробити гламурне форматування ваших коментів.|url=http://www.reddit.com/r/reddit.com/comments/6ewgt/reddit_markdown_primer_or_how_do_you_do_all_that/|publisher=reddit.com|accessdate=2013-03-29|archiveurl=http://www.webcitation.org/6JB0tFBun|archivedate=2013-08-27}}</ref><ref>{{cite web|title=Допомога з Markdown|url=http://stackoverflow.com/editing-help|publisher=http://stackoverflow.com|accessdate=2013-03-29|archiveurl=http://www.webcitation.org/6JB0uAaNQ|archivedate=2013-08-27}}</ref>


Такі сайти, як ''[[GitHub]]'', ''[[Reddit]]'' та ''[[Stack Overflow]]'' використовують ''Markdown'' для полегшення обговорень між користувачами<ref>{{Cite web|назва=GitHub Flavored Markdown|url=https://help.github.com/articles/github-flavored-markdown|видавець=[[GitHub]]|дата-доступу=29 березня 2013|archive-date=5 лютого 2019|archive-url=https://web.archive.org/web/20190205015447/https://help.github.com/articles/github-flavored-markdown/}}</ref><ref>{{Cite web|назва=Приклад Markdown у Reddit. Або, іншими словами, як зробити гламурне форматування ваших коментарів|url=http://www.reddit.com/r/reddit.com/comments/6ewgt/reddit_markdown_primer_or_how_do_you_do_all_that/|видавець=[[Reddit]]|url-архіву=https://www.webcitation.org/6JB0tFBun?url=http://www.reddit.com/r/reddit.com/comments/6ewgt/reddit_markdown_primer_or_how_do_you_do_all_that/|дата-архіву=27 серпня 2013|мертвий-url=no|дата-доступу=29 березня 2013}}</ref><ref>{{Cite web|назва=Допомога з Markdown|url=http://stackoverflow.com/editing-help|видавець=[[Stack Overflow]]|url-архіву=https://www.webcitation.org/6JB0uAaNQ?url=http://stackoverflow.com/editing-help|дата-архіву=27 серпня 2013|мертвий-url=no|дата-доступу=29 березня 2013}}</ref>.
==Приклади синтаксису==


== Історія ==
Цей опис не є вичерпним переліком Markdown синтаксису, та у багатьох випадках для досягнення певного ефекту існує декілька стилів синтаксису. Дивись [http://daringfireball.net/projects/markdown/syntax повний синтаксис Markdown] для докладнішої інформації. Літери, які Markdown однозначно визначає як команди форматування можуть бути екрановані бекслешем; наприклад, вираз '\*' виведе зірочку, а не означатиме початку проміжку виділеного тексту. Також Markdown не перетворює текст з "сирим" XHTML елементом блокового рівня; Це дозволяє включати секції XHTML у джерело Markdown документа, обернувши їх в XHTML теги блокового рівня.
Markdown передували існуючі способи розмітки [[Текстові дані|простого тексту]], прийняті для [[E-mail|електронної пошти]] та постів [[Usenet]],<ref name="ArsTechnica2014">{{cite news |last=Gilbertson |date=October 5, 2014 |first=Scott |title=Markdown throwdown: What happens when FOSS software gets corporate backing? |url=https://arstechnica.com/information-technology/2014/10/markdown-throwdown-what-happens-when-foss-software-gets-corporate-backing/ |work=[[Ars Technica]] |access-date=June 14, 2017 |archive-date=November 14, 2020 |archive-url=https://web.archive.org/web/20201114231130/https://arstechnica.com/information-technology/2014/10/markdown-throwdown-what-happens-when-foss-software-gets-corporate-backing/ |url-status=live |quote=[[CommonMark]] fork could end up better for users... but original creators seem to disagree.}}</ref> реалізовані у мовах розмітки {{нп|setext}} ({{Circa|1992}}), [[Textile]] (бл. 2002), та [[reStructuredText]] (бл. 2002).<ref name="philosophy" />


У 2002 році [[Аарон Шварц]] створив [[atx (мова розмітки)|atx]] та називав її &laquo;справжнім структурованим текстовим форматом&raquo; ({{lang-en|the true structured text format}}). Грубер створив мову розмітки Markdown у 2004, а Аарон Шварц був його &laquo;лакмусовим папірцем&raquo;<ref name="Gruber">{{Cite tweet |user=gruber |number=741989829173510145 |title=I should write about it, but it’s painful. More or less: Aaron was my sounding board, my muse.}}</ref>{{efn|В оригіналі&nbsp;&mdash; sounding board}}. Метою мови було дати людям формат тексту, який "легко читається і легко пишеться, з можливістю перетворення у валідний [[XHTML]] (або [[HTML]])"<ref name="md">Markdown 1.0.1 readme source code {{cite web|url=http://daringfireball.net/projects/markdown/ |title=Daring Fireball – Markdown |date=2004-12-17 |url-status=dead |archive-url=https://web.archive.org/web/20040402182332/http://daringfireball.net/projects/markdown/ |archive-date=2004-04-02 }}</ref>.
===Заголовки===
HTML заголовки створюються розміщенням числа "решіток" перед текстом заголовка відповідно до баженого рівня (HTML підтримує 6 рівнів озаглавлення), наприклад:


Ключовим принципом дизайну Markdown була ''читабельність'', збереження можливості читати текст як є, і щоб він при цьому не виглядав як розмічений тегами або іншими інструкціями форматування,<ref name="philosophy">{{cite web|url=http://daringfireball.net/projects/markdown/syntax#philosophy|title=Daring Fireball – Markdown – Syntax|date=2013-06-13 }}</ref> Однак читабельність підкреслюється понад усе. Документ, відформатований у Markdown, повинен публікуватися як є, як звичайний текст, без ознак того, що він був розмічений тегами або інструкціями форматування. Хоча на синтаксис Markdown вплинуло кілька існуючих фільтрів перетворення тексту в HTML, зокрема Setext, atx, Textile, reStructuredText, Grutatext<ref name="grutatext">{{Cite web |title=Un naufragio personal: The Grutatxt markup |url=https://triptico.com/docs/grutatxt_markup.html |access-date=2022-06-30 |website=triptico.com }}</ref>, and EtText<ref>{{Cite web |title=EtText: Documentation: Using EtText |url=http://ettext.taint.org/doc/ettext.html |access-date=2022-06-30 |website=ettext.taint.org}}</ref> — єдиним найбільшим джерелом натхнення для синтаксису Markdown є формат звичайної електронної пошти"}}, на відміну від відформатованого за допомогою «важчих» [[мова розмітки|мов розмітки]] тексту, таких як [[RTF]], HTML або навіть [[вікірозмітка]] (кожна з яких має очевидні вбудовані теги та інструкції з форматування, які можуть зробити текст складнішим для читання).

Грубер написав скрипт на [[Perl]], {{code|Markdown.pl}}, що конвертує текст з розміткою Markdown у [[XML#Коректність_XML-документів|валідний]] XHTML чи HTML и замінює кутові дужки ({{code|<}}, {{code|>}}) та [[амперсанд]]и ({{code|&}}) на відповідні їм [[Список позначень символів у XML та HTML|символьні сутності]]. Він може працювати і як самостійний скрипт, і як плагін для {{нп|Blosxom}} і як фільтр для {{нп|BBEdit}}.<ref name="md" />

== Приклади синтаксису ==
Цей опис не є вичерпним переліком синтаксису Markdown, та у багатьох випадках для досягнення певного ефекту існує декілька стилів синтаксису<ref>{{Cite web|url=http://daringfireball.net/projects/markdown/syntax|назва=Повний синтаксис Markdown|accessdate=7 квітня 2013|archive-date=22 лютого 2011|archive-url=https://web.archive.org/web/20110222052002/http://daringfireball.net/projects/markdown/syntax}}</ref>. Літери, які Markdown однозначно визначає як команди форматування, можуть бути екрановані [[Обернена коса риска|бекслешем]]; наприклад, вираз <code>'\*'</code> виведе зірочку, а не означатиме початку проміжку виділеного тексту. Також Markdown не перетворює текст із «сирим» [[XHTML]]-елементом блокового рівня. Це дозволяє включати секції XHTML у джерело Markdown документа, обернувши їх в XHTML теги блокового рівня.

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

<syntaxhighlight lang="markdown">
# заголовок першого рівня
# заголовок першого рівня

#### заголовок четвертого рівня
#### заголовок четвертого рівня
</syntaxhighlight>


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


<syntaxhighlight lang="markdown">
<pre><nowiki>
Заголовок першого рівня
Заголовок першого рівня
=======================
=======================
Рядок 23: Рядок 57:
Заголовок другого рівня
Заголовок другого рівня
-----------------------
-----------------------
</syntaxhighlight>
</nowiki></pre>
===Параграфи===
Параграф є одним чи декількома послідовними рядками тексту, які розділяються одним чи декількома пустими рядками. Звичайні параграфи не повинні мати відступи або табуляцію:


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


Це інший параграф. Він також містить два речення.</nowiki></pre>
<syntaxhighlight lang="markdown">Це параграф. Він містить два речення.


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

=== Список ===
<syntaxhighlight lang="markdown">
* Пункт в маркованому (ненумерованому) списку
* Пункт в маркованому (ненумерованому) списку
* Підпункт, відділений 4 пробілами
* Підпункт, відділений 4 пробілами
Рядок 39: Рядок 75:
1.1. Підпункт, відділений 4 пробілами
1.1. Підпункт, відділений 4 пробілами
2. Інший пункт в нумерованому списку
2. Інший пункт в нумерованому списку
</syntaxhighlight>

=== Виділений текст ===
<syntaxhighlight lang="markdown">
*emphasis* або _emphasis_ (тобто нахил)


**сильне виділення** або __сильне виділення__ (тобто напівжирний)
===Виділений текст===
</syntaxhighlight>
*emphasis* ''' або ''' _emphasis_ ''(тобто нахил)''


=== Код ===
**сильне виділення** ''' або ''' __сильне виділення__ '''(тобто напівжирний)'''
Для включення коду (відформатованого в [[моноширинний шрифт]]), ви можете або оточити вбудований код зворотніми лапками (<code>`</code>), наприклад, <code>`деякий код`</code>, або відділити декілька рядків коду щонайменше чотирма пробілами, як тут:
===Код===
<syntaxhighlight lang="markdown">
Для включення коду (відформатованого в моноширинний шрифт), ви можете або оточити вбудований код зворотніми лапками (`), як текст з `деяким кодом` всередині, або відділити декілька рядків кода щонайменше чотирма пробілами, як тут:
перший рядок коду
<pre>
перший рядок кода
другий рядок коду
другий рядок кода
третій рядок коду
</syntaxhighlight>
третій рядок кода
</pre>
Останній варіант за допомогою пробілів дозволяє зберігати і показувати синтаксис Markdown.
Останній варіант за допомогою пробілів дозволяє зберігати і показувати синтаксис Markdown.


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


Наприклад:
Наприклад:
<syntaxhighlight lang="markdown">
def show_results space space
def show_results space space
end
end
</syntaxhighlight>


Результат:
Результат:
<syntaxhighlight lang="markdown">
def show_results
def show_results
end
end
</syntaxhighlight>


Ви також можете використати два пустих рядка.
Ви також можете використати два порожніх рядки, наприклад:
<syntaxhighlight lang="markdown">
Наприклад:
sentence A
sentence A
sentence B
sentence B
</syntaxhighlight>


Результат:
Результат:
<syntaxhighlight lang="markdown">
sentence A
sentence A
sentence B
sentence B
</syntaxhighlight>


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


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


===Зовнішні посилання===
=== Зовнішні посилання ===
Посилання можуть бути вбудованими:
Посилання можуть бути вбудованими:
<syntaxhighlight lang="markdown">
[текст посилання](адреса посилання)
</syntaxhighlight>
Наприклад: <code>[Markdown](<nowiki>http://en.wikipedia.com/wiki/Markdown</nowiki>)</code>


Також посилання можуть бути розміщені у примітках поза параграфом, наприклад:
[текст посилання](посилання.адреси.тут)
<syntaxhighlight lang="markdown">
Наприклад: [Markdown](<nowiki>http://en.wikipedia.com/wiki/Markdown</nowiki>)

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

[текст посилання][linkref]
[текст посилання][linkref]
</syntaxhighlight>


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

[linkref]: link.address.here "link title here"
[linkref]: link.address.here "link title here"
</syntaxhighlight>


===Зображення===
=== Зображення ===
Зображення мають схожий із посиланнями синтаксис з попереднім знаком оклику.
Зображення мають схожий із посиланнями синтаксис з попереднім знаком оклику.
<syntaxhighlight lang="markdown">

<nowiki> </nowiki>[Alt text](/path/to/img.jpg)
![Alt text](/path/to/img.jpg)
</syntaxhighlight>


Або:
Або:
<syntaxhighlight lang="markdown">

<nowiki> </nowiki>[Alt text](/path/to/img.jpg "Optional title")
![Alt text](/path/to/img.jpg "Optional title")
</syntaxhighlight>


Як і посилання, зображення також мають примітковий стиль синтаксису
Як і посилання, зображення також мають примітковий стиль синтаксису
<syntaxhighlight lang="markdown">

<nowiki> </nowiki>[Alt text][id]
[Alt text][id]
</syntaxhighlight>


з пізнім посиланням в документі, яке визначає URL розміщення.
з пізнім посиланням в документі, яке визначає URL розміщення.
<syntaxhighlight lang="markdown">
[id]: url/to/image "Optional title attribute"
</syntaxhighlight>


=== Горизонтальні лінії ===
[id]: url/to/image "Optional title attribute"
Горизонтальні лінії задаються розміщенням трьох або більшим дефісів, зірочок, або підкресленням в рядку самостійно. Ви можете використовувати пробіли між дефісами чи зірочками. Кожен з наведених нижче рядків створить горизонтальну лінію:

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

* * *
* * *
***
***
Рядок 127: Рядок 183:
- - -
- - -
---------------------------------------
---------------------------------------
</syntaxhighlight>


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


==Реалізації==
Реалізації Markdown існують для багатьох різних фреймворків, платформ та мов.
* Система документації джерельних текстів [[Doxygen]] підтримує Markdown з додатковими можливостями {{cn|date=March 2013}}.
* [[RStudio]], IDE для [[R (мова програмування)|R]] підтримує [[C++]] [[обгортка функції|обгортку функцій]] для реалізації markdown [[sundown (software)|sundown]].<ref>https://github.com/rstudio/rstudio/blob/master/src/cpp/core/markdown/Markdown.cpp</ref>
* [[IntelliJ IDEA]], IDE для [[Java (мова програмування)|Java]], підтримує Markdown плагін<ref>http://plugins.jetbrains.com/plugin?id=5970</ref><ref>https://github.com/nicoulaj/idea-markdown</ref>
* [[MultiMarkdown]] Формат та програма з ширшим синтаксисом та можливостями експорту, ніж в традиційного Markdown.


Markdown із LaTeX також використовуються в [[IPython]]-записниках в ''Jupyter'' та ''Google Colaboratory'' для форматування тексту. Ці вебоболонки для IPython можуть використовуватись як текстові редактори, оскільки там є можливість створювати блоки тексту окремо від блоків коду та можливість завантажувати сторінку, наприклад, у [[PDF]]. <ref>{{Cite web|title=Project Jupyter|url=https://www.jupyter.org/|website=www.jupyter.org|accessdate=2021-01-30|archive-date=30 січня 2021|archive-url=https://web.archive.org/web/20210130105113/https://jupyter.org/}}</ref><ref>{{Cite web|title=Google Colaboratory|url=https://colab.research.google.com/notebooks/intro.ipynb|website=colab.research.google.com|accessdate=2021-01-30|language=uk|archive-date=2 лютого 2021|archive-url=https://web.archive.org/web/20210202044737/https://colab.research.google.com/notebooks/intro.ipynb}}</ref>
Існує багато іншого [https://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%B4%D0%BA%D1%80%D0%B8%D1%82%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%B5_%D0%B7%D0%B0%D0%B1%D0%B5%D0%B7%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%BD%D1%8F відкритого програмного забезпечення] реалізації Markdown, доступного в мережі.


== Реалізації ==
==Дивися також==
Реалізації Markdown існують для багатьох різних фреймворків, платформ та мов.
* Система документації джерельних текстів [[Doxygen]] підтримує Markdown з додатковими можливостями{{Fact|дата=березень 2013}}.
* [[RStudio]], IDE для [[R (мова програмування)|R]] підтримує [[C++]] {{не перекладено|Обгортка функції|обгортку функцій||Wrapper function}} для реалізації markdown [[Sundown]]<ref>{{Cite web |url=https://github.com/rstudio/rstudio/blob/master/src/cpp/core/markdown/Markdown.cpp |title=Архівована копія |accessdate=7 квітня 2013 |archive-date=26 липня 2017 |archive-url=https://web.archive.org/web/20170726011514/https://github.com/rstudio/rstudio/blob/master/src/cpp/core/markdown/Markdown.cpp }}</ref>.
* [[IntelliJ IDEA]], IDE для [[Java (мова програмування)|Java]], містить плаґін для підтримки Markdown<ref>{{Cite web|url=http://plugins.jetbrains.com/plugin?id=5970}}</ref><ref>{{Cite web|url=https://github.com/nicoulaj/idea-markdown|title=Архівована копія|accessdate=7 квітня 2013|archive-date=10 вересня 2013|archive-url=https://web.archive.org/web/20130910015609/https://github.com/nicoulaj/idea-markdown}}</ref>.
* Існують формат і програма [[MultiMarkdown]] з ширшим синтаксисом та можливостями експорту, ніж в традиційній Markdown.

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

=== Markdown Extra ===
Markdown Extra - це [[легка мова розмітки]] на основі Markdown реалізована в [[PHP]] (початково), [[Python]] та [[Ruby]]. Вона містить функції недоступні в звичайному синтаксисі Markdown. Markdown Extra підтримується [[Система керування вмістом|системами керування вмістом]], наприклад [[Drupal]],<ref>{{Cite web |url=https://drupal.org/project/markdowneditor |title=Markdown editor for BUEditor |accessdate=24 лютого 2017 |archive-date=17 вересня 2020 |archive-url=https://web.archive.org/web/20200917172201/https://www.drupal.org/project/markdowneditor }}</ref> [[TYPO3]]<ref>{{Cite web |url=http://typo3.org/extensions/repository/view/markdown_content |title=Markdown for TYPO3 |accessdate=24 лютого 2017 |archive-date=14 вересня 2014 |archive-url=https://web.archive.org/web/20140914194807/http://typo3.org/extensions/repository/view/markdown_content }}</ref> та [[MediaWiki]].<ref>{{Cite web |url=http://www.mediawiki.org/wiki/Extension:MarkdownExtraParser |title=MarkdownExtraParser for MediaWiki |accessdate=24 лютого 2017 |archive-date=13 липня 2017 |archive-url=https://web.archive.org/web/20170713053525/https://www.mediawiki.org/wiki/Extension:MarkdownExtraParser }}</ref>

Додає наступні функції до Markdown:
* Markdown всередині блоків [[HTML]]
* Елементи з атрибутами id/class
* "обгороджені" блоки коду ({{lang-en|Fenced code blocks}})
* Таблиці<ref>{{Cite web |url=http://michelf.com/projects/php-markdown/extra/#table |title=PHP Markdown Extra - Tables |accessdate=24 лютого 2017 |archive-date=1 липня 2012 |archive-url=https://web.archive.org/web/20120701133754/http://michelf.com/projects/php-markdown/extra/#table }}</ref>
* Списки означень (dl)
* Зноски
* Абревіатури

== Див. також ==
* [[Розширення Markdown]]
* [[Розширення Markdown]]
* [[Org-mode]] має подібну полегшену розмітку.
* [[Org-mode]] має подібну полегшену розмітку.
Рядок 146: Рядок 218:
* [[Setext]], стара полегшена мова розмітки(1992).
* [[Setext]], стара полегшена мова розмітки(1992).


== Коментарі ==
==Посилання==
{{notelist}}

== Посилання ==
{{reflist}}
{{reflist}}


==Зовнішні посилання==
== Зовнішні посилання ==
*[http://daringfireball.net/projects/markdown/ Official Markdown project at Daring Fireball]
* [http://daringfireball.net/projects/markdown/ Official Markdown project at Daring Fireball] {{Webarchive|url=https://web.archive.org/web/20040402182332/http://daringfireball.net/projects/markdown/ |date=2 квітня 2004 }}
* [https://www.raywenderlich.com/119949/top-five-markdown-editors Огляд Markdown редакторів для OS X (Raywenderlich)] {{Webarchive|url=https://web.archive.org/web/20160603071048/https://www.raywenderlich.com/119949/top-five-markdown-editors |date=3 червня 2016 }}{{ref-en}}

{{Мови розмітки}}
{{Мови розмітки}}
[[Category:Мови розмітки даних]]
[[Категорія:Мови розмітки даних]]
[[Категорія:Конспектування]]
[[Категорія:Легкі мови розмітки]]
[[Категорія:Статті з прикладами коду мовою HTML]]

Поточна версія на 14:14, 29 жовтня 2024

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

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

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

Історія

[ред. | ред. код]

Markdown передували існуючі способи розмітки простого тексту, прийняті для електронної пошти та постів Usenet,[4] реалізовані у мовах розмітки setext[en] (прибл. 1992), Textile (бл. 2002), та reStructuredText (бл. 2002).[5]

У 2002 році Аарон Шварц створив atx та називав її «справжнім структурованим текстовим форматом» (англ. the true structured text format). Грубер створив мову розмітки Markdown у 2004, а Аарон Шварц був його «лакмусовим папірцем»[6][a]. Метою мови було дати людям формат тексту, який "легко читається і легко пишеться, з можливістю перетворення у валідний XHTML (або HTML)"[7].

Ключовим принципом дизайну Markdown була читабельність, збереження можливості читати текст як є, і щоб він при цьому не виглядав як розмічений тегами або іншими інструкціями форматування,[5] Однак читабельність підкреслюється понад усе. Документ, відформатований у Markdown, повинен публікуватися як є, як звичайний текст, без ознак того, що він був розмічений тегами або інструкціями форматування. Хоча на синтаксис Markdown вплинуло кілька існуючих фільтрів перетворення тексту в HTML, зокрема Setext, atx, Textile, reStructuredText, Grutatext[8], and EtText[9] — єдиним найбільшим джерелом натхнення для синтаксису Markdown є формат звичайної електронної пошти"}}, на відміну від відформатованого за допомогою «важчих» мов розмітки тексту, таких як RTF, HTML або навіть вікірозмітка (кожна з яких має очевидні вбудовані теги та інструкції з форматування, які можуть зробити текст складнішим для читання).

Грубер написав скрипт на Perl, Markdown.pl, що конвертує текст з розміткою Markdown у валідний XHTML чи HTML и замінює кутові дужки (<, >) та амперсанди (&) на відповідні їм символьні сутності. Він може працювати і як самостійний скрипт, і як плагін для Blosxom[en] і як фільтр для BBEdit[en].[7]

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

[ред. | ред. код]

Цей опис не є вичерпним переліком синтаксису Markdown, та у багатьох випадках для досягнення певного ефекту існує декілька стилів синтаксису[10]. Літери, які 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. [11][12]

Реалізації

[ред. | ред. код]

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

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

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

Markdown Extra

[ред. | ред. код]

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

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

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

Див. також

[ред. | ред. код]

Коментарі

[ред. | ред. код]
  1. В оригіналі — sounding board

Посилання

[ред. | ред. код]
  1. GitHub Flavored Markdown. GitHub. Архів оригіналу за 5 лютого 2019. Процитовано 29 березня 2013.
  2. Приклад Markdown у Reddit. Або, іншими словами, як зробити гламурне форматування ваших коментарів. Reddit. Архів оригіналу за 27 серпня 2013. Процитовано 29 березня 2013.
  3. Допомога з Markdown. Stack Overflow. Архів оригіналу за 27 серпня 2013. Процитовано 29 березня 2013.
  4. Gilbertson, Scott (5 жовтня 2014). Markdown throwdown: What happens when FOSS software gets corporate backing?. Ars Technica. Архів оригіналу за 14 листопада 2020. Процитовано 14 червня 2017. CommonMark fork could end up better for users... but original creators seem to disagree.
  5. а б Daring Fireball – Markdown – Syntax. 13 червня 2013.
  6. @gruber (12 червня 2016). I should write about it, but it’s painful. More or less: Aaron was my sounding board, my muse (Твіт) — через Твіттер.
  7. а б Markdown 1.0.1 readme source code Daring Fireball – Markdown. 17 грудня 2004. Архів оригіналу за 2 квітня 2004.
  8. Un naufragio personal: The Grutatxt markup. triptico.com. Процитовано 30 червня 2022.
  9. EtText: Documentation: Using EtText. ettext.taint.org. Процитовано 30 червня 2022.
  10. Повний синтаксис Markdown. Архів оригіналу за 22 лютого 2011. Процитовано 7 квітня 2013.
  11. Project Jupyter. www.jupyter.org. Архів оригіналу за 30 січня 2021. Процитовано 30 січня 2021.
  12. Google Colaboratory. colab.research.google.com (укр.). Архів оригіналу за 2 лютого 2021. Процитовано 30 січня 2021.
  13. Архівована копія. Архів оригіналу за 26 липня 2017. Процитовано 7 квітня 2013.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  14. http://plugins.jetbrains.com/plugin?id=5970. {{cite web}}: Пропущений або порожній |title= (довідка)
  15. Архівована копія. Архів оригіналу за 10 вересня 2013. Процитовано 7 квітня 2013.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  16. Markdown editor for BUEditor. Архів оригіналу за 17 вересня 2020. Процитовано 24 лютого 2017.
  17. Markdown for TYPO3. Архів оригіналу за 14 вересня 2014. Процитовано 24 лютого 2017.
  18. MarkdownExtraParser for MediaWiki. Архів оригіналу за 13 липня 2017. Процитовано 24 лютого 2017.
  19. PHP Markdown Extra - Tables. Архів оригіналу за 1 липня 2012. Процитовано 24 лютого 2017.

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

[ред. | ред. код]