Уточнение 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>
Но некоторое время назад подсветка синтаксиса была нарушена, и эта страница
Ответы
Ответ 1
Вы можете использовать <pre>
в таблицах, как сказал teh_senaus. Но если вы это сделаете, подсветка синтаксиса не будет работать... или будет?
Через случайное экспериментирование я обнаружил, что GitHub позволяет указать его с помощью <pre lang="csharp">
. Это имеет тот же эффект, что ```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>
Ответ 2
Добавьте пустую строку между <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
Вы можете использовать <pre>
. Выделение синтаксиса не будет работать, но, по крайней мере, оно будет отформатировано должным образом.
<td><pre>
const int x = 3;
const string y = "foo";
readonly Object obj = getObject();
</pre></td>
Ответ 4
Другой способ - использовать несколько `
и <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.