Package: awesome-cookiecutter
CookiecutterA command-line utility that creates projects fromcookiecutters(project
templates), e.g. creating a Python package project from a Python package project
template.Documentation:https://cookiecutter.readthedocs.ioGitHub:https://github.com/cookiecutter/cookiecutterPyPI:https://pypi.org/project/cookiecutter/Free and open source software:BSD licenseWe are proud to be an open source sponsor ofPyCon 2016.FeaturesCross-platform: Windows, Mac, and Linux are officially supported.You don't have to know/write Python code to use Cookiecutter.Works with Python 3.7, 3.8, 3.9.Project templates can be in any programming language or markup format:
Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML, you name it.
You can use multiple languages in the same project template.Simple command line usage:# Create project from the cookiecutter-pypackage.git repo template# You'll be prompted to enter values.# Then it'll create your Python package in the current working directory,# based on those values.$cookiecutterhttps://github.com/audreyfeldroy/cookiecutter-pypackage# For the sake of brevity, repos on GitHub can just use the 'gh' prefix$cookiecuttergh:audreyfeldroy/cookiecutter-pypackageUse it at the command line with a local template:# Create project in the current working directory, from the local# cookiecutter-pypackage/ template$cookiecuttercookiecutter-pypackage/Or use it from Python:fromcookiecutter.mainimportcookiecutter# Create project from the cookiecutter-pypackage/ templatecookiecutter('cookiecutter-pypackage/')# Create project from the cookiecutter-pypackage.git repo templatecookiecutter('https://github.com/audreyfeldroy/cookiecutter-pypackage.git')Directory names and filenames can be templated. For example:{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}.pySupports unlimited levels of directory nesting.100% of templating is done with Jinja2. This includes file and directory names.Simply define your template variables in acookiecutter.jsonfile. For example:{"full_name":"Audrey Roy Greenfeld","email":"audreyr@gmail.com","project_name":"Complexity","repo_name":"complexity","project_short_description":"Refreshingly simple static site generator.","release_date":"2013-07-10","year":"2013","version":"0.1.1"}Unless you suppress it with--no-input, you are prompted for input:Prompts are the keys incookiecutter.json.Default responses are the values incookiecutter.json.Prompts are shown in order.Cross-platform support for~/.cookiecutterrcfiles:default_context:full_name:"AudreyRoyGreenfeld"email:"audreyr@gmail.com"github_username:"audreyfeldroy"cookiecutters_dir:"~/.cookiecutters/"Cookiecutters (cloned Cookiecutter project templates) are put into~/.cookiecutters/by default, or cookiecutters_dir if specified.If you have already cloned a cookiecutter into~/.cookiecutters/,
you can reference it by directory name:# Clone cookiecutter-pypackage$cookiecuttergh:audreyfeldroy/cookiecutter-pypackage# Now you can use the already cloned cookiecutter by name$cookiecuttercookiecutter-pypackageYou can use local cookiecutters, or remote cookiecutters directly from Git
repos or from Mercurial repos on Bitbucket.Default context: specify key/value pairs that you want used as defaults
whenever you generate a project.Inject extra context with command-line arguments:cookiecutter--no-inputgh:msabramo/cookiecutter-supervisorprogram_name=foobarstartsecs=10Direct access to the Cookiecutter API allows for injection of extra context.Pre- and post-generate hooks: Python or shell scripts to run before or after
generating a project.Paths to local projects can be specified as absolute or relative.Projects generated to your current directory or to target directory if
specified with-ooption.Available CookiecuttersMaking great cookies takes a lot of cookiecutters and contributors. We're so
pleased that there are many Cookiecutter project templates to choose from. We
hope you find a cookiecutter that is just right for your needs.A Pantry Full of CookiecuttersThe best place to start searching for specific and ready to use cookiecutter
template isGithub search.
Just typecookiecutterand you will discover over 4000 related repositories.We also recommend you to check related GitHub topics. For general search usecookiecutter-template.
For specific topics try to usecookiecutter-yourtopic, likecookiecutter-pythonorcookiecutter-datascience. This is a new GitHub feature,
so not all active repositories use it at the moment.If you are template developer please add relatedtopicswithcookiecutterprefix to you repository. We believe it will make it more
discoverable. You are almost not limited in topics amount, use it!Cookiecutter SpecialsThese Cookiecutters are maintained by the cookiecutter team:cookiecutter-pypackage:@audreyfeldroy'sultimate Python package project template.cookiecutter-django:
A bleeding edge Django project template with Bootstrap 4, customizable users app,
starter templates, working user registration, celery setup, and much more.cookiecutter-pytest-plugin:
Minimal Cookiecutter template for authoringpytestplugins that help you to write better programs.CommunityThe core committer team can be found inauthors section.
We are always welcome and invite you to participate.Stuck? Try one of the following:See theTroubleshootingpage.Ask for help onStack Overflow.You are strongly encouraged tofile an issueabout the problem, even if it's just "I can't get it to work on this cookiecutter"
with a link to your cookiecutter. Don't worry about naming/pinpointing the issue
properly.Ask for help onDiscordif you must (but please try one of the other options first, so that others
can benefit from the discussion).Development on Cookiecutter is community-driven:Huge thanks to all thecontributorswho have pitched in to help
make Cookiecutter an even better tool.Everyone is invited to contribute. Read thecontributing instructions, then get started.Connect with other Cookiecutter contributors and users onDiscord(note: due to work and other commitments, a core committer might not always be available)Encouragement is unbelievably motivating. If you want more work done on
Cookiecutter, show support:Thank a core committer for their efforts.StarCookiecutter on GitHub.Support this projectGot criticism or complaints?File an issueso that Cookiecutter can be improved. Be friendly and constructive about what
could be better. Make detailed suggestions.Keep us in the loop so that we can help.For example, if you are
discussing problems with Cookiecutter on a mailing list,file an issuewhere you link to the discussion thread and/or cc at least 1 core committer on the email.Be encouraging. A comment like "This function ought to be rewritten like this"
is much more likely to result in action than a comment like "Eww, look how bad
this function is."Waiting for a response to an issue/question?Be patient and persistent. All issues are on the core committer team's radar
and will be considered thoughtfully, but we have a lot of issues to work through.
If urgent, it's fine to ping a core committer in the issue with a reminder.Ask others to comment, discuss, review, etc.Search the Cookiecutter repo for issues related to yours.Need a fix/feature/release/help urgently, and can't wait?@audreyfeldroyis available for hire for consultation
or custom development.Support This ProjectThis project is run by volunteers. Shortly we will be providing means for
organizations and individuals to support the project.Code of ConductEveryone interacting in the Cookiecutter project's codebases, issue trackers,
chat rooms, and mailing lists is expected to follow thePyPA Code of Conduct.