从cookiecutter(项目模板)创建项目的命令行实用程序,例如Python包项目、VueJS项目

从以下位置创建项目的命令行实用程序Cookiecuters(项目模板),例如从Python包项目模板创建Python包项目

我们为能成为以下项目的开源赞助商而感到自豪PyCon 2016

功能

是不是有人说有特写?

  • 跨平台:官方支持Windows、Mac、Linux
  • 您无需了解/编写Python代码即可使用Cookiecuter
  • 适用于Python 3.6、3.7、3.8、3.9和PyPy3
  • 项目模板可以是任何编程语言或标记格式:Python、JavaScript、Ruby、CoffeeScript、RST、Markdown、CSS、HTML等等。您可以在同一项目模板中使用多种语言
  • 简单的命令行用法:
# 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.
$ cookiecutter https://github.com/audreyfeldroy/cookiecutter-pypackage
# For the sake of brevity, repos on GitHub can just use the 'gh' prefix
$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
  • 在带有本地模板的命令行中使用它:
# Create project in the current working directory, from the local
# cookiecutter-pypackage/ template
$ cookiecutter cookiecutter-pypackage/
  • 或者从Python中使用它:
from cookiecutter.main import cookiecutter

# Create project from the cookiecutter-pypackage/ template
cookiecutter('cookiecutter-pypackage/')

# Create project from the cookiecutter-pypackage.git repo template
cookiecutter('https://github.com/audreyfeldroy/cookiecutter-pypackage.git')
  • 目录名和文件名可以模板化。例如:
{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}.py
  • 支持无限级别的目录嵌套
  • 100%的模板使用JJAA2完成。这包括文件名和目录名
  • 只需在cookiecutter.json文件。例如:
{
    "full_name": "Audrey Feldroy",
    "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"
}
  • 除非你用来压制它--no-input,系统将提示您输入:
    • 提示是中的关键cookiecutter.json
    • 默认响应为中的值cookiecutter.json
    • 提示按顺序显示
  • 跨平台支持~/.cookiecutterrc文件:
default_context:
    full_name: "Audrey Feldroy"
    email: "audreyr@gmail.com"
    github_username: "audreyfeldroy"
cookiecutters_dir: "~/.cookiecutters/"
  • Cookiecutters(克隆的Cookiecutter项目模板)被放入~/.cookiecutters/缺省情况下,或cookiecutters_dir(如果指定
  • 如果您已经将Cookiecuter克隆到~/.cookiecutters/,您可以按目录名引用它:
# Clone cookiecutter-pypackage
$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
# Now you can use the already cloned cookiecutter by name
$ cookiecutter cookiecutter-pypackage
  • 您可以直接从Bitbucket上的Git repos或Mercurial repos使用本地cookiecutter或远程cookiecutter
  • 默认上下文:指定希望在生成项目时用作默认值的键/值对
  • 使用命令行参数注入额外的上下文:
cookiecutter --no-input gh:msabramo/cookiecutter-supervisor program_name=foobar startsecs=10
  • 直接访问Cookiecutter API允许插入额外的上下文
  • 生成前和生成后挂接:在生成项目之前或之后运行的Python或shell脚本
  • 可以将本地项目的路径指定为绝对路径或相对路径
  • 指定的情况下,生成到当前目录或目标目录的项目-o选项

可用的Cookiecuters

制作好的饼干需要很多饼干制作者和贡献者。我们很高兴有很多Cookiecutter项目模板可供选择。我们希望您能找到适合您需要的炊具。

装满了炊事工的储藏室

开始搜索特定的、随时可以使用的Cookiecuter模板的最佳位置是Github search只需键入即可cookiecutter您将发现4000多个相关存储库

我们还建议您查看相关的GitHub主题。供一般搜索使用cookiecutter-template对于特定主题,请尝试使用cookiecutter-yourtopic,就像cookiecutter-pythoncookiecutter-datascience这是GitHub的一项新功能,因此目前并不是所有的活动存储库都使用它

如果您是模板开发人员,请添加相关内容topics使用cookiecutter存储库的前缀。我们相信这将使它更容易被发现。你几乎不受话题数量的限制,使用它吧!

炊事员特色菜

这些Cookiecuter由Cookiecuter团队维护:

社区

核心提交者团队可以在authors section我们随时欢迎并邀请您参加

卡住了?尝试以下操作之一:

  • 请参阅Troubleshooting页面
  • 在以下方面寻求帮助Stack Overflow
  • 我们强烈鼓励您file an issue关于这个问题,即使只是“我不能让它在这个Cookiecuter上工作”,并带有指向您的Cookiecuter的链接。不要担心如何恰当地命名/查明问题
  • 在以下方面寻求帮助Slack如有必要(但请先尝试其他选项之一,以便其他人可以从讨论中受益)

Cookiecuter上的开发是由社区驱动的:

  • 非常感谢所有contributors他们为帮助Cookiecuter成为更好的工具贡献了自己的力量
  • 每个人都被邀请贡献自己的力量。请阅读contributing instructions,然后开始
  • 与上的其他Cookiecuter贡献者和用户联系Slack(注意:由于工作和承诺的原因,核心提交者可能并不总是有空)

鼓励是令人难以置信的激励。如果您希望在Cookiecutter上完成更多工作,请显示支持:

有批评或投诉吗?

  • File an issue这样Cookiecuter就可以改进了。对可以做得更好的事情表现出友好和建设性的态度。提出详细建议
  • 让我们了解最新情况,这样我们就能提供帮助例如,如果您正在讨论邮件列表上的Cookiecutter问题,file an issue链接到讨论主题和/或抄送电子邮件中至少一名核心提交人的位置
  • 要鼓励别人。像“这个函数应该像这样重写”这样的评论比像“Eww,看看这个函数有多糟糕”这样的评论更有可能导致行动。

等待对问题/问题的答复?

  • 要有耐心,要坚持不懈。所有问题都在核心提交者团队的雷达上,并将经过深思熟虑,但我们有很多问题需要解决。如果紧急,可以用提示ping问题中的核心提交者
  • 请他人发表评论、讨论、评论等
  • 在Cookiecuter存储库中搜索与您的问题相关的问题
  • 急需修复/功能/版本/帮助,等不及了吗?@audreyfeldroy可供租用进行咨询或定制开发

支持此项目

这个项目是由志愿者运营的。不久,我们将为组织和个人提供支持该项目的手段

行为规范

在Cookiecutter项目的代码库、问题跟踪器、聊天室和邮件列表中交互的每个人都应该遵循PyPA Code of Conduct