Discourse: публикация кода или форматирование текста

:bookmark: В этой статье описано, как использовать Markdown, BBCode и HTML в Discourse для публикации форматированного текста.>
:person_raising_hand: Требуемый уровень пользователя: доступно всем пользователям>
:link: Оригинальная статья на официальном сайте: Posting code or preformatted text

Когда вы хотите поделиться кодом в Discourse или опубликовать логи ошибок, отсутствие форматирования делает такие сообщения трудными для чтения. Кроме того, многие фрагменты кода содержат пробелы и специальные символы; при конвертации без форматирования их смысл может быть искажён.

Обзор

В этом руководстве вы узнаете:

  • Как форматировать встроенный код.
  • Как форматировать однострочный код.
  • Как форматировать многострочный код.
  • Как использовать BBCode и HTML для форматирования кода.
  • Как отключить автоматическое форматирование кода.

Форматирование встроенного кода

Чтобы отформатировать встроенный код или специальный текст, заключите его в одинарные кавычки с обеих сторон.

Это можно сделать в середине строки или выделить код в отдельную строку.

Форматирование встроенного кода не применяет никакого дополнительного оформления (см. примеры ниже), а лишь задаёт стиль кода («code style»).

Пример 1:

Ввод:

`This is a line of code`

Вывод:

This is a line of code

Пример 2:

Ввод:

Here’s some text with `a bit of code` inside!

Вывод:

Here’s some text with a bit of code inside!

Форматирование однострочного кода

Чтобы отформатировать код в одной строке, просто добавьте четыре пробела в начале строки.

Весь текст в этой строке будет отформатирован как код до начала следующей строки.

Пример:

Ввод:

    All text after 4 spaces will be formatted.

Вывод:

All text after 4 spaces will be formatted.

Форматирование многострочного кода

Для многострочного кода использование метода однострочного форматирования становится неудобным.

Особенно это актуально, когда код использует пробелы для отступов.

Применение однострочного форматирования нарушит отступы всего блока кода.

В таком случае используйте три обратных апострофа (backticks, ```), которые должны находиться на отдельной строке.

При этом перед этими тремя апострофами не должно быть пробелов; иначе весь блок кода может не отформатироваться.

Пример:

Ввод:

``` 
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
}
```

Вывод:

public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
}

BBCode и HTML

Помимо Markdown, Discourse поддерживает BBCode и HTML.

Для HTML используйте теги <pre> и <code>:

<pre><code>
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
}
</code></pre>

Для BBCode используйте тег [code]:

[code]
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
[/code]

Для конкретного языка программирования

По умолчанию Discourse автоматически определяет язык программирования на основе вашего ввода.

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

``` ваш_язык
# Ваш код здесь

Пример:

Для языка Ruby:

Ввод:

``` ruby
3.times do |stuff|
    stuff.do
end
```

Вывод:

3.times do |stuff|
    stuff.do
end

Поддерживаются только языки, перечисленные в списке highlighted languages, который поддерживает подсветку синтаксиса.

Список поддерживаемых языков доступен на странице на GitHub.

Кроме того, вы можете настроить язык по умолчанию с помощью параметра default code lang.

Отключение подсветки синтаксиса

Если вы не хотите, чтобы текст или блок кода подсвечивались синтаксисом, укажите text вместо названия языка.

Пример:

Ввод:

``` text
Your text to NOT highlight here

Вывод:

Your text to NOT highlight here

Рекомендации по использованию

  • Для встроенного кода всегда оборачивайте текст, который нужно отформатировать, в одинарные кавычки.
  • При публикации многострочного кода обязательно применяйте форматирование.
  • Для обычного текста и логов избегайте автоматического применения стиля кода, поскольку это обычно чистый текст, который лучше оставить без форматирования.
  • Если автоматическое определение языка не сработало корректно, явно укажите правильный язык для вашего кода.
2 лайка