Markdown-Code
Markdown bietet mehrere Möglichkeiten, Code anzuzeigen, von einfachem Inline-Code bis hin zu komplexen Codeblöcken, um die Anforderungen an die Codeanzeige in verschiedenen Szenarien zu erfüllen.
Inline-Code
Wenn es sich um eine Funktion oder ein Code-Snippet in einem Absatz handelt, können Sie es mit Backticks (`) umschließen, zum Beispiel:
`printf()` 函数
Das angezeigte Ergebnis sieht wie folgt aus:

Häufige Anwendungsbeispiele:
- Funktionsname: verwenden
console.log()Informationen ausgeben - Variablenname: einen Wert zuweisen
userNamevariable - Befehlszeile: ausführen
npm installAbhängigkeiten installieren - Tastaturtaste: drücken
Ctrl+CInhalt kopieren - Dateiname: bearbeiten
index.htmlDatei

Sonderzeichen escapen
Wenn Sie Backticks oder andere Sonderzeichen in Inline-Code anzeigen müssen, müssen Sie ein Escaping durchführen.
Methoden zum Anzeigen von Backticks:
Verwenden Sie doppelte Backticks, um einen einzelnen Backtick einzuschließen:
``Use `backticks` to surround code``
Gerenderter Effekt:

Verwenden Sie mehrere Backticks zum Umschließen:
```Code containing `` double backticks```
Gerenderter Effekt:

Umgang mit anderen Sonderzeichen:
- HTML-Tags:
<div>element - Mathematisches Symbol: berechnen
x + y = z - Sonderzeichen: verwenden
um ein Leerzeichen darzustellen
Codeblöcke
Eingerückte Codeblöcke
Codeblöcke verwenden4 Leerzeichenoder einTabulatorzeichen (Tab-Taste)。
Syntaxformat:
Normal text paragraph
This is an indented code block
Each line is preceded by four spaces
Keep the original format of the code
Continue normal text

Beispiel:

Das angezeigte Ergebnis sieht wie folgt aus:

Dreifache Backtick-Codeblöcke
Du kannst auch```verwenden, um ein Stück Code einzuschließen und eine Sprache (oder nicht) anzugeben:
``` Multi-line code content Can contain blank lines Keep original indentation ```

Dreifache Backticks (```) sind die am häufigsten verwendete Codeblock-Syntax und unterstützen Syntaxhervorhebung und mehrzeilige Codeanzeige.
```javascript
$(document).ready(function () {
alert('EXAMPLE');
});
```
Das angezeigte Ergebnis sieht wie folgt aus:

Notizen:
- Eingerückte Codeblöcke benötigen Leerzeilen davor und danach zur Trennung
- Alle Codezeilen müssen eine einheitliche Einrückung beibehalten
- Keine Syntaxhervorhebung unterstützt
- Bei Verwendung in einer Liste ist eine Einrückung von 8 Leerzeichen erforderlich
Sprachkennungen und Syntax-Highlighting
Das Hinzufügen einer Sprachkennung nach den dreifachen Backticks kann Syntax-Highlighting aktivieren.
Liste gängiger Sprachkennungen:
javascript/js- JavaScriptpython/py- Pythonhtml- HTMLcss- CSSsql- SQLjson- JSONxml- XMLyaml/yml- YAMLbash/shell- Shell scriptjava- Javacpp/c++- C++csharp/c#- C#php- PHPruby/rb- Rubygo- Go-Spracherust- Rusttypescript/ts- TypeScript
JavaScript:
```javascript
const users = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 }
];
const adults = users.filter(user => user.age >= 18);
console.log(adults);
```
Python:
```python
def calculate_area(radius):
"""计算圆的面积"""
import math
return math.pi * radius ** 2
# 使用函数
area = calculate_area(5)
print(f"圆的面积是: {area:.2f}")
```
SQL:
```sql SELECT u.name, u.email, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id WHERE u.created_at >= '2024-01-01' GROUP BY u.id, u.name, u.email ORDER BY order_count DESC LIMIT 10; ```

Erweiterte Funktionen von Codeblöcken
Anzeige der Zeilennummern
Einige Markdown-Renderer unterstützen die Anzeige von Zeilennummern, implementiert durch spezifische Syntax oder Konfiguration.
Syntaxbeispiel (teilweise unterstützt):
```javascript {.line-numbers}
function fibonacci(n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
console.log(fibonacci(10));
```
Oder verwenden Sie:
```javascript showLineNumbers
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(x => x * 2);
const sum = doubled.reduce((a, b) => a + b, 0);
console.log(`总和: ${sum}`);
```
Code-Diff-Vergleich
Wird verwendet, um Hinzufügungen, Löschungen oder Änderungen am Code anzuzeigen, oft genutzt, um Änderungen in der Versionskontrolle darzustellen.
Diff-Syntax:
```diff
function calculateTotal(items) {
- let total = 0;
+ let total = 0.0;
for (let item of items) {
- total += item.price;
+ total += parseFloat(item.price);
}
+ // 保留两位小数
+ total = Math.round(total * 100) / 100;
return total;
}
```

Diff-Anzeige im Git-Stil:
```diff
@@ -1,5 +1,8 @@
function greetUser(name) {
- console.log("Hello " + name);
+ if (!name) {
+ throw new Error("Name is required");
+ }
+ console.log(`Hello, ${name}!`);
}
```Sprachspezifischer Diff-Vergleich:
```javascript
// 之前的代码
const oldFunction = () => {
var x = 10; // ❌ 使用 var
console.log("Value: " + x); // ❌ 字符串拼接
}
// 改进后的代码
const newFunction = () => {
const x = 10; // ✅ 使用 const
console.log(`Value: ${x}`); // ✅ 模板字符串
}
```
