Cookiecutter-Features¶
Cross-platform: Windows, Mac und Linux werden unterstützt
Funktioniert mit allen aktuellen Python-Versionen
Die Projektvorlagen können für jede Programmiersprache und jedes Markup-Format erstellt werden: Python, JavaScript, Ruby, ReST, CSS, HTML. Es können auch mehrere Sprachen im selben Template verwendet werden.
Templates lassen sich einfach im Terminal anpassen:
$ cookiecutter https://github.com/veit/cookiecutter-namespace-template full_name [Veit Schiele]: …
Ihr könnt auch lokale Templates verwenden:
$ cookiecutter cookiecutter-namespace-template
Alternativ könnt ihr Cookiecutter auch mit Python verwenden:
$ bin/python >>> from cookiecutter.main import cookiecutter >>> cookiecutter('.https://github.com/veit/cookiecutter-namespace-template.git') full_name [Veit Schiele]: …
Verzeichnis- und Dateinamen können Vorlagen zugewiesen werden, z.B.:
{{cookiecutter.project_name}}/{{cookiecutter.namespace}}/{{cookiecutter.package_name}}/{{cookiecutter.project_slug}}.py
Die Verschachtelungstiefe ist unbegrenzt
Das Templating basiert auf Jinja
Ihr könnt eure Template-Variablen einfach in einer
cookiecutter.json
-Datei speichern, beispielsweise:{ "full_name": "Veit Schiele", "email": "veit@example.org", "github_username": "veit", "project_name": "vsc.example", "project_slug": "{{ cookiecutter.project_name.lower().replace(' ', '_').replace('-', '_') }}", "namespace": "{{ cookiecutter.project_slug.split('.')[0] }}", "package_name": "{{ cookiecutter.project_slug.split('.')[1] }}", "project_short_description": "Python Namespace Package contains all you need to create a Python namespace package.", "pypi_username": "veit", "use_pytest": "y", "command_line_interface": ["Click", "No command-line interface"], "version": "0.1.0", "create_author_file": "y", "license": ["MIT license", "BSD license", "ISC license", "Apache Software License 2.0", "GNU General Public License v3", "Not open source"] }
Ihr könnt die Werte auch für mehrere Vorlagen hinterlegen in
~/cookiecutterrc
:default_context: full_name: "Veit Schiele" email: "veit@cusy.io" github_username: "veit" cookiecutters_dir: "~/.cookiecutters/"
Cookiecutter-Templates, die aus einem Repository geladen wurden, werden üblicherweise in
~/.cookiecutters/
gespeichert. Anschließend können sie direkt über ihren Verzeichnisnamen referenziert werden, also z.B. mit:$ cookiecutter cookiecutter-namespace-package