Это руководство объясняет, как публиковать код или предварительно отформатированный текст в Discourse, используя форматы Markdown, BBCode и HTML.
Требуемый уровень пользователя: Все пользователи
Есть строка кода, которую нужно поделиться? Возможно, вам нужно поделиться журналом ошибок с вашего сайта? Чтение неформатированного кода может быть сложным, особенно если код зависит от пробелов или содержит специальные символы, которые Discourse преобразует.
Краткое содержание
В этом руководстве вы узнаете:
- Как форматировать встроенный код.
- Как форматировать целые строки кода.
- Как форматировать блоки кода.
- Как использовать BBCode и HTML для форматирования кода.
- Как отключить автоматическое стилизование кода.
Форматирование встроенного кода
Чтобы отформатировать конкретный участок текста, используйте по одному обратному апострофу с каждой стороны кода. Это можно сделать внутри обычного текста или когда код находится на отдельной строке. Встроенное форматирование не применяет автоматическое форматирование кода (см. ниже) и применяет «стиль кода» только к тексту между обратными апострофами.
Пример 1:
Ввод:
Это строка кода
Результат:
Это строка кода
Пример 2:
Ввод:
Вот текст с кусочком кода внутри!
Результат:
Вот текст с кусочком кода внутри!
Форматирование целой строки кода
Чтобы отформатировать целую строку, добавьте 4 пробела в начале строки. Весь текст до следующей разрыв строки будет считаться кодом.
Пример:
Ввод:
Весь текст после 4 пробелов будет отформатирован.
Результат:
Весь текст после 4 пробелов будет отформатирован.
Форматирование блока кода
Хотя вы можете использовать метод с 4 пробелами для создания нескольких строк кода, это может быть утомительно, особенно если вы копируете и вставляете текст и вам нужно вводить 4 пробела на нескольких строках.
Вместо этого используйте 3 обратных апострофа (```) на отдельной строке над и под вашим кодом. Убедитесь, что на строках с обратными апострофами нет пробелов, иначе это не сработает.
Пример:
Ввод:
```
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("Теперь я могу форматировать код!");
}
}
```
Результат:
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("Теперь я могу форматировать код!");
}
}
BBCode и HTML
Помимо Markdown, Discourse поддерживает подмножество BBCode и HTML.
Для HTML используйте теги <pre> и <code>:
<pre><code>
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("Теперь я могу форматировать код!");
}
}
</code></pre>
Для BBCode используйте тег [code]:
[code]
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("Теперь я могу форматировать код!");
}
[/code]
Указание языка программирования
По умолчанию Discourse определяет язык вашего кода и применяет соответствующее стилизование.
Чтобы вручную указать язык программирования для блока кода, введите название языка сразу после первой группы обратных апострофов:
``` ваш_язык
# Ваш код здесь
Пример
Чтобы указать Ruby:
Ввод:
``` ruby
3.times do |stuff|
stuff.do
end
```
Результат:
3.times do |stuff|
stuff.do
end
Язык должен быть одним из подсвечиваемых языков, настроенных для синтаксического подсветки на вашем сайте. Стандартный список можно найти в config/site_settings.yml, выполнив поиск по highlighted_languages.
Вы также можете установить язык кода по умолчанию с помощью настройки сайта default code lang.
Отключение подсветки
Если вы хотите предотвратить любую синтаксическую подсветку, вы можете использовать text в качестве языка:
Пример
Ввод:
``` text
Ваш текст, который НЕ нужно подсвечивать
Результат:
Ваш текст, который НЕ нужно подсвечивать
Лучшие практики
- Всегда заключайте встроенный код в одиночные обратные апострофы для ясности.
- Используйте форматирование блока кода для обмена большими фрагментами кода.
- Избегайте автоматического стилизации кода при обмене текстом или журналами, которые не выигрывают от стилизации, специфичной для языка.
- Указывайте язык, если автоматическое определение не распознает ваш код правильно.