trq / gen
一个非常简单的使用Twig模板的静态网站生成器
Requires
- daylerees/kurenai: 1.*
- twig/twig: 1.*
This package is not auto-updated.
Last update: 2024-09-28 13:12:00 UTC
README
一个非常非常简单的使用Twig模板引擎的静态网站生成器。
我开发了这个非常非常简单的静态网站生成器,专门用于生成http://proemframework.org网站。这确实是,非常非常简单。
安装
安装Gen的最佳方式是通过Composer。以下步骤将创建一个composer.json文件,安装所有依赖并启动一个骨架应用。
composer init --require=trq/gen:0.0.1 --stability=dev -n && composer install && vendor/bin/gen -i
默认情况下,Gen期望在源目录中找到以下结构
├── assets - All contents are recursively copied into the destination directory. *(Optional)*
├── content - .twig files processed, directories and .html pages produced copied into the destination.
├── extensions - Twig extensions. Any extension here is autoloaded as templates are processed. *(Optional)*
└── templates - Contains reusable .twig template partials.
一个示例
├── assets
│ ├── css
│ │ ├── bootstrap-responsive.css
│ ├── js
│ │ ├── bootstrap.min.js
│ └── media
│ └── img
│ ├── banner-bg.png
├── content
│ ├── about.twig
│ ├── docs
│ │ ├── current
│ │ │ ├── index.twig
│ └── index.twig
└── templates
├── layout.twig
结果:
├── about.html
├── assets
│ ├── css
│ │ ├── bootstrap-responsive.css
│ ├── js
│ │ ├── bootstrap.min.js
│ └── media
│ └── img
│ ├── banner-bg.png
├── docs
│ ├── current
│ │ ├── index.html
└── index.html
注入数据
可以在某些级别将数据(变量、数组、对象)注入到模板中。
通过简单地创建一个返回所需数据的数组的.php文件来注入数据。
<?php
return ['somevar' => 'some value'];
首先,您可以创建一个global.php文件并将其放入source目录的根目录。除非进一步覆盖,否则此数据将可用于所有模板。
其次,您可以在任何子目录中创建一个local.php文件。此文件提供的数据将与上面的global.php文件合并(覆盖任何重复键)。
最后,您可以创建一个与您的.twig文件同名.php文件。此文件返回的数据将再次合并到上述提供的数据中,并且结果仅对同名.twig文件中的数据进行提供。
Twig扩展
要使用自定义Twig扩展,只需在Gen命名空间中创建一个扩展Gen\Twig\ExtensionBase的类,并将其文件放入extensions目录中,并扩展Gen\Twig\ExtensionBase类。
通过扩展Gen\Twig\ExtensionBase,您的扩展将自动获得访问当前正在处理的目录、当前正在处理的文件、所有传递给Gen的选项以及所有当前可用的数据。
有关创建Twig扩展的信息,请参阅http://twig.sensiolabs.org/doc/advanced.html#creating-an-extension
配置
可以通过在source目录的根目录中放置一个gen.conf.php文件来轻松配置Gen使用的所有目录和文件,并返回您希望覆盖的选项数组。默认情况下,此数组看起来像
$ops = [
'extensions' => 'extensions',
'content' => 'content',
'templates' => 'templates',
'assets' => ['assets'],
'global' => 'global.php',
'local' => 'local.php',
'src' => $src,
'dest' => $dest
];
其中$src是传递给Gen的,或者使用当前工作目录作为默认值,而$dest是传递给Gen的,或者默认使用$src/build。
使用命令行助手
Gen附带了一个非常简单的命令行实用程序,用于处理您的网站。它具有以下选项
-s <source>
-d <destination>
-v verbose output
-i init the base tree structure
-h help
所有这些选项都是可选的。如果没有提供source目录,则将使用当前工作目录。