Add New Templates within An Existing Project¶
This guide covers using Flexlate to add new templates within an existing
project that was not generated from cookiecutter
or copier
.
If you already
have a project that was previously generated from a template using
cookiecutter
or copier
and you want to update it with Flexlate,
you should follow the existing project guide.
If you want to create a new project with Flexlate, you should follow
the new project guide.
Initialize the Flexlate Project¶
The fxt init
command is used
to initialize a new Flexlate project. You must have a Flexlate project
before you can add any template sources or outputs.
$ fxt init Initializing flexlate project with default add mode local and user=False in /tmp/tmp3dpbo39z ⠋ Initializing... ⠋ Initializing... ⠙ Initializing... ✔ Finished initializing flexlate project
Add the Template Source¶
The fxt add source
command registers
a template source in the Flexlate configuration file.
$ fxt add source https://github.com/nickderobertis/copier-simple-example Adding template source... Adding template source copier-simple-example from https://github.com/nickderobertis/copier-simple-example ⠋ ⠙ ⠹ Sucessfully added template source copier-simple-example ⠹ ⠹ $ cat flexlate.json { "template_sources": [ { "name": "copier-simple-example", "path": "https://github.com/nickderobertis/copier-simple-example", "type": "copier", "version": "f3fa2c9526c12b3011e0a26108ce141373539bca", "git_url": "https://github.com/nickderobertis/copier-simple-example", "target_version": null, "render_relative_root_in_output": ".", "render_relative_root_in_template": "output" } ], "applied_templates": [] }
You can also specify the --version
option to specify which version of
the template you would like to be able to output.
fxt add source https://github.com/nickderobertis/copier-simple-example --version c7e1ba1bfb141e9c577e7c21ee4a5d3ae5dde04d
Add Template Output(s)¶
The fxt add output
command renders the
template at the specified location.
$ fxt add output copier-simple-example some/path Applying template copier-simple-example to /tmp/tmplz_7p19c Updating 1 applied templates question1? Format: yaml my answer The second question question2? Format: float 10 create my answer.txt create temp.txt ✔ Successfully updated template output ✔ Successfully applied template copier-simple-example to /tmp/tmplz_7p19c $ ls some/path flexlate.json 'my answer.txt'
If you don’t specify a path to render the template to, the template will be rendered in the current working directory.
fxt add output copier-simple-example
Next Steps¶
See how to update your project to a newer template version.