In YAML habe ich eine Zeichenfolge, die sehr lang ist. Ich möchte dies innerhalb der 80-Spalten (oder so) Ansicht meines Editors zu halten, so I' d like to break the string. Wie lautet die Syntax dafür?
Mit anderen Worten, ich habe dies:
Key: 'this is my very very very very very very long string'
und ich hätte gerne dies (oder etwas in dieser Richtung):
Key: 'this is my very very very ' +
'long string'
Ich möchte Anführungszeichen wie oben verwenden, so dass ich nichts in der Zeichenkette auslassen muss.
Es gibt 5 6 NEUN (oder 63*, je nachdem wie man zählt) verschiedene Möglichkeiten, mehrzeilige Strings in YAML zu schreiben.
Normalerweise will man >
:
Schlüssel: >
Ihre lange
Zeichenkette hier.
Wenn Sie möchten, dass die Zeilenumbrüche als \n
in der Zeichenkette erhalten bleiben (z. B. eingebettete Markdowns mit Absätzen), verwenden Sie |
.
Schlüssel: |
### Überschrift
* Aufzählungszeichen
* Punkte
Verwenden Sie stattdessen >-
oder |-
, wenn Sie keinen Zeilenumbruch am Ende wünschen.
Wenn Sie Zeilen in der Mitte von Wörtern trennen oder Zeilenumbrüche wörtlich als \n
eingeben müssen, verwenden Sie stattdessen Anführungszeichen:
Schlüssel: "Antidisestab
lishmentarianism.\n\nGet on it."
YAML ist verrückt.
>
, |
)Diese erlauben Zeichen wie \
und "
ohne Escaping und fügen eine neue Zeile (\n
) am Ende der Zeichenkette ein.
>
Folded style entfernt einzelne Zeilenumbrüche innerhalb der Zeichenkette (fügt aber einen am Ende hinzu und wandelt doppelte Zeilenumbrüche in einfache um):
Key: >
this is my very very very
long string
→ "Dies ist meine sehr, sehr lange Zeichenkette".
Literal style verwandelt jeden Zeilenumbruch innerhalb der Zeichenkette in einen literalen Zeilenumbruch und fügt am Ende einen hinzu:
Key: |
this is my very very very
long string
→ "Dies ist meine sehr, sehr lange Zeichenkette".
Hier ist die offizielle Definition aus der [YAML Spec 1.2] (http://www.yaml.org/spec/1.2/spec.html#id2760844)
Skalare Inhalte können in Blockschreibweise geschrieben werden, wobei ein wörtlicher Stil (gekennzeichnet durch "|") verwendet wird, bei dem alle Zeilenumbrüche signifikant sind. Alternativ können sie mit dem gefalteten Stil (gekennzeichnet durch ">") geschrieben werden, bei dem jeder Zeilenumbruch zu einem Leerzeichen gefaltet wird, es sei denn, er beendet eine leere oder eine stärker eingezogene Zeile.
>-
, |-
, >+
, |+
)Sie können die Behandlung der letzten neuen Zeile in der Zeichenfolge und aller nachfolgenden Leerzeilen (\n\n
) steuern, indem Sie ein block chomping indicator Zeichen hinzufügen:
>
, |
: "clip": Der Zeilenvorschub wird beibehalten, die Leerzeilen am Ende werden entfernt.>-
, |-
: "strip": entfernt den Zeilenvorschub, entfernt die nachfolgenden Leerzeilen.>+
, |+
: "keep": Beibehaltung des Zeilenvorschubs, Beibehaltung der Leerzeilen am Ende.`,
",
'`)Diese haben ein begrenztes Escaping und konstruieren eine einzeilige Zeichenkette ohne neue Zeilenzeichen. Sie können in der gleichen Zeile wie der Schlüssel oder mit zusätzlichen Zeilenumbrüchen beginnen.
plain style (kein Escaping, keine #
oder :
Kombinationen, Beschränkung auf das erste Zeichen):
Key: this is my very very very
long string
double-quoted style (\
und "
müssen mit \
escaped werden, Zeilenumbrüche können mit einer literalen \n
-Sequenz eingefügt werden, Zeilen können ohne Leerzeichen mit nachgestelltem \
verkettet werden):
Key: "this is my very very \"very\" loooo\
ng string.\n\nLove, YAML."
→ "Dies ist mein sehr sehr langer String. Liebe Grüße, YAML." `
single-quoted style (literales '
muss verdoppelt werden, keine Sonderzeichen, möglicherweise nützlich für die Darstellung von Strings, die mit doppelten Anführungszeichen beginnen):
Key: 'this is my very very "very"
long string, isn''t it.'
→ "das ist meine sehr sehr lange Zeichenkette, nicht wahr."
In dieser Tabelle steht _
für "Leerzeichen". \n
bedeutet "Zeilenumbruch" (\n
in JavaScript), außer in der Zeile "Zeilenumbruch", wo es wörtlich einen Backslash und ein n bedeutet).
> | " ' >- >+ |- |+
-------------------------|------|-----|-----|-----|------|------|------|------
Trailing spaces | Kept | Kept | | | | Kept | Kept | Kept | Kept
Single newline => | _ | \n | _ | _ | _ | _ | _ | \n | \n
Double newline => | \n | \n\n | \n | \n | \n | \n | \n | \n\n | \n\n
Final newline => | \n | \n | | | | | \n | | \n
Final dbl nl's => | | | | | | | Kept | | Kept
In-line newlines | No | No | No | \n | No | No | No | No | No
Spaceless newlines| No | No | No | \ | No | No | No | No | No
Single quote | ' | ' | ' | ' | '' | ' | ' | ' | '
Double quote | " | " | " | \" | " | " | " | " | "
Backslash | \ | \ | \ | \\ | \ | \ | \ | \ | \
" #", ": " | Ok | Ok | No | Ok | Ok | Ok | Ok | Ok | Ok
Can start on same | No | No | Yes | Yes | Yes | No | No | No | No
line as key |
*Beachten Sie die Leerzeichen am Ende der Zeile vor "Leerzeichen".
- >
very "long"
'string' with
paragraph gap, \n and
spaces.
- |
very "long"
'string' with
paragraph gap, \n and
spaces.
- very "long"
'string' with
paragraph gap, \n and
spaces.
- "very \"long\"
'string' with
paragraph gap, \n and
s\
p\
a\
c\
e\
s."
- 'very "long"
''string'' with
paragraph gap, \n and
spaces.'
- >-
very "long"
'string' with
paragraph gap, \n and
spaces.
[
"very \"long\" 'string' with\nparagraph gap, \\n and spaces.\n",
"very \"long\"\n'string' with\n\nparagraph gap, \\n and \nspaces.\n",
"very \"long\" 'string' with\nparagraph gap, \\n and spaces.",
"very \"long\" 'string' with\nparagraph gap, \n and spaces.",
"very \"long\" 'string' with\nparagraph gap, \\n and spaces.",
"very \"long\" 'string' with\nparagraph gap, \\n and spaces."
]
Falls Ihnen das nicht ausreicht, können Sie einen "Blockeinrückungsindikator" hinzufügen (nach Ihrem Blockeinrückungsindikator, falls Sie einen haben):
- >8
My long string
starts over here
- |+1
This one
starts here
Wenn Sie zusätzliche Leerzeichen am Anfang von nicht-ersten Zeilen im Stil "Gefaltet" einfügen, werden diese beibehalten und mit einem zusätzlichen Zeilenumbruch versehen. Dies geschieht nicht bei fließenden Stilen:
- >
my long
string
- my long
string
→ ["mein langer String\n", "mein langer String"]
Ich kann es nicht einmal.
``2 Blockstile, jeder mit 2 möglichen Blockeinrückungsindikatoren (oder keinem), und mit 9 möglichen Einrückungsindikatoren (oder keinem), 1 einfacher Stil und 2 Anführungszeichenstile: 2 x (2 + 1) x (9 + 1) + 1 + 2 = 63*
Einige dieser Informationen sind auch [hier] zusammengefasst worden (http://yaml-multiline.info/).
Bei der Verwendung von yaml folded style wird jeder Zeilenumbruch durch ein Leerzeichen ersetzt. Der Einzug in jeder Zeile wird ignoriert. Am Ende wird ein Zeilenumbruch eingefügt.
Key: >
This is a very long sentence
that spans several lines in the YAML
but which will be rendered as a string
with only a single carriage return appended to the end.
http://symfony.com/doc/current/components/yaml/yaml_format.html
Sie können den "Blockchomping-Indikator" verwenden, um den nachgestellten Zeilenumbruch wie folgt zu eliminieren:
Key: >-
This is a very long sentence
that spans several lines in the YAML
but which will be rendered as a string
with NO carriage returns.
Es gibt auch noch andere Kontrollinstrumente (z. B. zur Steuerung der Einrückung).
Um Neuzeilen beizubehalten, verwenden Sie z. B. |
:
|
This is a very long sentence
that spans several lines in the YAML
but which will be rendered as a string
with newlines preserved.
wird übersetzt mit "Dies ist ein sehr langer Satz\n, der sich über mehrere Zeilen in YAML\n erstreckt, aber als String\n mit erhaltenen Zeilenumbrüchen wiedergegeben wird.\n"