YAMLInclude¶
YAMLInclude Extension¶
YAMLInclude is a configuration extension for Foliant to include parts of configuration from YAML-files.
It resolves !include YAML tag in the project config and inside XML-tags parameters.
Installation¶
$ pip install foliantcontrib.yaml_include
Usage¶
The syntax of the !include YAML tag is:
!include <file>[#<key>]
Where file may be
- path to local file in Foliant project root,
- direct link to a file on remote server.
An optional #<key> part is used to get a key from the mapping stored inside <file>.
Including a local file
Config example:
chapters: !include chapters.yml
In this example the chapters.yml file should be placed in your Foliant project root.
if the contents of chapters.yml are as follows:
## chapters.yml
- index.md
- description.md
then the resulting config after applying the extension will be:
chapters:
- index.md
- description.md
Including part of a local file
Config example:
chapters: !include chapters.yml#chapters_for_pdf
In this example the chapters.yml file should be placed in your Foliant project root.
if the contents of chapters.yml are as follows:
## chapters.yml
chapters_for_site:
- index_site.md
- description_site.md
chapters_for_pdf:
- index.md
- description.md
then the resulting config after applying the extension will be:
chapters:
- index.md
- description.md
Including a remote file
Config example:
chapters: !include http://example.com/chapters.yml
In this example the chapters.yml file is stored on the website http://example.com/.
if the contents of chapters.yml are as follows:
## chapters.yml
- index.md
- description.md
then the resulting config after applying the extension will be:
chapters:
- index.md
- description.md
Including part of a remote file
Config example:
chapters: !include http://example.com/chapters.yml#chapters_for_pdf
In this example the chapters.yml file is stored on the website http://example.com/.
if the contents of chapters.yml are as follows:
## chapters.yml
chapters_for_site:
- index_site.md
- description_site.md
chapters_for_pdf:
- index.md
- description.md
then the resulting config after applying the extension will be:
chapters:
- index.md
- description.md