linkorb / stamp
Stamp: 从模板和数据文件生成文件
Requires
- linkorb/loader: ^1.0
- symfony/console: ^3.0|^4.0
- symfony/dotenv: ^3.0|^4.0
- symfony/expression-language: ^4.2
- symfony/yaml: ^3.0|^4.0
- twig/twig: ^1.0|^2.0
- zordius/lightncandy: ^0.0|^1.0
Requires (Dev)
- linkorb/autotune: ^1.2
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-09 20:37:56 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)的文件扩展名来使用。
.twig
: 使用 Twig 模板语言.hbs
、.handlebars
: 使用 Handlebars 模板语言(由 LightnCandy 驱动).mustache
: 使用 Mustache 模板语言(由 LightnCandy 驱动)
变量和函数
Stamp 使用 LinkORB Loader 库来加载 stamp.yaml 文件。
因此,它支持与 loader 相关的所有变量、包含和功能特性。
开发和调试
examples/
目录包含一个示例配置(stamp.yaml
)和模板文件。
许可证
MIT。有关详细信息,请参阅 许可证文件。
由 LinkORB 工程团队提供
在我们的工程网站上查看我们的其他项目: linkorb.com/engineering。
顺便说一下,我们正在招聘!