Статьи

Уценка: входы и выходы

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

Если вы не знакомы с этим, позвольте мне рассказать вам об этом сегодня!

Markdown делает фантастическую работу по уходу с дороги.

Markdown делает фантастическую работу по уходу с дороги. Я уверен, что в какой-то момент все подчеркнули текст в простом текстовом документе, окружив фразу звездочкой, * вот так *. Именно так и работает в Markdown! Обеспечение дополнительного акцента (выделение слова) так же просто, как ** удвоение звездочки **.

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

Преимущества должны быть очевидны для всех, кто пробовал писать веб-контент и должен был беспокоиться о его форматировании. <em>text here</em> просто слишком сложно набрать, если вы уже в курсе — не говоря уже о том, как безумие тегов HTML, которые мешают документу, может ухудшить читабельность при проверке документа.

Существует несколько редакторов Markdown, как веб-, так и настольных, но вы, конечно, можете использовать любой старый текстовый редактор. Единственное преимущество, которое предоставляют определенные редакторы Markdown — это предварительный просмотр сгенерированного HTML и, как правило, некоторый уровень подсветки синтаксиса.

Если вы хотите попробовать приведенные ниже примеры, обратитесь к официальному браузерному конвертеру Dingus.


С помощью Markdown текст автоматически преобразуется в абзацы, где блоки текста разделяются пустой строкой. И не только с помощью нескольких тегов типа WYSIWYG ушедших дней, но и с помощью реальных семантических <p> абзацев. Это почти как черная магия.

1
2
3
4
5
6
7
8
9
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
 
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur.
occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.

Просто становится:

1
2
3
4
5
6
7
8
9
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed
do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.</p>
 
<p>Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur.
occaecat cupidatat non proident, sunt in culpa qui officia
deserunt mollit anim id est laborum.</p>

Одна небольшая странность с Markdown — то, как обрабатываются одиночные разрывы строк. Философия Markdown заключается в том, что браузер должен обрабатывать разрывы строк, и никто другой. Итак, следующий текст:

1
2
Lorem ipsum dolor sit amet, consectetur.
Adipisicing elit, sed do eiusmod tempor incididunt.

Становится довольно резким

1
<p>Lorem ipsum dolor sit amet, consectetur.

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

1
2
Lorem ipsum dolor sit amet, consectetur.<space><space>
Adipisicing elit, sed do eiusmod tempor incididunt.

Ряд «вариантов» Markdown может обрабатывать разрывы строк так, как вы ожидаете, но об этом позже.

Начните абзац с # , и этот абзац станет заголовком. Число # обозначает номер уровня заголовка ( <h1> , <h2> и т. Д.)

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
# Heading One
This is a paragraph.
adipisicing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.
 
## Heading Two
 
This is a paragraph.
adipisicing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.
 
### Heading Three
#### Heading Four
##### Heading Five
###### Heading Six

становится:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<h1>Heading One</h1>
<p>This is a paragraph.
adipisicing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.
 
<h2>Heading Two</h2>
 
<p>This is a paragraph.
adipisicing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.
 
<h3>Heading Three</h3>
<h4>Heading Four</h4>
<h5>Heading Five</h5>
<h6>Heading Six</h6>

Альтернативный синтаксис также предоставляется для <h1> и <h2> , например так:

01
02
03
04
05
06
07
08
09
10
11
Heading One
===========
This is a paragraph.
adipisicing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.
 
Heading Two
————
This is a paragraph.
adipisicing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua.

Одним из основных факторов, влияющих на Markdown, является электронная почта в виде простого текста, и это очевидно, когда вы видите, что кавычки отформатированы точно так же, как и в электронной почте : с префиксом > :

1
2
3
4
5
This is a normal paragraph.
 
> This is a blockquote paragraph.
 
> And the blockquote continues here, too.

… который преобразуется в:

1
2
3
4
5
6
<p>This is a normal paragraph.</p>
 
<blockquote>
    <p>This is a blockquote paragraph.</p>
    <p>And the blockquote continues here, too.</p>
</blockquote>

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

Большие блоки кода могут быть определены простым отступом кода на уровень (по крайней мере, одна вкладка / четыре пробела) — уровень отступа будет удален. Markdown автоматически экранирует все специальные символы внутри блока кода, что означает, что вы можете безопасно просто копировать блоки кода, не экранируя вручную < to &lt; и > до &gt; и т.п.

1
2
3
4
5
6
7
8
This is a paragraph with a bit of `<strong>CODE</strong>` in it.
 
    <?php
    $name = $_GET[‘name’] ?: ‘World’;
    echo «Hello $name & everyone else!»;
    ?>
 
