YML - laborci/andesite GitHub Wiki
Az yml+
az yaml
formátum kiterjesztése az alábbi lehetőségekkel.
Nem kell minden al kulcsot külön sorban definiálnod, ha nincs más defniálandó érték a fában, hanem kulcsokat megadhatod .
szeparáltan is.
Azaz az alábbi két definíció teljesen egyenértékű:
#
app:
article:
format: markdown
app.article.format: markdown
Amennyiben a kulcs &
jelre végződik, akkor a fa adott pontjára a kulcs értékének megfelelő útvonalon levő értéket, vagy al-fát fogja beilleszteni.
sys:
domain: mysite.com
vhost:
domain &: sys.domain
vhost &: sys.vhost
[
"sys"=>[
"domain" => "mysite.com",
"vhost" => [
"domain" = "mysite.com"
]
],
"vhost"=>[
"domain" = "mysite.com"
]
];
Amennyiben egy kucs /
jelet tartalmaz, akkor az értékét nem a fa adott pontjára, hanem a kulcs által definiált (a /
jelet követő) abszolut címre fogja beilleszteni. A /
jel előtti részét a kulcsnak a rendszer figyelmen kívül hagyja.
path:
root\sys-root: /data/htdocs/
[
"path"=>[],
"sys-root"=>"/data/htdocs",
];
Amennyiben ~
jelre végződik a kulcs, akkor az értékében levő kifejezést kiértékeli.
path:
root: /data/htdocs/
public ~: path.root + "public/"
[
"path"=>[
"root"=>"/data/htdocs",
"public"=>"/data/htdocs/public"
]
];
Amennyiben ~
jel található a kulcsban, akkor a ~
utáni részét a kulcsnak referenciaként használja és az azon fellelhető stringhez fűzi hozzá az értéket.
path:
root: /data/htdocs/
public ~path.root: public/
[
"path"=>[
"root"=>"/data/htdocs",
"public"=>"/data/htdocs/public"
]
];
Nem kell egy nagy yml állományt szerkesztened, írhatsz kisebb konfigurációs állományokat, amiket összefűzhetsz egy nagy állománnyá. Ezt a @
karaktert használva érheted el amit a kulcs végére kell írnod. Az útvonal mindig abszolut az env.yml-hez képest. Az importált fájlhoz ne írj kiterjesztést!
A következő példákban az alábbi fájlt importáljuk két módon:
missions/cli.yml
pattern: ":"
A megadott kulcs alá betölti a hivatkozott fájl tartalmát. Amennyiben az importálandó fájl neve ~
vonallal kezdődik, az azt jelöli, hogy a betöltés opcionális.
missions.cli @: missions/cli
[
"missions"=>[
"cli"=>[
"pattern"=>":"
]
]
];
A megadott kucs alá betölti a hivatkozott fájlok tartalmát úgy, hogy alkulcsként a fájlok nevét fogja használni!
missions @: missions/*
[
"missions"=>[
"cli"=>[
"pattern"=>":"
]
]
];