linkorb/stamp

Stamp: 从模板和数据文件生成文件

v2.2.1 2019-11-25 13:09 UTC

README

Stamp 通过将数据应用于模板来生成文件。

用例

  • 生成常见的仓库文件,如 README.md、LICENSE、.gitignore 等(通过将 stamp 与 metaculous 结合使用)
  • 静态网站生成器
  • 文档生成器

安装

composer require linkorb/stamp --dev

用法

vendor/bin/stamp --help

它是如何工作的?

当你运行 stamp generate 时,Stamp 将在当前目录中查找名为 stamp.yaml 的配置文件。你也可以使用 -c 传递一个指定的配置文件。

然后,Stamp 将遍历配置文件中定义的 templates,并使用由 src 键定义的模板文件,根据 dest 键定义的文件生成文件。

通过指定一个 items 键,一个模板可以应用多次,从而生成多个输出文件。

通过指定一个 variables 键,模板级别的变量将在传递给模板之前与项目级别的变量合并,允许你在模板级别覆盖/添加变量。

stamp.yml 示例

以下是一个简单的 stamp.yml 文件示例

variables:
  title: Hello world
  license: mit

templates:
  - src: stamp/README.md.twig
    dest: README.md
    variables:
      title: Hello world README file

  - src: https://raw.githubusercontent.com/IQAndreas/markdown-licenses/master/{{ license }}.md
    dest: LICENSE
  
  - src: https://raw.githubusercontent.com/gitlabhq/gitlabhq/master/CONTRIBUTING.md
    dest: CONTRIBUTING.md

只需在项目的根目录下输入 stamp generate(或 vendor/bin/stamp generate),列表中的文件将根据其模板(re)生成。

使用 URL 作为模板允许你将模板管理在一个位置(一个 Git 仓库),这使得根据更新的模板更新项目变得容易。

Stamp 支持多种模板语言/引擎,它们将根据模板文件(src)的文件扩展名来使用。

变量和函数

Stamp 使用 LinkORB Loader 库来加载 stamp.yaml 文件。

因此,它支持与 loader 相关的所有变量、包含和功能特性。

开发和调试

examples/ 目录包含一个示例配置(stamp.yaml)和模板文件。

许可证

MIT。有关详细信息,请参阅 许可证文件

由 LinkORB 工程团队提供


在我们的工程网站上查看我们的其他项目: linkorb.com/engineering

顺便说一下,我们正在招聘!