Cookiecutter:更好的项⽬模板⼯具:(1)简介及可⽤资源汇总
本系列只介绍cookiecutter的基础使⽤,⽽且会删除与功能使⽤⽆关的部分。深度使⽤及了解更多详情请请参考原⽂档。
关于Cookiecutter的中⽂译名,我不知道别⼈怎么翻译的,我将其翻译为饼⼲制造机。本系列中将不对其作翻译,直接使⽤英⽂原名。
Cookiecutter简介
Cookiecutter 是⼀个通过项⽬模板创建项⽬的命令⾏⼯具。⽐如,通过Python Package模板来创建Python package项⽬。(通过Python代码调⽤Cookiecutter的API可以扩展为⾃动化创建服务和带有Web UI的服务程序)
功能特点
跨平台:官⽅⽀持Windows、Mac和Linux
可以在Python 2.7, 3.4, 3.5, 3.6, and PyPy.环境中正常使⽤(此处指的是Cookiecutter的运⾏环境,⽽不是你项⽬的运⾏环境。使⽤Cookiecutter不需要你懂得编写Python代码)项⽬模板可以是任何编程语⾔
或标记格式:Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML等任何你能叫出名字的。你也可以在同⼀个项⽬模板中使⽤多种语⾔。
命令⾏的简单使⽤:
# 从cookiecutter-pypackage.git模板创建项⽬
# 你将会被提⽰输⼊相应的值。
# 然后Cookiecutter将基于你的输⼊在当前⼯作⽬录中创建Python包
$ cookiecutter github/audreyr/cookiecutter-pypackage
# 为了简洁起见,repos在GitHub上可以只使⽤“gh”前缀
$ cookiecutter gh:audreyr/cookiecutter-pypackage
在命令⾏中使⽤本地模板:
# 从本地在当前⽬录创建项⽬
# cookiecutter-pypackage/ template
$ cookiecutter cookiecutter-pypackage/
⽬录名和⽂件名可以模板化。例如:{{po_name}}/{{po_name}}/{{po_name}}.py
⽀持⽆限层级的⽬录嵌套。
⽂件和⽬录名称100%使⽤Jinja2完成模板化。
只需在·cookiecutter.json·⽂件中定义模板变量即可。例如:
{
"full_name": "Tacey Wong",
"email": "xinyong.wang@qq",
"project_name": "Complexity",
"repo_name": "complexity",
"project_short_description": "令⼈⽿⽬⼀新的简单的静态⽹站⽣成器.",
"release_date": "2019-03-10",
"year": "2019",
"version": "0.0.1"
}
没有你⽤·--no-input·来禁⽌,系统会提⽰你输⼊:
cookiecutter.json中键/key对应的值/value。
cookiecutter.json中的缺省值
提⽰符按顺序显⽰
跨平台⽀持~/.cookiecutterrc⽂件:
default_context:
full_name: "Tacey Wong"
email: "xinyong.wang@qq"
github_username: "taceywong"
cookiecutters_dir: "~/.cookiecutters/"
克隆的Cookiecutter项⽬模板会缺省放置在~/.cookiecutters/⽬录下,如果特殊指定,会放置在cookiecutters_dir对应的⽬录下:
# 克隆cookiecutter-pypackage
$ cookiecutter gh:audreyr/cookiecutter-pypackage
# 现在你可以根据名字使⽤对应的模板
$ cookiecutter cookiecutter-pypackage
您可以使⽤你本地模板、远程Git repos
默认上下⽂:指定在⽣成项⽬时要⽤作默认值的键/值对
⽤命令⾏参数注⼊额外的上下⽂:
$ cookiecutter --no-input gh:msabramo/cookiecutter-supervisor program_name=foobar startsecs=10
直接访问Cookiecutter API允许注⼊额外的上下⽂。
预⽣成和后⽣成挂钩/hook:在⽣成项⽬之前或之后运⾏的Python或shell脚本。
本地项⽬的路径可以指定为绝对路径或相对路径。
项⽬始终⽣成到当前⽬录。
可⽤的Cookiecutter模板
现在在已经有很多开源的Cookiecutter 项⽬模板可供选择。
特定的Cookiecutter模板
这些模板由cookiecutter官⽅团队进⾏维护:
:终极Python包项⽬模板。
: ⼀个具有Bootstrap 4、可定制⽤户应⽤程序、启动器模板、⽤户注册、celery设置等功能的Django项⽬模板。
: 编写pytest插件的最⼩Cookiecutter模板,帮助你编写更好的程序。
Cookiecutter模板分类
社区驱动的各类Cookiecutter模板(⾮Cookiecutter官⽅维护)
Python
: 的终极Python包项⽬模板。
: pip可安装项⽬的最⼩软件包
: ⼀个最⼩的Python包模板。
: ⼀个Python样板项⽬,旨在利⽤⽅便的Makefile⼯具和额外的辅助⼯具创建Python包。
:带有 Bootstrap 3、启动器模板和⼯作⽤户注册的Flask模板。
: ⼀个更重的cookiecutter-flask,有更多的样板,包括忘记密码和Heroku集成功能
: 带有缓存、表单、sqlalchemy和单元测试的Flask模板。
:
最⼩但production就绪的Flask项⽬模板,除了Flask本⾝之外,没有其他依赖。
: Flask启动项⽬。
: ⽤于快速创建可重复使⽤的Bottle项⽬的cookiecutter模板。
: OpenStack项⽬的模板。
: Python命令⾏脚本的模板,使⽤进⾏参数解析。
: ⽤于创建Quokka Flask CMS蓝图模块的模板。
:基于kivy python-framework构建的NUI应⽤程序模板。
: Python Kivy应⽤程序的模板,已准备好使⽤Buildozer部署到Android设备。
: ⼀个旨在快速开始进⾏良好的测试和打包的复杂模板,(Tox,Pytest,Travis-CI,Coveralls,AppVeyor,Sphinx docs,isort,转换,打包、检查等⼯作配置)。
: ⽤于尖端Python开发的模板。[invoke]( /)、pytest、bumpversion和Python 2/3兼容性。
: ⽤于创建在iOS设备上运⾏的Python项⽬模板。
: ⽤于创建在Android设备上运⾏的Python项⽬模板。
⽤于创建基本和外部Tryton模块的模板。
: ⽤于创建tryton模块的模板。
: ⽤于创作插件的最⼩Cookiecutter模板,可帮助您编写更好的程序。
: 编写插件的最⼩Cookiecutter模板,⽤于更改或扩展测试⾃动化的⾏为。
: ⽤于构建基于Web API包装器(客户端)的[tapioca-wrapper](
: 带有Bootstrap 3,启动器模板和⼯作⽤户注册的Muffin模板。
: ⽤于构建.插件的模板
: 项⽬的Cookiecutter模板。
: ⽤于创建具有⼦命令、⽇志记录、YAML配置、pytest测试和Virtualenv部署的Python CLI应⽤程序的模板。
:超强web微框架Morepath的Cookiecutter模板,。
: 新展现项⽬模板(reStructuredText中嵌⼊impress.js幻灯⽚)
: ⼀种轻松设置分析管道的⽅法。
: Python 3 Tkinter应⽤程序gui的模板。
: 预构建的PyQt4 GUI模板,具有⽇志记录⽀持、⽤于测试和分离ui和⼯作组件的结构。
: A prebuilt PyQt4 GUI template with a logging support, structure for tests and separation of ui and worker components.
: ⽤于构建xontribs的模板,a.k.a 贡献
: ⽤于构建Conda Python包的模板
: 包含Rust⼆进制模块的Python wheel 模板,⽀持在Windows,OSX和Linux上发布。
: ⼀个带有基于CherryPy webhook的Telegram机器⼈模板项⽬。
: ⼀个⽤于Python项⽬的模板,具有复杂的发布⾃动化功能。
: 基于Anyblok的项⽬模板。
:⽤于使⽤“click”创建Python CLI应⽤程序的cookiecutter模板
Python-Django
: 带有Bootstrap 4的前沿Django项⽬模板,可⾃定义的⽤户应⽤程序,⼊门模板,⽤户注册,celery设置等等。
: ⽤于为移动和Web应⽤程序创建REST api。
: 快速创建可重⽤Django项⽬的cookiecutter 模板
: Djangodocker开发/⽣产环境,并集成了 Postgres, NodeJS(React), Nginx, uWSGI.
:⽤于创建可重⽤的第三⽅PyPI友好Django应⽤程序的cookicutter模板。⽤教程格式编写⽂档
: Django CMS的模板,带有简单的Bootstrap 3模板。它具有快速启动和部署⽂档。
: ⽤于围绕⼯⼚模式和测试的模型创建带有CRUD样板的Django应⽤程序。
:Django项⽬的另⼀个cookiecutter模板,带有Bootstrap 3和FontAwesome 4
: 准备在像Heroku,OpenShift等PAAS平台中使⽤的Django模板
: ⽤于创建可重⽤Django REST框架包的模板。
: 在AWS Elastic Beanstalk上启动并运⾏Django。
: 基于 CMS的⽹站模板
: Wagtail CMS项⽬的完整模板,带有 6,ansible资源调配和部署,使⽤bower进⾏前端相关性管理,模块化的应⽤程序,使您的⽹站启动和运⾏照⽚画廊,RSS流等。
: 包含vagrant和provisioning脚本的Django模板- 灵感来⾃12factor应⽤程序和cookiecutter-django。
: 在Django项⽬中集成前端开发⼯具的Cookiecutter模板
: 配有wagtail,django布局,vagrant,配置脚本,前端构建系统等等的cookiecutter模板。
: ⼀个为Heroku python3优化的Django 1.7+模板。
:⼀个简单的Django中⽂模板。
: ⽤于使⽤Django和EmberJS创建应⽤程序
: ⽤于基于“project app”项⽬体系结构创建REST api
: ⽤于基于“project app”项⽬体系结构创建Django项⽬
: 模板+脚本,根据模型⽂件作为输⼊⾃动创建包含序列化程序,视图,URL和管理⽂件的Django REST项⽬。
: 分⽀,基于 6前端框架。
: ⽤于快速启动ansible项⽬,以便为您的* cookiecutter-django *应⽤程序提供服务器的框架
: 前沿Django模板专注于代码质量和安全性。
Python-Pyramid
:Cookiecutter (项⽬模板),使⽤SQLite创建Pyramid项⽬,SQLAlchemy⽤于ORM,URL调度⽤于路由,Jinja2⽤于模板。
: 使⽤URL调度进⾏路由分配,使⽤Jinjab 2、Chameleon或Mako模板创建Pyramid⼊门项⽬的Cookiecutter (项⽬模板)。
:Cookiecutter(项⽬模板),⽤于创建Pyramid项⽬,使⽤ZODB进⾏持久存储,遍历路由,使⽤Chameleon进⾏模板化。
: ⽤于创建Substance D初始项⽬的cookiecutter(项⽬模板)。 Substance D是基于Pyramid实现的。
: ⼀个⾃以为是的Cookiecutter模板,⽤于创建PyramidWeb应⽤程序,从开发链的下游开始。这个cookiecutter模板将创建⼀个新的Pyramid Web应⽤程序,其中包含电⼦邮件,sqlalchemy,rollbar以及更多的集成。
**Cookiecutter (meta) **
⽤于⽣成Cookiecutter项⽬模板的元模板。
: ⽤于创建⼀个Cookiecutter模板
Ansible
: 按照最佳实践创建Create ⾓⾊, 利⽤Test-kitchen,Docker和InSpec实现已经实施的测试基础架构。, Docker and Testinfra.
: ⽤于创建ansible⾓⾊的模板。忘记⽂件创建,专注于操作。
: 按照最佳实践创建Ansible⾓⾊,利⽤Test-kitchen,Docker和InSpec实现已经实施的测试基础架构。
Git
: Git repo项⽬模板
C
: ⽤C语⾔编写的带有autotools的简单项⽬模板。
: avr开发的模板。
C++
: ⼀个简单的cmake模板,对⽤C ++编写的项⽬进⾏单元测试。
: DISTRHO插件框架(DPF)的⾳频插件项⽬模板
: ⼀个⾳频插件项⽬模板,⽤于发⾏版插件框架(DPF)和⾳频⼯具包(ATK) DSP库
: 使⽤Google Test框架的C ++测试驱动开发katas模板。
: 使⽤CppUTest框架的C ++测试驱动开发katas的模板。
C#
: ⽣成⽤于绑定Objective-C静态库的C#绑定项⽬的cookircutter模板。
Common Lisp
: 带有bootstrap脚本和Slime集成的Common Lisp项⽬cookiecutter模板,
golang kotlinElm
: 基于Elm带有html样例的cookiecutter模板。
Golang
: 根据最佳实践创建基golang新项⽬的模板
Java
: 使⽤gradle的基本java应⽤程序设置的cookiecutter模板。
: 标准java spring boot gradle应⽤程序的Cookiecutter模板。
基于Gradle的Android项⽬Cookiecutter模板。
JS
:S6中的前端项⽬cookiecutter模板
: Webpack 2项⽬的模板,包括热重新加载,babel es6模块和反应。
:⼀个基于jQuery Boilerplate的jQuery插件项⽬模板。
: 为多个JS打包系统创建⼀个通⽤的前端⾮jQuery JS⼩部件的项⽬模板。
: Component JS 包模板
: TamperMonkey浏览器脚本的模板。
: 使⽤ES6通过babel编写nodejs包的模板。
: 带有typescript应⽤程序的模块化angular2模板。
: ⾃动为AngularJS前端创建列表/细节控制器和⽚段,以连接到DRF后端的模板和脚本。与配合的很好。
Kotlin
: 基于Gradle的Kotlin项⽬简单模板。
LaTeX/XeTeX
:⽤于与pandoc和XeTeX进⾏对接的cookiecutter模板。
: 针对学术界使⽤的LaTeX模板
: LaTeX Beamer展⽰模板
PHP
: MediaWiki扩展的模板。
Sublime Text
: Sublime Text 3 插件模板,包括⾃定义设置、命令、键绑定和主菜单
: 包含⽚段型Sublime Text包的模板。
Berkshelf-Vagrant
: 与 vagrant/berkshelf cookbooks保持⼀致的cookbook简单模板
HTML
:⼀个使⽤Bootstrap 3的复杂静态站点cookiecutter模板。
: reveal.js演⽰⽂稿的cookiecutter模板。
: 使⽤GruntJS作为连接⼯具的Tumblr主题项⽬的cookiecutter模板。
Scala
:带有⼏个库的简单scala hello world应⽤程序cookiecutter模板
: ⽤Scala编写的Apache Spark应⽤程序的cookiecutter模板。
6502 Assembly
: Atari2600项⽬的cookiecutter模板。
Data Science
: ⽤于创建⾃定义Jupyter⼩部件项⽬的cookiecutter模板。
:为在Python中进⾏和共享数据科学⼯作的逻辑的、合理标准化的、灵活的项⽬结构。提供了的完整⽂档。
: 组织基于R的⼯作流->doc(通过pandoc)->pdf报告(通过latex)的模板
: Cookiecutter template for data scientists working in Docker containers.为使⽤Docker容器⼯作的数据科学家准备的Cookiecutter模板。
Reproducible Science
: ⽤于开始⼀个可重复和透明的科学项⽬,包括数据,模型,分析和报告的cookiecutter模板 (⽐如你的科学论⽂)。与上⾯数据科学Cookiecutter模板的哲学⾮常⼀致数据驱动的Journalism
: 通过持续组织数据⽇志项⽬和⼀些预先填充的⽂件来促进数据⽇志的透明度的Cookiecutter模板(包括 .gitignore, README, AUTHORS)
持续交付
: ⽤于包含持续交付的软件开发设置cookiecutter模板。⽀持Python (Django, Flask), 实验性⽀持 PHP 。
: ⽤于将开发和ci环境添加到现有项⽬的模板。
云⼯具
: ⽤于构建⼀致Terraform模块的Cookiecutter模板。
Tornado
: 创建Tornado项⽬的Cookiecutter模板
其他
: 创建[awesome](
: 由stow管理的dotfiles⽂件夹的模板。
: RAML v1.0 API⽂档的模板。
与Cookiecutter类似的项⽬
具有创建⾻架项⽬的创建选项。
: ⼀个提供模板和变量的配置⽂件的API服务。
的tartproject和startapp命令可以使⽤-template选项。
:使⽤⾃⼰的模板创建Python包,并提供可配置的选项。
有⼀个受Rails启发的⽣成器系统,为应⽤程序提供脚⼿架。
的pcreate命令,⽤于从脚⼿架模板创建Pyramid 项⽬。
是⼀个⽂件系统模板渲染器,⽤于弃⽤paster和templer等⼯具
曾经被内置到Grunt中,现在是⼀个独⽴的脚⼿架⼯具,可以⾃动创建项⽬。
使⽤Handlebars 的JSON⽣成器。
克隆或复制存储库,执⾏npm安装和bower安装,并删除.git⽬录。
由Ned Batchelder开发的基于python的代码⽣成⼯具包
基于python和json配置的django / MVC⽣成器,带有⼀些附加组件和集成。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。