Extension for Foliant documentation generator to make docs from multiple sources.
MultiProject is an extension for Foliant to generate the documentation from multiple sources. MultiProject consists of three parts:
- extension for
foliant.configpackage to resolve the
- CLI extension for the
- RepoLink preprocessor.
$ pip install foliantcontrib.multiproject
Config Extension to Resolve the
This extension resolves the
!from YAML tag in the project config and replaces the value of the tag with
chaptres section of related subproject.
Nested subprojects are processed recursively.
Usage of the Config Extension
The subproject location may be specified as a local path, or as a Git repository with optional revision (branch name, commit hash or another reference).
chapters section in the project config:
chapters: - index.md - !from local_dir - !from https://github.com/foliant-docs/docs.git - !from https://github.com/some_other_group/some_other_repo.git#develop
Before building the documentation superproject, Multiproject extension calls Foliant to build each subproject into
pre target, and then moves the directories of built subprojects into the source directory of the superproject (usually called as
- directory names of subprojects of the same level should be unique;
- source directories of the multiproject and of all the subprojects should have the same names; also they should be located inside the “root” directories of corresponding projects;
- config files of the multiproject and of all the subprojects should have the same names;
- subprojects from remote Git repositories do not need to be newly cloned before each build, but local subprojects are copied into cache before each build;
- it’s undesirable if the path of the “root” directory of the top-level project contains
.multiprojectcachedirectory as its some part.
CLI Extension for the
This extension supports the command
src to backup the source directory of Foliant project (usually called as
src) and to restore it from prepared backup.
Backing up of the source directory is needed because MultiProject extension modifies this directory by moving the directories of built subprojects into it.
Usage of the CLI Extension
To make a backup of the source directory, use the command:
$ foliant src backup
To restore the source directory from the backup, use the command:
$ foliant src restore
You may use the
--config option to specify custom config file name of your Foliant project. By default, the name
foliant.yml is used:
$ foliant src backup --config alternative_config.yml
Also you may specify the root directory of your Foliant project by using the
--path option. If not specified, current directory will be used.
This preprocessor allows to add into each Markdown source a hyperlink to the related file in Git repository. Applying of the preprocessor to subprojects allows to get links to separate repositories from different pages of a single site (e.g. generated with MkDocs).
By default, the preprocessor emulates MkDocs behavior. The preprocessor generates HTML hyperlink with specific attributes and inserts the link after the first heading of the document. The default behavior may be overridden.
The preprocessor supports the same options
edit_uri as MkDocs.
Usage of the Preprocessor
To enable the preprocessor, add
preprocessors section in the project config:
preprocessors: - repolink
The preprocessor has a number of options:
preprocessors: - repolink: repo_url: https://github.com/foliant-docs/docs/ edit_uri: /blob/master/src/ link_type: html link_location: after_first_heading link_text: "" link_title: View the source file link_html_attributes: "class=\"md-icon md-content__icon\" style=\"margin: -7.5rem 0\"" targets: - pre
: URL of the related repository. Default value is an empty string; in this case the preprocessor does not apply. Trailing slashes do not affect.
: Revision-dependent part of URL of each file in the repository. Default value is
/blob/master/src/. Leading and trailing slashes do not affect.
: Link type: HTML (
html) or Markdown (
markdown). Default value is
: Place in the document to put the hyperlink. By default, the hyperlink is placed after the first heading, and newlines are added before and after it (
after_first_heading). Other values:
before_content—the hyperlink is placed before the content of the document, the newline after it is provided;
after_content—the hyperlink is placed after the content of the document, the newline before it is added;
<repo_link></repo_link> that are met in the content of the document are replaced with the hyperlink.
: Hyperlink text. Default value is
Edit this page.
: Hyperlink title (the value of
title HTML attribute). Default value is also
Edit this page. This option takes effect only when
link_type is set to
: Additional HTML attributes for the hyperlink. By using CSS in combination with
class attribute, and/or
style attribute, you may customize the presentation of your hyperlinks. Default value is an empty string. This option takes effect only when
link_type is set to
: Allowed targets for the preprocessor. If not specified (by default), the preprocessor applies to all targets.
You may override the value of the
edit_uri config option with the
FOLIANT_REPOLINK_EDIT_URI system environment variable. It can be useful in some non-stable testing or staging environments.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size foliantcontrib.multiproject-1.0.14-py3-none-any.whl (9.9 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size foliantcontrib.multiproject-1.0.14.tar.gz (8.1 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for foliantcontrib.multiproject-1.0.14-py3-none-any.whl
Hashes for foliantcontrib.multiproject-1.0.14.tar.gz