web-dev-qa-db-ja.com

Githubマークダウン、テーブルセル内のコードブロックの構文ハイライト

Markdownにはパイプテーブル構文がありますが、場合によってはそれだけでは不十分です。

| table | syntax | without multiline cell content |

したがって、HTMLテーブルタグを使用できます。

<table>
<tr>
<td>
   ```csharp
   const int x = 3;
   const string y = "foo";
   readonly Object obj = getObject();
   ```
</td>
<td>
  ```nemerle
  def x : int = 3;
  def y : string = "foo";
  def obj : Object = getObject();
  ```
</td>
<td>
  Variables defined with <code>def</code> cannot be changed once defined. This is similar to <code>readonly</code> or <code>const</code> in C# or <code>final</code> in Java. Most variables in Nemerle aren't explicitly typed like this.
</td>
</tr>

しかし、少し前に構文の強調表示が壊れていて、これ wikiページ は今は醜いように見えます。これを修正する方法についてのアイデアはありますか?

26
Ziav

Teh_senausが言ったように、テーブルでは<pre>を使用できます。しかし、そうすると、構文の強調表示は機能しません...または機能しますか?

ランダムな実験を通して、GitHubでは<pre lang="csharp">で指定できることがわかりました。これは、シンタックスハイライトをC#に設定する```csharpと同じ効果があります。

これは、GitHubのヘルプセンターや linguist のドキュメントのどこにも実際には文書化されていません。しかし、それはテーブルの内部でも機能します。

したがって、サンプルテーブルの場合、新しいコードは次のようになります。

<table>
<tr>
<td>
   <pre lang="csharp">
   const int x = 3;
   const string y = "foo";
   readonly Object obj = getObject();
   </pre>
</td>
<td>
  <pre lang="nemerle">
  def x : int = 3;
  def y : string = "foo";
  def obj : Object = getObject();
  </pre>
</td>
<td>
  Variables defined with <code>def</code> cannot be changed once defined. This is similar to <code>readonly</code> or <code>const</code> in C# or <code>final</code> in Java. Most variables in Nemerle aren't explicitly typed like this.
</td>
</tr>
31
Pokechu22

<td>とコードブロックの間に空白行を追加します。

修正されたマークダウンは次のとおりです。

<table>
<tr>
<td>

  ```csharp
  const int x = 3;
  const string y = "foo";
  readonly Object obj = getObject();
  ```
</td>
<td>

  ```nemerle
  def x : int = 3;
  def y : string = "foo";
  def obj : Object = getObject();
  ```
</td>
<td>
  Variables defined with <code>def</code> cannot be changed once defined. This is similar to <code>readonly</code> or <code>const</code> in C# or <code>final</code> in Java. Most variables in Nemerle aren't explicitly typed like this.
</td>
</tr>
</table>

そして結果:

enter image description here

3
Wayou

別の方法は、複数の`<br>を使用することですが、構文の強調表示は機能しません。

|1|2|3
-|-|-
`const int x = 3;`<br>`   const string y = "foo";`<br>`readonly Object obj =getObject();`|`def x : int = 3;`<br>`def y : string = "foo";`<br>`def obj : Object = getObject(); `|Variables defined with `def` cannot be changed once defined. This is similar to `readonly` or `const` in C# or `final` in Java. Most variables in Nemerle aren't explicitly typed like this.explicitly typed like this.
2
user3800477

<pre>を使用できます。構文の強調表示は機能しませんが、少なくとも適切にフォーマットされます。

<td><pre>
   const int x = 3;
   const string y = "foo";
   readonly Object obj = getObject();
</pre></td>
2
teh_senaus

あなたもすることができます :

A | B | C
-- | -- | --
x | y | Some code : <pre lang=php>function sayHello($someArg)</pre>
1 | 2 | 3
0
Mighty Helper