Gewusst wie: Einbinden von Code in der Dokumentation
Es gibt außer Screenshots noch andere Methoden zum Einbinden von Code in einem Artikel, der in der Microsoft Learn veröffentlicht wird:
Einzelne Elemente (Wörter) innerhalb einer Zeile
Es folgt ein Beispiel für das
code
-Format.Verwenden Sie Codeformat, wenn Sie auf benannte Parameter und Variablen in einem in der Nähe befindlichen Codeblock im Text verweisen. Codeformat kann auch für Eigenschaften, Methoden, Klassen und Sprachschlüsselwörter verwendet werden. Weitere Informationen finden Sie unter Codeelemente weiter unten in diesem Artikel.
Codeblöcke in der Markdowndatei des Artikels
```csharp public static void Log(string message) { _logger.LogInformation(message); } ```
Verwenden Sie Inlinecodeblöcke, wenn es nicht praktikabel ist, Code durch einen Verweis auf eine Codedatei anzuzeigen. Weitere Informationen finden Sie unter Codeblöcke weiter unten in diesem Artikel.
Codeblöcke durch einen Verweis auf eine Codedatei im lokalen Repository
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26":::
Weitere Informationen finden Sie unter Verweise auf Ausschnitte in Repositorys weiter unten in diesem Artikel.
Codeblöcke durch einen Verweis auf eine Codedatei in einem anderen Repository
:::code language="csharp" source="~/samples-durable-functions/samples/csx/shared/Location.csx" highlight="2,5":::
Weitere Informationen finden Sie unter Verweise auf Ausschnitte außerhalb des Repositorys weiter unten in diesem Artikel.
Codeblöcke, mit denen der Benutzer Code im Browser ausführen kann
:::code source="PowerShell.ps1" interactive="cloudshell-powershell":::
Weitere Informationen finden Sie unter Interaktive Codeausschnitte weiter unten in diesem Artikel.
Neben einer Erläuterung des Markdown für jede dieser Methoden zum Einbinden von Code enthält der Artikel einige allgemeine Hinweise für alle Codeblöcke.
Codeelemente
Als „Codeelement“ wird in der Programmiersprache z.B. ein Schlüsselwort, Klassenname oder Eigenschaftsname bezeichnet. Es ist nicht immer offensichtlich, was als Code gilt. Beispielsweise sollten NuGet-Paketnamen als Code behandelt werden. Im Zweifelsfall schauen Sie in den Textformatierungsrichtlinien nach.
Inlinecodeformat
Um ein Codeelement in den Artikeltext einzubinden, umgeben Sie es mit Graviszeichen (`), um das Codeformat anzugeben. Beim Inlinecodeformat sollte nicht das Format mit Dreifach-Graviszeichen verwendet werden.
Markdown | Gerendert |
---|---|
Standardmäßig interpretiert das Entity Framework eine Eigenschaft mit dem Namen „Id“ oder „ClassnameID“ als Primärschlüssel. | Standardmäßig interpretiert Entity Framework Core eine Eigenschaft mit dem Namen Id oder ClassnameID als Primärschlüssel. |
Wenn ein Artikel lokalisiert (in andere Sprachen übersetzt) wird, bleibt der als Code formatierte Text unübersetzt. Wenn Sie die Lokalisierung ohne Codeformat verhindern möchten, finden Sie Informationen dazu unter Nicht lokalisierte Zeichenfolgen.
Fettformatierung
Einige ältere Styleguides geben vor, dass Inlinecode fett zu formatieren ist. Fett ist eine Option, wenn das Codeformat so störend ist, dass die Lesbarkeit beeinträchtigt wird. Beispielsweise könnte eine Markdowntabelle, in der sich größtenteils Codeelemente befinden, durch die Codeformatierung etwas überfrachtet aussehen. Wenn Sie Fettformatierung verwenden möchten, nutzen Sie die Syntax für nicht lokalisierte Zeichenfolgen, um sicherzustellen, dass der Code nicht lokalisiert wird.
Verknüpfungen
In einigen Kontexten ist ein Link zu einer Referenzdokumentation möglicherweise hilfreicher als Codeformat. Wenn Sie einen Link verwenden, wenden Sie kein Codeformat auf den Linktext an. Einen Link als Code zu formatieren, kann dazu führen, dass man den Text nicht als Link erkennt.
Wenn Sie einen Link verwenden und später im gleichen Kontext auf dasselbe Element verweisen, verwenden Sie für die nachfolgenden Instanzen Codeformat und keine Links. Beispiel:
The first reference to <xref:System.CommandLine> in this text is a link.
Subsequent references to `System.CommandLine` can be in code style.
Gerendert:
Der erste Verweis auf System.CommandLine in diesen Text ist ein Link.
Nachfolgende Verweise auf System.CommandLine
können im Codeformat enthalten sein.
Platzhalter
Wenn Sie möchten, dass der Benutzer einen Abschnitt des angezeigten Codes durch eigene Werte ersetzt, verwenden Sie Platzhaltertext, der durch spitze Klammern gekennzeichnet ist. Beispiel:
az group delete -n <ResourceGroupName>
Die Klammern müssen entfernt werden, wenn Sie echte Werte einsetzen. Der Microsoft-Leitfaden zum Schreibstil verlangt eine kursive Formatierung, die Sie erzielen, indem Sie Inlinecode in spitze Klammern einschließen:
<ResourceGroupName>
ist die Ressourcengruppe, in der...
Die Verwendung von geschweiften Klammern { } als syntaktische Platzhalter wird nicht empfohlen. Sie können mit ersetzbarem Text, Formatzeichenfolgen, Zeichenfolgeninterpolation, Textvorlagen und ähnlichen Programmierkonstrukten verwechselt werden, die die gleiche Notation verwenden.
Platzhalternamen können durch Bindestriche („Kebabschreibweise“), durch Unterstriche oder gar nicht (Pascal-Schreibweise) getrennt werden. Bei der Kebabschreibweise treten möglicherweise Syntaxfehler auf, und sie kann zu Konflikten mit Unterstreichungen führen. Eine Schreibweise nur in Großbuchstaben kann in vielen Sprachen zu Konflikten mit benannten Konstanten führen, sie können aber auch dazu verwendet werden, den Platzhalternamen hervorzuheben.
<Resource-Group-Name>
oder<ResourceGroupName>
Codeblöcke
Die Syntax für das Einbinden von Code in einem Dokument hängt davon ab, wo sich der Code befindet:
- In der Markdowndatei des Artikels
- In einer Codedatei im selben Repository
- In einer Codedatei in einem anderen Repository
Die folgenden Richtlinien gelten für alle drei Arten von Codeblöcken:
- Screenshots
- Automatisieren der Codeüberprüfung
- Hervorheben wichtiger Codezeilen
- Vermeiden horizontaler Scrollleisten
- Deutliches Kennzeichnen von fehlerhaftem Code
Screenshots
Alle im vorherigen Abschnitt aufgeführten Methoden führen zu verwendbaren Codeblöcken:
- Sie können daraus kopieren und einfügen.
- Sie werden von Suchmaschinen indiziert.
- Sprachausgaben können darauf zugreifen.
Dies sind nur einige der Gründe, warum IDE-Screenshots nicht als Methode zum Einbinden von Code in einen Artikel empfohlen werden. Verwenden Sie IDE-Screenshots nur dann für Code, wenn Sie etwas über die IDE selbst, z. B. IntelliSense, zeigen. Verwenden Sie Screenshots nicht, um lediglich Farbgebung und Hervorhebung anzuzeigen.
Codeüberprüfung
In einigen Repositorys wird der gesamte Beispielcode durch implementierte Prozesse automatisch kompiliert, um ihn auf Fehler zu prüfen. Dies ist beim .NET-Repository der Fall. Weitere Informationen finden Sie im .NET-Repository unter Contributing (Beitrag).
Wenn Sie Codeblöcke aus einem anderen Repository einbinden, erarbeiten Sie zusammen mit den Besitzern eine Wartungsstrategie für den Code, damit Ihr eingebundener Code nicht unterbrochen wird oder veraltet, sobald neue Versionen der vom Code verwendeten Bibliotheken geliefert werden.
Markieren
Ausschnitte enthalten in der Regel mehr Code als nötig, um den Kontext darzustellen. Die Lesbarkeit wird erleichtert, wenn Sie die wichtigen Zeilen im Codeausschnitt hervorheben, wie z.B. in diesem Beispiel:
Sie können den Code nicht hervorheben, wenn Sie ihn in der Markdowndatei des Artikels einbinden. Dies funktioniert nur für Codeausschnitte, die durch Verweis auf eine Codedatei eingebunden werden.
Horizontale Scrollleisten
Fügen Sie Umbrüche in langen Zeilen ein, um horizontale Scrollleisten zu vermeiden. Die Verwendung von Scrollleisten bei Codeblöcken erschwert das Lesen des Codes. Sie sind besonders problematisch bei längeren Codeblöcken, bei denen es nicht möglich ist, die Scrollleiste und die zu lesende Zeile gleichzeitig anzuzeigen.
Eine gute Vorgehensweise zur Minimierung horizontaler Scrollleisten in Codeblöcken ist es, in Codezeilen mit mehr als 85 Zeichen einen Umbruch einzufügen. Denken Sie jedoch daran, dass das Vorhandensein oder Fehlen einer Scrollleiste nicht das einzige Kriterium für Lesbarkeit ist. Wenn der Umbruch von Zeilen vor dem 85. Zeichen zu schlechterer Lesbarkeit oder Schwierigkeiten beim Kopieren und Einfügen führt, können Sie auch mehr als 85 Zeichen in der Zeile belassen.
Deutliches Kennzeichnen von fehlerhaftem Code
In einigen Szenarien ist es hilfreich, auf Codierungsmuster hinzuweisen, die vermieden werden sollten, z. B.:
- Code, der bei einem Kompilierungsversuch einen Compilerfehler verursacht.
- Code, der ordnungsgemäß kompiliert wird, aber nicht empfohlen wird.
Für diese Szenarien gilt:
Erläutern Sie den Fehler sowohl in Codekommentaren als auch im Artikeltext.
Leser überspringen häufig den Artikeltext und sehen sich nur Code an, daher genügt es nicht, den Fehler nur im Artikeltext zu erklären. Es reicht auch nicht aus, den Fehler nur in Codekommentaren zu erklären, da Codekommentare nicht lokalisiert werden.
Kommentieren Sie den Code aus, wenn dieser zu einem Compilerfehler führen würde.
Auskommentierter Code führt nicht zu einer Unterbrechung des Continuous Integration-Systems (CI), wenn das Repository des Artikels ein solches jetzt oder in Zukunft implementiert.
Ein Beispiel für die Darstellung von Code, der nicht empfohlen wird, finden Sie unter Beispiel für die Verwendung von Rune: Änderung der Groß-/Kleinschreibung. In diesem Beispiel ist die Empfehlung, solchen Code zu vermeiden, sogar in den Code selbst integriert, da der C#-Methodenname ConvertToUpperBadExample
lautet.
Inlinecodeblöcke
Verwenden Sie Inlinecodeblöcke nur, wenn es nicht praktikabel ist, Code durch einen Verweis auf eine Codedatei anzuzeigen. Inlinecode ist im Allgemeinen schwieriger zu testen und auf dem neuesten Stand zu halten als eine Codedatei, die Teil eines vollständigen Projekts ist. Außerdem wird beim Inlinecode möglicherweise Kontext ausgelassen, der dem Entwickler dabei helfen könnte, den Code zu verstehen und zu verwenden. Diese Überlegungen gelten vor allem für Programmiersprachen. Inlinecodeblöcke können auch für Ausgaben und Eingaben (z. B. JSON), Abfragesprachen (z. B. SQL) und Skriptsprachen (z. B. PowerShell) verwendet werden.
Es gibt zwei Möglichkeiten, einen Textabschnitt in einer Artikeldatei als Codeblock anzuzeigen: durch Fencing (Umklammern) dieses Abschnitts mit Dreifach-Graviszeichen (```) oder durch Einrücken. Fencing wird bevorzugt, weil Sie dadurch die Sprache festlegen können. Vermeiden Sie das Einrücken, da hierbei zu leicht Fehler gemacht werden und es für einen anderen Autor schwierig sein kann, Ihre Absicht zu verstehen, wenn der Artikel bearbeitet werden muss.
Die Sprachindikatoren werden unmittelbar nach den sich öffnenden Dreifach-Graviszeichen platziert, wie im folgenden Beispiel zu sehen:
Markdown:
```json
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
}
}
```
Gerendert:
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
}
}
Tipp
GitHub Flavored Markdown unterstützt die Trennung von Codeblöcken durch Tilden (~) und Graviszeichen (`). Das Symbol zum Öffnen und Schließen des Codeblocks muss innerhalb desselben Codeblocks konsistent sein.
Informationen zu den Werten, die Sie als Sprachindikatoren verwenden können, finden Sie unter Sprachnamen und Aliase.
Wenn Sie nach den Dreifach-Graviszeichen (```) ein nicht unterstütztes Sprach- oder Umgebungswort verwenden, wird dieses Wort in der Titelleiste des Codeabschnitts auf der gerenderten Seite angezeigt. Verwenden Sie nach Möglichkeit einen Sprach- oder Umgebungsindikator in den Inlinecodeblöcken.
Hinweis
Wenn Sie Code aus einem Word-Dokument kopieren und einfügen, vergewissern Sie sich, dass er keine „geschweiften Anführungszeichen“ enthält, die in Code nicht gültig sind. Wenn das der Fall ist, ändern Sie diese wieder in normale Anführungszeichen ('
und "
). Alternativ können Sie auch die Funktion für den Austausch typografischer Anführungszeichen im Learn Authoring Pack nutzen.
Verweise auf Ausschnitte in Repositorys
Die bevorzugte Methode, Codeausschnitte für Programmiersprachen in Dokumente einzubinden, ist der Verweis auf eine Codedatei. Diese Methode bietet Ihnen die Möglichkeit, Codezeilen hervorzuheben, und stellt den Entwicklern den größeren Kontext des Codeausschnitts auf GitHub zur Verwendung bereit. Sie können Code mithilfe des Formats mit drei Doppelpunkten (:::) entweder manuell oder in Visual Studio Code mit Unterstützung durch das Learn Authoring Pack einbinden.
- Drücken Sie in Visual Studio Code ALT+M oder WAHLTASTE+M, und klicken Sie auf „Codeausschnitt“.
- Nachdem Sie auf „Codeausschnitt“ geklickt haben, werden Sie dazu aufgefordert, zwischen „Full Search“ (Vollständige Suche), „Scoped Search“ (Bereichsbezogene Suche) oder „Cross-Repository Reference“ (Repositoryübergreifender Verweis) auszuwählen. Wählen Sie „Full Search“ (Vollständige Suche) aus, wenn Sie lokal suchen möchten.
- Geben Sie einen Suchbegriff ein, um nach der Datei zu suchen. Wählen Sie die Datei aus, wenn sie gefunden wurde.
- Wählen Sie dann eine Option aus, um festzulegen, welche Codezeile(n) im Codeausschnitt enthalten sein sollen. Die Optionen sind: ID, Bereich und Keine.
- Geben Sie je nach Auswahl in Schritt 4 einen Wert an.
Die gesamte Codedatei wird angezeigt:
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs":::
Ein Teil einer Codedatei wird durch Angabe von Zeilennummern angezeigt:
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26":::
Ein Teil einer Codedatei wird durch Angabe eines Ausschnittnamens angezeigt:
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" id="snippet_Create":::
In den folgenden Abschnitten werden diese Beispiele erläutert:
- Verwenden eines relativen Pfads zur Codedatei
- Ausschließliches Einbinden ausgewählter Zeilennummern
- Verweisen auf benannten Codeausschnitt
- Hervorheben ausgewählter Zeilen
Weitere Informationen finden Sie unter Verweissyntax für Codeausschnitte weiter unten in diesem Artikel.
Pfad zur Codedatei
Beispiel:
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26":::
Das Beispiel stammt aus der Artikeldatei aspnetcore/data/ef-mvc/crud.md des ASP.NET-Dokumentenrepositorys. Auf die Codedatei wird über einen relativen Pfad zu aspnetcore/data/ef-mvc/intro/samples/cu/Controllers/StudentsController.cs im selben Repository verwiesen.
Ausgewählte Zeilennummern
Beispiel:
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26":::
In diesem Beispiel werden nur die Zeilen 2–24 und 26 der Codedatei StudentController.cs angezeigt.
Bevorzugen Sie benannte Codeausschnitte gegenüber hartcodierten Zeilennummern, wie im nächsten Abschnitt erläutert.
Benannter Codeausschnitt
Beispiel:
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" id="snippet_Create":::
Verwenden Sie für den Namen nur Buchstaben und Unterstriche.
Das Beispiel zeigt den Abschnitt snippet_Create
der Codedatei. Die Codedatei für dieses Beispiel enthält Codeausschnitttags in Kommentaren im C#-Code:
// code excluded from the snippet
// <snippet_Create>
// code included in the snippet
// </snippet_Create>
// code excluded from the snippet
Benannte Codeausschnitte können geschachtelt werden, wie im folgenden Beispiel gezeigt:
// <Method>
public static void SomeMethod()
{
// <Line>
// Single line of code.
// </Line>
}
// </Method>
Wenn der Method
-Codeausschnitt gerendert wird, sind die Line
-Tags nicht in der gerenderten Ausgabe enthalten.
Wenn möglich, sollten Sie immer auf einen benannten Abschnitt verweisen anstatt Zeilennummern anzugeben. Zeilennummernverweise sind fehleranfällig, weil sich Codedateien zwangsläufig in einer Weise ändern, die die Zeilennummern verändern. Über solche Änderungen werden Sie nicht unbedingt informiert. In Ihrem Artikel werden dann die falschen Zeilen angezeigt, und Sie haben keine Ahnung, dass sich überhaupt etwas geändert hat.
Hervorheben ausgewählter Zeilen
Beispiel:
:::code language="csharp" source="intro/samples/cu/Controllers/StudentsController.cs" range="2-24,26" highlight="2,5":::
Im Beispiel werden die Zeilen 2 und 5 hervorgehoben, gezählt vom Anfang des angezeigten Ausschnitts. Bei hervorzuhebenden Zeilennummern wird mit dem Zählen nicht am Anfang der Codedatei begonnen. Die Zeilen 3 und 6 der Codedatei werden also hervorgehoben.
Verweise auf Ausschnitte außerhalb des Repositorys
Wenn sich die Codedatei, auf die verwiesen werden soll, in einem anderen Repository befindet, richten Sie das Coderepository als abhängiges Repository ein. Geben Sie in diesem Fall einen Namen dafür an. Dieser Name verhält sich dann wie ein Ordnername für Codeverweise.
Zum Beispiel lautet das Dokumentenrepository Azure/azure-docs und das Coderepository Azure/azure-functions-durable-extension.
Fügen Sie im Stammordner von azure-docs den folgenden Abschnitt in .openpublishing.publish.config.json hinzu:
{
"path_to_root": "samples-durable-functions",
"url": "https://github.com/Azure/azure-functions-durable-extension",
"branch": "main",
"branch_mapping": {}
},
Wenn Sie nun auf samples-durable-functions verweisen, als wäre es ein Ordner in azure-docs, verweisen Sie tatsächlich jedoch auf den Stammordner im Repository azure-functions-durable-extension.
Sie können Code mithilfe des Formats mit drei Doppelpunkten (:::) entweder manuell oder in Visual Studio Code mit Unterstützung durch das Learn Authoring Pack einbinden.
- Drücken Sie in Visual Studio Code ALT+M oder WAHLTASTE+M, und klicken Sie auf „Codeausschnitt“.
- Nachdem Sie auf „Codeausschnitt“ geklickt haben, werden Sie dazu aufgefordert, zwischen „Full Search“ (Vollständige Suche), „Scoped Search“ (Bereichsbezogene Suche) oder „Cross-Repository Reference“ (Repositoryübergreifender Verweis) auszuwählen. Wählen Sie „Cross-Repository Reference“ (Repositoryübergreifender Verweis) aus, um repositoryübergreifend zu suchen.
- Daraufhin wird eine Auswahl der Repositorys angezeigt, die sich in .openpublishing.publish.config.json befinden. Wählen Sie ein Repository aus.
- Geben Sie einen Suchbegriff ein, um nach der Datei zu suchen. Wählen Sie die Datei aus, wenn sie gefunden wurde.
- Wählen Sie dann eine Option aus, um festzulegen, welche Codezeile(n) im Codeausschnitt enthalten sein sollen. Die Optionen sind: ID, Bereich und Keine.
- Geben Sie je nach Auswahl in Schritt 5 einen Wert an.
Ihr Codeausschnittverweis sieht folgendermaßen aus:
:::code language="csharp" source="~/samples-durable-functions/samples/csx/shared/Location.csx" highlight="2,5":::
Im Repository azure-functions-durable-extension befindet sich diese Codedatei im Ordner samples/csx/shared. Wie oben erwähnt, sind die Zeilennummern für die Hervorhebung relativ zum Anfang des Codeausschnitts und nicht zum Anfang der Datei.
Hinweis
Der Name, den Sie dem abhängigen Repository zuweisen, ist relativ zum Stamm des Hauptrepositorys, aber die Tilde (~
) verweist auf den Stamm des Docsets. Der Docset-Stamm wird von build_source_folder
in .openpublishing.publish.config.json
festgelegt. Der Pfad zum Codeausschnitt im vorherigen Beispiel wird im Repository „azure-docs“ verwendet, da build_source_folder
auf den Repositorystamm (.
) verweist. Wenn für build_source_folder
der Wert articles
angegeben wäre, würde der Pfad mit ~/../samples-durable-functions
anstelle von ~/samples-durable-functions
beginnen.
Codeausschnitte in einem Jupyter-Notebook
Sie können auf eine Zelle in einem Jupyter-Notebook als Codeausschnitt verweisen. So verweisen Sie auf die Zelle:
- Fügen Sie dem Notebook Zellenmetadaten hinzu, auf die Sie verweisen möchten.
- Richten Sie den Zugriff auf das Repository ein.
- Verwenden Sie die Syntax für den Jupyter-Notebook-Ausschnitt in Ihrer Markdowndatei.
Hinzufügen von Metadaten zur Notebook-Instanz
Benennen Sie die Zelle, indem Sie Zellenmetadaten im Jupyter-Notebook hinzufügen.
- In Jupyter können Sie Zellmetadaten bearbeiten, indem Sie zuerst die Zellensymbolleiste aktivieren: Ansicht > Zellensymbolleiste > Metadaten bearbeiten.
- Nachdem die Zellensymbolleiste aktiviert ist, wählen Sie Metadaten bearbeiten in der Zelle aus, die Sie benennen möchten.
- Alternativ können Sie die Metadaten direkt in der JSON-Struktur des Notebooks bearbeiten.
Fügen Sie in den Zellenmetadaten ein „name“-Attribut hinzu:
"metadata": {"name": "<name>"},
Beispiel:
"metadata": {"name": "workspace"},
Tipp
Sie können weitere Metadaten hinzufügen, die Ihnen helfen können, nachzuverfolgen, wo die Zelle verwendet wird. Beispiel:
"metadata": { "name": "workspace", "msdoc": "how-to-track-experiments.md" },
Einrichten des Repositoryzugriffs
Wenn sich die die Notebook-Datei, auf die verwiesen werden soll, in einem anderen Repository befindet, richten Sie das Coderepository als abhängiges Repository ein.
Referenz zur Syntax für den Jupyter-Notebook-Ausschnitt
Wenn Ihr Notebook die erforderlichen Metadaten enthält, verweisen Sie in Ihrer Markdowndatei darauf. Verwenden Sie den <cell-name-value>
, den Sie dem Notebook hinzugefügt haben, sowie den <path>
(Pfad), den Sie als Ihr abhängiges Repository eingerichtet haben.
[!notebook-<language>[] (<path>/<notebook-name.ipynb>?name=<cell-name-value>)]
Beispiel:
[!notebook-python[] (~/MachineLearningNotebooks/train-on-local.ipynb?name=workspace)]
Wichtig
Diese Syntax ist ein Blockmarkdown-Erweiterung. Sie muss in einer eigenen Zeile verwendet werden.
Verwenden Sie für den <language>
-Bezeichner eine der unterstützten Programmiersprachen.
Interaktive Codeausschnitte
Interaktive Inlinecodeblöcke
Für die folgenden Sprachen können Codeausschnitte im Browserfenster ausführbar gemacht werden:
- Azure Cloud Shell
- Azure PowerShell Cloud Shell
- C# REPL
Wenn der interaktive Modus aktiviert ist, verfügen die gerenderten Codeboxen über die Schaltflächen Try It (Testen) und Run (Ausführen). Beispiel:
```azurepowershell-interactive
New-AzResourceGroup -Name myResourceGroup -Location westeurope
```
wird wie folgt gerendert:
New-AzResourceGroup -Name myResourceGroup -Location westeurope
Und
```csharp-interactive
var aFriend = "Maria";
Console.WriteLine($"Hello {aFriend}");
```
rendert als:
var aFriend = "Maria";
Console.WriteLine($"Hello {aFriend}");
Um dieses Feature für einen bestimmten Codeblock zu aktivieren, verwenden Sie eine spezielle Sprachen-ID. Verfügbare Optionen:
azurepowershell-interactive
: Aktiviert wie im vorherigen Beispiel PowerShell für Azure Cloud Shellazurecli-interactive
: Aktiviert Azure Cloud Shellcsharp-interactive
: Aktiviert C#-REPL
Für Azure Cloud Shell und PowerShell Cloud Shell können Benutzer Befehle nur für ihr eigenes Azure-Konto ausführen.
Durch einen Verweis eingebundene Codeausschnitte
Sie können den interaktiven Modus für Codeausschnitte aktivieren, die per Verweis eingebunden werden.
Verwenden Sie das Attribut interactive
, um dieses Feature für einen bestimmten Codeblock zu aktivieren. Folgende Attributwerte sind verfügbar:
cloudshell-powershell
: Aktiviert wie im vorherigen Beispiel PowerShell für Azure Cloud Shellcloudshell-bash
: Aktiviert Azure Cloud Shelltry-dotnet
: Aktiviert Try .NETtry-dotnet-class
: Aktiviert Try .NET mit Klassengerüstentry-dotnet-method
: Aktiviert Try .NET mit Methodengerüsten
Im Folgenden finden Sie einige Beispiele:
:::code source="PowerShell.ps1" interactive="cloudshell-powershell":::
:::code source="Bash.sh" interactive="cloudshell-bash":::
Für Azure Cloud Shell und PowerShell Cloud Shell können Benutzer Befehle nur für ihr eigenes Azure-Konto ausführen.
Für die .NET Interactive-Erfahrung hängt der Inhalt Ihres Codeblocks davon ab, welche der drei Gerüstumgebungen Sie auswählen:
- Kein Gerüstbau (
try-dotnet
): Der Codeblock sollte einen vollständigen Programmtext darstellen. Die Datei Program.cs, die vondotnet new console
generiert wird, wäre z. B. gültig. Diese sind am nützlichsten, um ein ganzes kleines Programm anzuzeigen, einschließlich der erforderlichenusing
-Direktiven. Anweisungen auf oberster Ebene werden derzeit nicht unterstützt. - Methodengerüstbau (
try-dotnet-method
): Der Codeblock sollte den Inhalt einerMain
-Methode in einer Konsolenanwendung darstellen. Sie können die von derdotnet new console
-Vorlage hinzugefügtenusing
-Direktiven annehmen. Diese Einstellung ist am nützlichsten für kurze Codeausschnitte, die ein Feature veranschaulichen. - Klassengerüstbau (
try-dotnet-class
): Der Codeblock sollte eine Klasse mit einerMain
-Methode als Programmeinstiegspunkt darstellen. Diese können verwendet werden, um zu zeigen, wie die Member einer Klasse interagieren.
Verweissyntax für Codeausschnitte
Syntax:
:::code language="<language>" source="<path>" <attribute>="<attribute-value>":::
Wichtig
Diese Syntax ist ein Blockmarkdown-Erweiterung. Sie muss in einer eigenen Zeile verwendet werden.
<language>
(optional)- Sprache des Codeausschnitts. Weitere Informationen finden Sie im Abschnitt Unterstützte Sprachen weiter unten in diesem Artikel.
<path>
(erforderlich)- Der relative Pfad im Dateisystem, der die Codeausschnittdatei angibt, auf die verwiesen werden soll.
<attribute>
und<attribute-value>
(optional)- Zusammen verwendet, um anzugeben, wie der Code aus der Datei abgerufen und wie er angezeigt werden soll:
range
:1,3-5
Ein Bereich von Zeilen. Dieses Beispiel umfasst die Zeilen 1, 3, 4 und 5.id
:Create
Die ID des Codeausschnitts, der aus der Codedatei eingefügt werden soll. Dieser Wert kann nicht gleichzeitig mit einem Bereich vorhanden sein.highlight
:2-4,6
Der Bereich und/oder die Zeilennummern, die im generierten Codeausschnitt hervorgehoben werden sollen. Die Nummerierung ist relativ zu den angezeigten Zeilen (gemäß Bereich oder ID) und nicht zur Datei.interactive
:cloudshell-powershell
,cloudshell-bash
,try-dotnet
,try-dotnet-class
,try-dotnet-method
: Der Zeichenfolgenwert legt fest, welche Arten von Interaktivität aktiviert sind.- Weitere Informationen zur Darstellung von Tagnamen in Codeausschnitten von Quelldateien nach Programmiersprache finden Sie in den DocFX-Richtlinien.
- Zusammen verwendet, um anzugeben, wie der Code aus der Datei abgerufen und wie er angezeigt werden soll:
Unterstützte Sprachen
Das Learn Authoring Pack enthält eine Funktion, die Anweisungsvervollständigung und eine Überprüfung der verfügbaren Sprachen-IDs für Codefence-Blöcke bietet.
Umgrenzte Codeblöcke
Name | Gültige Aliase |
---|---|
.NET Core-CLI | dotnetcli |
1C | 1c |
ABNF | abnf |
Zugriffsprotokolle | accesslog |
Ada | ada |
ARM assembler | armasm und arm |
ARM assembler | avrasm |
ActionScript | actionscript und as |
Alan | alan und i |
AngelScript | angelscript und asc |
ANTLR | antlr |
Apache | apache und apacheconf |
AppleScript | applescript und osascript |
Arcade | arcade |
AsciiDoc | asciidoc und adoc |
AspectJ | aspectj |
ASPX | aspx |
ASP.NET (C#) | aspx-csharp |
ASP.NET (VB) | aspx-vb |
AutoHotkey | autohotkey |
AutoIt | autoit |
Awk | awk , mawk , nawk und gawk |
Axapta | axapta |
AzCopy | azcopy |
Azure CLI | azurecli |
Azure CLI (Interactive) | azurecli-interactive |
Azure PowerShell | azurepowershell |
Azure Powershell (Interactive) | azurepowershell-interactive |
Bash | bash , sh und zsh |
Grundlegend | basic |
BNF | bnf |
C | c |
C# | csharp und cs |
C# (Interactive) | csharp-interactive |
C++ | cpp , c , cc , h , c++ , h++ und hpp |
C++/CX | cppcx |
C++/WinRT | cppwinrt |
C/AL | cal |
Cache Object Script | cos und cls |
CMake | cmake und cmake.in |
Coq | coq |
CSP | csp |
CSS | css |
Cap'n Proto | capnproto und capnp |
Clojure | clojure und clj |
CoffeeScript | coffeescript , coffee , cson und iced |
Crmsh | crmsh , crm und pcmk |
Crystal | crystal und cr |
Cypher (Neo4j) | cypher |
D | d |
DAX Power BI | dax |
DNS Zone file | dns , zone und bind |
DOS | dos , bat und cmd |
Dart | dart |
Delphi | delphi , dpr , dfm , pas , pascal , freepascal , lazarus , lpr und lfm |
Diff | diff und patch |
Django | django und jinja |
Docker-Datei | dockerfile und docker |
dsconfig | dsconfig |
DTS (Device Tree) | dts |
Dust | dust und dst |
Dylan | dylan |
EBNF | ebnf |
Elixir | elixir |
Elm | elm |
Erlang | erlang und erl |
Excel | excel , xls und xlsx |
Extempore | extempore , xtlang und xtm |
F# | fsharp und fs |
FIX | fix |
Fortran | fortran , f90 und f95 |
G-Code | gcode und nc |
Gams | gams und gms |
GAUSS | gauss und gss |
GDScript | godot und gdscript |
Gherkin | gherkin |
GN for Ninja | gn und gni |
Go | go und golang |
Golo | golo und gololang |
Gradle | gradle |
GraphQL | graphql |
Groovy | groovy |
HTML | html und xhtml |
HTTP | http und https |
Haml | haml |
Lenkstangen | handlebars , hbs , html.hbs und html.handlebars |
Haskell | haskell und hs |
Haxe | haxe und hx |
Hy | hy und hylang |
Ini | ini |
Inform7 | inform7 und i7 |
IRPF90 | irpf90 |
JSON | json |
Java | java und jsp |
JavaScript | javascript , js und jsx |
Kotlin | kotlin und kt |
Kusto | kusto |
Blatt | leaf |
Lasso | lasso , ls und lassoscript |
Kleiner | less |
LDIF | ldif |
Lisp | lisp |
LiveCode Server | livecodeserver |
LiveScript | livescript und ls |
Lua | lua |
Makefile | makefile , mk und mak |
Markdown | markdown , md , mkdown und mkd |
Mathematica | mathematica , mma und wl |
Matlab | matlab |
Maxima | maxima |
Maya Embedded Language | mel |
Mercury | mercury |
mIRC Scripting Language | mirc und mrc |
Mizar | mizar |
Managed Object Format | mof |
Mojolicious | mojolicious |
Monkey | monkey |
Moonscript | moonscript und moon |
MS Graph (Interactive) | msgraph-interactive |
N1QL | n1ql |
NSIS | nsis |
Nginx | nginx und nginxconf |
Nimrod | nimrod und nim |
Nix | nix |
OCaml | ocaml und ml |
Objective-C | objectivec , mm , objc und obj-c |
OpenGL Shading Language | glsl |
OpenSCAD | openscad und scad |
Oracle Rules Language | ruleslanguage |
Oxygene | oxygene |
PF | pf und pf.conf |
PHP | php , php3 , php4 , php5 und php6 |
Parser3 | parser3 |
Perl | perl , pl und pm |
Plaintext no highlight | plaintext |
Pony | pony |
PostgreSQL & PL/pgSQL | pgsql , postgres und postgresql |
PowerShell | powershell und ps |
PowerShell (Interactive) | powershell-interactive |
In Verarbeitung | processing |
Prolog | prolog |
Eigenschaften | properties |
Protokollpuffer | protobuf |
Puppet | puppet und pp |
Python | python , py und gyp |
Python profiler results | profile |
Q# | qsharp |
Q | k und kdb |
QML | qml |
R | r |
Razor CSHTML | cshtml , razor und razor-cshtml |
ReasonML | reasonml und re |
RenderMan RIB | rib |
RenderMan RSL | rsl |
Roboconf | graph und instances |
Robot Framework | robot und rf |
RPM spec files | rpm-specfile , rpm , spec , rpm-spec und specfile |
Ruby | ruby , rb , gemspec , podspec , thor und irb |
Rust | rust und rs |
SAS | SAS und sas |
SCSS | scss |
SQL | sql |
STEP Part 21 | p21 , step und stp |
Scala | scala |
Schema | scheme |
Scilab | scilab und sci |
Shape Expressions | shexc |
Shell | shell und console |
Smali | smali |
Smalltalk | smalltalk und st |
Solidity | solidity und sol |
Stan | stan |
Stata | stata |
Strukturierter Text | iecst , scl , stl und structured-text |
Eingabestift | stylus und styl |
SubUnit | subunit |
Supercollider | supercollider und sc |
Swift | swift |
Tcl | tcl und tk |
Terraform (HCL) | terraform , tf und hcl |
Test Anything Protocol | tap |
TeX | tex |
Thrift | thrift |
TOML | toml |
TP | tp |
Twig | twig und craftcms |
TypeScript | typescript und ts |
VB.NET | vbnet und vb |
VBScript | vbscript und vbs |
VHDL | vhdl |
Vala | vala |
Verilog | verilog und v |
Vim Script | vim |
Visual Basic | vb |
Visual Basic for Applications | vba |
X++ | xpp |
x86 Assembly | x86asm |
XL | xl und tao |
XQuery | xquery , xpath und xq |
XAML | xaml |
XML | xml , xhtml , rss , atom , xjb , xsd , xsl und plist |
YAML | yml und yaml |
Zephir | zephir und zep |
Tipp
Wenn mehrere Aliase verfügbar sind, verwendet die Funktion zur Vervollständigung von Entwicklungssprachen im Learn Authoring Pack den ersten gültigen Alias.
Nächste Schritte
Informationen zur Textformatierung für andere Inhaltstypen als Code finden Sie in den Textformatierungsrichtlinien.