Another paragraph, but with a code block above it.

1
2
3
4
5
6
7
8
9
<p>This is a paragraph with a bit of `<strong>CODE</strong>` in it.</p>
 
<pre><code>&lt;?php
$name = $_GET[‘name’] ?: ‘World’;
echo «Hello $name &amp; everyone else!»;
?&gt;
</code></pre>
 
<p>Another paragraph, but with a code block above it.</p>

Другой верный пример того, как Markdown выглядит естественным образом, — это способ указания списка. Просто начните абзац с * (или + , - ), чтобы создать неупорядоченный список. Используйте номера, 1. , 2. и т. Д. Для упорядоченных списков:

01
02
03
04
05
06
07
08
09
10
11
I will need:
 
* Snakes
* Scorpions
* Hamsters
 
Then, I can begin my plan to rule the world:
 
1. Aquire hamsters
2. Train snakes to ride hamsters
3. Rule the world

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<p>I will need:</p>
 
<ul>
    <li>Snakes</li>
    <li>Scorpions</li>
    <li>Hamsters</li>
</ul>
 
<p>Then, I can begin my plan to rule the world:</p>
 
<ol>
    <li>Aquire hamsters</li>
    <li>Train snakes to ride hamsters</li>
    <li>Rule the world</li>
</ol>

Мы уже рассмотрели выделенный курсивом и жирным шрифтом текст в начале этой статьи ( * и ** ), однако вы также можете поменять звездочки на подчеркивания, если это больше ваша вещь:

1
Here’s some *italic* text, and more _italic_ text.

Ссылки удобны и просты в Markdown (если вы можете зафиксировать память, прежде всего квадратные и круглые скобки …):

1
[Google](http://google.com)
1
<a href=»http://google.com»>Google</a>

Чтобы отобразить изображение, поставьте перед кодом ссылки символ ! :

1
![The Google Logo](http://google.com/logo.png)
1
<img src=»http://google.com/logo.png» alt=»The Google Logo»>

Разметка очень мягкая, когда речь идет о том, чтобы вырваться из разметки и просто использовать вместо нее HTML. Если вам нужно включить таблицу, включите ее в HTML. Или, если вы предпочитаете писать свои ссылки в формате HTML, вы можете сделать это. Markdown достаточно умен, чтобы знать, когда вы хотите включить HTML, и он обходится без него.

Markdown также автоматически экранирует символы, такие как &, <и>, в форму сущности HTML. Он даже разумно преобразует обычные комбинации символов в то, что вы действительно имеете в виду.

  • Три точки автоматически станут многоточием:…
  • Два дефиса станут чертой: —
  • Кавычки станут «модными», завитыми версиями самих себя.

Существует ряд альтернативных вариантов «Markdown», расширяющих набор правил Markdown по умолчанию. Распространенным расширением является простой разрыв строки, как описано выше. Одним из самых известных ароматов Markdown является GitHub’s Flavored Markdown . Это используется для разметки ввода пользователя везде на своем сайте. Наряду с улучшенной поддержкой разрыва строк и рядом настроек, специфичных для GitHub, моя любимая функция — это их альтернатива ограждению кода, которая также позволяет указывать синтаксис для выделения. Просто окружите блок кода ``` с обеих сторон, включая язык в начале, вот так:

1
2
3
4
5
6
«`php
<?php
$name = $_GET[‘name’] ?: ‘World’;
echo «Hello $name & everyone else!»;
?>
«`

Конвертер Tuts + Markdown можно найти здесь .

Официальный конвертер написан на Perl и доступен для скачивания на домашней странице Markdown в Daring Fireball . Также существует несколько других конверторов Markdown для множества разных языков — от C … до Ruby … до JavaScript … до PHP. Полный список реализаций можно найти в Википедии .

Одной из популярных реализаций Ruby является RedCarpet , основанная на библиотеке C Sundown, которая предоставляет очень простой способ настройки вывода сгенерированного HTML для создания собственного «аромата» Markdown.

Недавно я использовал эту библиотеку для создания конвертера Markdown, который принимает GitHub Flavored Markdown (чтобы позволить указывать язык кода для подсветки синтаксиса) и выводит преобразованный HTML в особом стиле, требуемом для сайтов Tuts +. Конвертер Tuts + Markdown можно найти здесь . Если вы когда-либо писали учебник для этого сайта, обязательно используйте его!

Фактически, эта статья была написана в Markdown с использованием популярного редактора Mou Markdown для OSX.