При написании публикаций и комментариев на сайте можно использовать HTML или Markdown на выбор. Важно заметить, что мы поддерживаем «Habrahabr Flavored Markdown», (сокращенно HFM) — он расширяет традиционный Markdown несколькими существенными отличиями.

Да, если вы не знакомы с Markdown, стоит взглянуть на основы Markdown-разметки.

Отличия от традиционного Markdown


Поддержка множественного подчеркивания в словах

Там где Markdown трансформирует текст, обрамленный символом подчеркивания (_), в курсив, HFM игнорирует подчеркивания:

  • wow_great_stuff
  • do_this_and_do_that_and_another_thing.

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


Автолинкинг

HFM автоматически конвертирует URL-адреса в активные ссылки. Исключением являются ссылки внутри кода.

http://example.com

становится

http://example.com


Зачеркивание

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

~~Mistaken text.~~

становится

Mistaken text.


Огороженные блоки кода

Традиционный Markdown преобразовывает текст, отбитый 4 пробелами на каждой строке, в блоки кода. HFM также поддерживает Огороженные блоки кода. Для этого просто оберните блок кода ``` — отбивать каждую строку 4 пробелами не понадобится.

```
function test() {

  console.log("notice the blank line before this function?");

}
```

становится

function test() {

  console.log("notice the blank line before this function?");

}


Подсветка синтаксиса

Чтобы подсветить синтаксис, можно использовать огороженные блоки кода, дополненные названием языка. Например, чтобы подсветить синтаксис Ruby:

```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

Мы поддерживаем синтаксис языков: C#, C++, CSS, Caché ObjectScript, Diff, HTML, XML, Java, Javascript, PHP, Perl, Python, Ruby, SQL, 1С, ActionScript, Apache, Axapta, CMake, CoffeeScript, DOS, Delphi, Django, Erlang, Erlang REPL, GLSL, Go, Haskell, Lisp, Lua, MEL, Markdown, Matlab, Nginx, Objective C, Rust, Scala, Smalltalk, TeX, VBScript, VHDL, Vala. Список будет постепенно дополняться.


Таблицы

Таблицы можно создавать одним из двух способов. Вот так:

First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell

First Header Second Header
Content Cell Content Cell
Content Cell Content Cell

Или добавив дополнительные границы по бокам:

| First Header  | Second Header |
| ------------- | ------------- |
| Content Cell  | Content Cell  |
| Content Cell  | Content Cell  |

First Header Second Header
Content Cell Content Cell
Content Cell Content Cell

Имейте ввиду, что количество тире в строке разделения заголовка и количество символов в теле таблицы могут не соответствовать друг другу:

| Name | Description          |
| ------------- | ----------- |
| Help      | Display the help window.|
| Close     | Closes a window     |

Name Description
Help Display the help window.
Close Closes a window

В ячейках таблицы можно использовать ссылки, жирный текст, курсив или зачеркивание:

| Name | Description          |
| ------------- | ----------- |
| Help      | ~~Display the~~ help window.|
| Close     | _Closes_ a window     |

Name Description
Help Display the help window.
Close Closes a window

Для использования Markdown не забывайте ставить соответствующую галочку: она расположена прямо над полем с тегами.