このガイドでは、Discourse で Markdown、BBCode、および HTML 形式を使用してコードや整形済みテキストを投稿する方法について説明します。
必要なユーザーレベル: すべてのユーザー
共有したいコード行がありますか?サイトのエラーログを共有する必要がありますか?特にコードがスペースに依存している場合や、Discourse が変換する特殊文字を含んでいる場合、整形されていないコードを読むのは困難です。
概要
このガイドでは、次のことを学習します。
- インラインコードの書式設定方法。
- コードの行全体を書式設定する方法。
- コードブロックを書式設定する方法。
- コードの書式設定に BBCode と HTML を使用する方法。
- 自動コードスタイルを無効にする方法。
インラインコードの書式設定
テキストの特定の部分を書式設定するには、コードの両側に 1 つのバッククォートを使用します。これは通常のテキスト内、またはコードが独自の行にある場合に行うことができます。インライン書式設定では、自動コード書式設定(下記参照)は適用されず、バッククォート間のテキストに「コードスタイル」のみが適用されます。
例 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!
行全体のコードの書式設定
行全体を書式設定するには、行の先頭に 4 つのスペースを追加します。次の改行まですべてのテキストがコードになります。
例:
入力:
All text after 4 spaces will be formatted.
出力:
All text after 4 spaces will be formatted.
コードブロックの書式設定
4 スペースの方法を使用して複数行のコードを生成することもできますが、特にコピー&ペーストする場合で、複数行のテキストに 4 スペースを入力する必要がある場合は面倒になることがあります。
代わりに、コードの上下の独自の行に3 つのバッククォート (`````) を使用します。バッククォートのある行にはスペースがないことを確認してください。そうしないと機能しません。
例:
入力:
```
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 の場合は、<code> と <pre> タグを使用します。
<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 はコードの言語を検出してそれに応じてスタイルを設定します。
コードブロックのプログラミング言語を手動で指定するには、最初のバッククォートのセットの直後に言語名を入力します。
``` your_language
# Your code here
例
Ruby を指定するには:
入力:
``` ruby
3.times do |stuff|
stuff.do
end
```
出力:
3.times do |stuff|
stuff.do
end
言語は、サイトで構文ハイライト用に設定されている highlighted languages のいずれかである必要があります。デフォルトのリストは、highlighted_languages を検索することで config/site_settings.yml で見つけることができます。
また、default code lang サイト設定でデフォルトのコード言語を設定することもできます。
ハイライトの抑制
構文ハイライトが行われないようにしたい場合は、言語として text を使用できます。
例
入力:
``` text
Your text to NOT highlight here
出力:
Your text to NOT highlight here
ベストプラクティス
- 明確にするために、インラインコードは常に単一のバッククォートで囲んでください。
- より大きなコードスニペットを共有する場合は、ブロックコードの書式設定を使用します。
- テキストやログを共有する場合は、言語固有のスタイル設定の恩恵を受けないため、自動コードスタイル設定を避けてください。
- 自動検出がコードを正しく認識しない場合は、言語を指定します。