从模板生成文本文件的构建方法
collective.recipe.template的Python项目详细描述
简介
此配方可用于从(文本)生成文本文件 模板。
内容
- 简介
- 详细说明
- 从模板中简单创建文件
- 覆盖输出文件
- 使用内联输入
- 使用URL输入
- 在变量路径中创建模板
- 创建缺少的路径
- 用其他部分的选项替换变量
- 未更改的输出文件不会在更新时重写"id="id30" rel="nofollow">未更改的输出文件不会在更新时重写
一个简短的例子:
[buildout] parts = message [message] recipe = collective.recipe.template input = templates/message.in output = ${buildout:parts-directory}/etc/message mymessage = Hello, World!
在模板中,可以使用与可以使用的完全相同的变量 在构建配置中。例如,输入文件可以如下所示:
My top level directory is ${buildout:directory} Executables are stored in ${buildout:bin-directory}
作为构建语法的扩展,您可以从 当前的构建部分直接。例如:
My message is: ${mymessage}
功能
- 从版本1.3开始,还可以指定输出的路径 如果文件和路径不存在,将创建该文件和路径。
- 从1.5版开始,您可以使用内联模板。
- 从1.7版开始,您可以使用genshi文本模板。
- 从1.9版开始,您可以使用URL指定模板输入。
- 从版本1.12开始,您可以指定 timeout 作为选项 配置 urllib2 请求。
- 从2.1版开始,您可以设置输入编码 输出编码 以指定字符编码。
genshi文本模板
一个简短的例子:
[buildout] parts = message [message] recipe = collective.recipe.template[genshi]:genshi input = templates/message.in output = ${buildout:parts-directory}/etc/message some-option = value mymessage = Hello, World!
在模板中,可以使用与可以使用的完全相同的变量 在构建配置中,但不是冒号作为分隔符 必须使用属性访问,或者使用破折号字典访问选项 语法。全局构建配置可通过 当前部分通过 选项
例如,输入文件可以如下所示:
My top level directory is ${parts.buildout.directory} Executables are stored in ${parts.buildout['bin-directory']} Accessing the current part: ${options['some-option']}
为什么选择另一个模板配方?
两者都声称要执行 同样的事情。我发现他们是无证的,而且真的很危险 世界通用,而且都不在我可以修复它们的公共存储库中。在 此外,此实现利用构建变量替换 代码,使其更简单。