基于jina2的项目模板工具

tplate的Python项目详细描述


概述

tplate是一个基于jinja2的模板工具,用于创建项目模板或“初学者”。

要使用tplate,只需提供一个上下文文件,其中包含项目模板中占位符的值, 项目模板目录本身,以及所需的输出目录。下面是一个示例:

tplate  template/dir  output/dir --context=context.json

如果没有提供“--context”文件,将要求用户提供值。

安装

pip install tplate

项目模板

项目模板只是包含构成项目的文件和目录的目录。文件夹 它不以“.j2”结尾,只是简单地复制到输出目录。以“.j2”后缀结尾的文件将被处理 作为jinja2模板并通过jinja2呈现到输出目录中。对于“.j2”文件,输出目录中的文件名将是模板文件名减去“.j2”后缀。例如,readme.md.j2将被复制到 在输出目录中的readme.md。有关模板语言的详细信息,请参见Jinja2 template designer documentation

模板目录可能包含名为tplate.json或tplate.yaml的文件,该文件包含所有变量 模板中引用的。此文件的目的是记录 模板并提供默认值。如果存在,则用户提供的上下文文件将与 项目提供的默认文件。

<>为了避免意外重写现有文件,如果有任何文件,TPAL将不做任何事情。 输出目录。这可以通过传递--update标志来覆盖

在某些情况下,输出目录结构需要由变量确定。大多数 值得注意的是,java包名。为此,请添加名为tplate_directives.json.j2的文件或 tplate_directives.yaml.j2到类似于下面所示的项目模板。这将寻找 输出目录中名为“src/main/java/com/example”的目录,并将其重命名为“src/main/java/new/pacakge/name”。

[['java_package_rename','com.example','{{user_package_name|replace('.','/')}}']]

如果此文件是列表,则为结构。每个列表条目都是另一个列表,第一个参数是 指令的名称,其余参数是该指令的参数。请注意,在示例中 上面的{user{u package}是一个jinja2变量引用。它假设在运行时,一个名为 “user_package_name”将在“tplate.json”文件中提供。此文件最初将呈现为输出 使用户提供的信息可以合并的目录。然后,tplate将执行指令并 删除文件。

附加说明

  • 将文件复制到输出目录时,tplate将忽略(而不是复制)文件和目录 以下名称:“.git”、“tplate.json”、“tplate.yaml”、“.ds\u store”

发行说明

1.1版

  • 上下文文件不再需要在输出目录中。可以通过单独的参数或 交互地。
  • 更新文件。
  • 对包重命名的支持通过tplate_指令文件进行了更优雅的集成

1.0.3版

  • 添加了“--update”标志以允许覆盖输出目录中的文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java集合属性值   java字符串==运算符是否比较引用?   java是否存在过太多的ListView或适配器?   json获取java中类路径中下载的文件   我可以用java代码解决数据库并发问题吗?   在多个线程中使用forEach()或使用forEach()和lambdas进行java集合迭代   java输出JFrame中的整个循环   java禁用高度详细的日志记录   java在没有特定属性的对象中访问模型的值   java Smack xmpp建立连接   处理过时域对象引起的并发问题的java策略(Grails/GORM/Hibernate)   java从ObservableList中提取元素   使用图像进行java相似图像搜索   java ListView和图像:我快疯了   在Java中,如何从毫秒时间戳中提取一天的周期?   java我需要这样的设计,但我面临两个问题   java如何获取JGoodies FormLayout中的单元格大小   Spring引导生成的java War文件未部署到Weblogic 12c