Markdown

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 23:05, 8 июня 2016.
Markdown
fraimed
Спроектировано Джон Грубер
Портал: daringfireball.net

Markdown - (произносится [ mɑːkdaʊn ] )язык разметки, который транслируется в HTML. Используя более простой синтакскис, Markdown упрощает форматирвоание текста. [1] Задача Markdown упростить форматирование текста, а так же убрать из текста избыточные конструкции, которые усложняют понимание отформатированного текста.

История

Markdown был разработан в 2004 Джоном Грубером, который написал на Perl конвертер транслирующий Markdown в HTML.[1] На 2014 год существует большое количество реализаций Markdown на различных языках. Некоторые из них расширяют базовый синтаксис позволяя тем самым создавать таблицы, примечания, списки определений, другие же позволяют на выходе получить формат отличный от HTML, а именно LaTeX и многие другие популярные форматы.

Стандартизация

Джон Грубер разработав Markdown не конкретизировал синтаксис языка однозначно. Из-за отсутствии спецификации, ранние реализации основывались на оригинальном коде Markdown.pl. Но ввиду того, что Markdown.pl был плохо реализован и выдавал в большенстве случаев сомнительные результаты, Markdown.pl не мог заменить потребность в спецификации. Последнее обновление Markdown.pl было опубликовано 17 Декабря 2004.[1]. Отсутствие спецификации породило значительное количество разных видов реализаций, которые на выходе выдавали совершенно разные HTML. В Сентябре 2014 группой независимых разработчиков заинтересованных в концепции языка Markdown была опубликована первая версия спецификации языка CommonMark нацеленная поставить окончательную точку и разрешить все неясности связанные с отсутствием спецификации Markdown.[2]

Синтаксис

Блочные элементы

Заголовки

Markdown HTML
Заголовок h1
=============

Заголовок h2
-------------

# И это h1

## И это h2

###### А это h6
<h1>Заголовок h1</h1>

<h2>Заголовок h2</h2>

<h1>И это h1</h1>

<h2>И это h2</h2>

<h6>А это h6</h6>

Цитата

Markdown HTML
> Это blockquote, который содержит два параграфа.
> Это всё первый параграф.
> 
> > А это вложенный blockquote.
>
> А вот и второй параграф.
<blockquote>
<p>Это blockquote, который содержит два параграфа.
Это всё первый параграф.</p>

<blockquote>
  <p>А это вложенный blockquote.</p>
</blockquote>

<p>А вот и второй параграф.</p>
</blockquote>

Нумерованный список

Markdown HTML
Особенность 1. Ленивое вычисление номера пункта.

1. Красный
1. Зелёный
1. Синий

Особенность 2. Каждый пункт можно обернуть `<p>` тегом.

1. Красный

1. Зелёный

1. Синий

Особенность 3. Некоторыю люди для улучшения читабельности
предпочитают добавлять несколько дополнительных пробелов

1.  Lorem Ipsum is simply dummy text of the printing and
    typesetting industry. Lorem Ipsum has been the 
    industry's standard dummy text ever since the 1500s,
    when an unknown printer took a galley of type and
    scrambled it to make a type specimen book.
1.  А это другой пункт.
<p>Особенность 1. Ленивое вычисление номера пункта.</p>

<ol>
<li>Красный</li>
<li>Зелёный</li>
<li>Синий</li>
</ol>

<p>Особенность 2. Каждый пункт можно обернуть <code>&amp;lt;p&amp;gt;</code> тегом.</p>

<ol>
<li><p>Красный</p></li>
<li><p>Зелёный</p></li>
<li><p>Синий</p></li>
</ol>

<p>Особенность 3. Некоторыю люди для улучшения читабельности
предпочитают добавлять несколько дополнительных пробелов</p>

<ol>
<li>Lorem Ipsum is simply dummy text of the printing and
typesetting industry. Lorem Ipsum has been the 
industry's standard dummy text ever since the 1500s,
when an unknown printer took a galley of type and
scrambled it to make a type specimen book.</li>
<li>А это другой пункт.</li>
</ol>

Маркированный список

Все особенности применимые к нумерованному списку работают и с маркированным. В качестве маркера необходимо использовать *, - или +.

Markdown HTML
Как и для нумерованного списка можно
использовать дополнительные пробелы*   Первый маркер.

*   Второй маркер.

*   Lorem Ipsum is simply dummy text of the printing and
    typesetting industry. Lorem Ipsum has been the 
    industry's standard dummy text ever since the 1500s,
    when an unknown printer took a galley of type and
    scrambled it to make a type specimen book

*   А можно и блок кода вставить. Просто не забудь пустую линию и
    8 пробелов или 2 табов.
        
        for i := 1; i < 2; i++ {
            fmt.Println(i)
        }

*   Очередной маркер.
<p>Как и для нумерованного списка можно
использовать дополнительные пробелы</p>

<ul>
<li><p>Первый маркер.</p></li>
<li><p>Второй маркер.</p></li>
<li><p>Lorem Ipsum is simply dummy text of the printing and
typesetting industry. Lorem Ipsum has been the 
industry's standard dummy text ever since the 1500s,
when an unknown printer took a galley of type and
scrambled it to make a type specimen book</p></li>
<li><p>А можно и блок кода вставить. Просто не забудь пустую линию и
8 пробелов или 2 табов.</p>

<pre><code>for i := 1; i &amp;lt; 2; i++ {
    fmt.Println(i)
}
</code></pre></li>
<li><p>Очередной маркер.</p></li>
</ul>

Блок code

Markdown HTML
Пример кода на AppleScript:

    tell application "Foo"
        beep
    end tell
<p>Пример кода на AppleScript:</p>

<pre><code>tell application "Foo"
    beep
end tell
</code></pre>

Горизонтальная линия

Markdown HTML
* * *

***

*****

- - -

---------------------------------------
<hr />

<hr />

<hr />

<hr />

<hr />

Встроенные элементы

Ссылки

Markdown HTML
<p><a href="http://en.bmstu.wiki/">BMSTU Wiki</a></p>

Выделение

Markdown HTML
*одинарная снежинка*

_одинарное подчёркивание_

**двойная снежинка**

__двойное подчёркивание__
<p><em>одинарная снежинка</em></p>

<p><em>одинарное подчёркивание</em></p>

<p><strong>двойная снежинка</strong></p>

<p><strong>двойное подчёркивание</strong></p>

Встроенный code

Markdown HTML
Используйте функцию `printf()`.
<p>Используйте функцию <code>printf()</code>.</p>

Примечания

Ссылки