bitexpert / additeasy
PSR-7 兼容的平面文件 CMS
Requires
- php: ^7.1
- bitexpert/adrenaline: ^0.4.0
- bitexpert/disco: ^0.9.0
- bitexpert/slf4psrlog: ^0.1.3
- monolog/monolog: ^1.14.0
- symfony/console: ^2.8.6
This package is auto-updated.
Last update: 2022-12-30 15:13:30 UTC
README
addItEasy 是一个 PSR-7 兼容的平面文件 CMS 和静态站点生成器,使用 PHP 编写。
安装
安装 bitexpert/additeasy
的首选方式是通过 Composer。只需将 bitexpert/additeasy
添加为依赖项
composer.phar require bitexpert/additeasy
要初始化一个新项目,只需调用提供的 addItEasy 命令行工具的 init 命令
./vendor/bin/addItEasy init
添加模板
addItEasy 使用 Twig 作为模板引擎。在模板文件夹中创建一个名为 "default.twig" 的模板,如下所示
<!DOCTYPE html> <html lang="en"> <head> <title>{{ site.title }}</title> <base href="http://localhost:8080/" /> </head> <body> <!-- Content block --> {% block content %} {% endblock %} </body> </html>
添加内容
内容文件需要放置在内容目录中。内容文件基本上是 Twig 文件,它们提供模板所需的 块。
{% extends "default.twig" %}
{% block content %}
<div>
Hello World!
</div>
{% endblock content %}
您的网站上的每个页面都在内容目录中的子文件夹中表示。文件夹名称构建了您网站的 URL 结构,允许嵌套子文件夹。每个文件夹都需要以一个数字开头,该数字用于指示排序顺序。每个文件夹都需要包含一个包含要显示的内容的 twig 模板文件。
内容文件夹可能看起来像这样
|-01-home
|---home.twig
|-02-about
|---about.twig
|-posts
|---01-post1
|-----post1.twig
|---02-post2
|-----post2.twig
|---03-post3
|-----post3.twig
|---04-post4
|-----post4.twig
Twig 辅助函数
当前页面对象以 "page" 命名的变量在模板中公开,$EASY_CONF["site"] 配置数组以 "site" 命名的变量公开。除此之外,addItEasy 还公开了 3 个辅助函数来 "交互" 与内容页面。
children($pagename) 函数接受一个页面名称作为参数,并返回子页面。
{% for post in children('posts') %}
{{ post.getName() }}
{% endfor %}
siblings($pagename) 函数接受一个页面名称作为参数,并返回包括当前页面在内的所有同级页面。
{% for mainnav in siblings('home') %}
{{ mainnav.getName() }}
{% endfor %}
pageblock($page, $blockname) 函数接受一个页面对象作为第一个参数,并将要渲染的块的名称作为第二个参数。
{% for post in children('posts') %}
{{ pageblock(post, 'title') }}
{% endfor %}
运行 addItEasy
作为平面文件 CMS 运行 addItEasy
如果您想在本地运行 addItEasy,需要在项目目录中执行以下命令
php -S 0.0.0.0:8080 -t .
打开网络浏览器,将其指向 http://localhost:8080 以查看 addItEasy 在行动中的效果。
作为静态站点生成器运行 addItEasy
要导出静态 HTML 页面,运行提供的 addItEasy 命令行工具的 export 命令
./vendor/bin/addItEasy export
HTML 文件以及资产将被导出到项目配置中指定的文件夹。
许可
addItEasy遵循Apache 2.0许可证发布。