Skip to content

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
Back to top