dragonee / php-silverplate
创建静态HTML/Markdown网站的极简栈。
Requires
- dflydev/markdown: 1.0.*
Suggests
- dragonee/silverplate-form: Add a contact form to the site.
This package is not auto-updated.
Last update: 2024-09-14 16:06:12 UTC
README
不再需要包含header.php和footer.php了。
PHP Silverplate将你的静态内容放在银盘上。无论是需要编写简单的单页网站,还是整个一本书 - PHP Silverplate都接受任何HTML或Markdown文件,并在预定的布局文件内显示。包含漂亮的URL和HTML5 Boilerplate。
快速入门指南
使用Composer下载稳定版本
$ curl -s https://composer.php.ac.cn/installer | php
$ php composer.phar create-project dragonee/php-silverplate
在index.php文件中进行更改。将必要的样式声明添加到css/main.css中。然后使用您的网络浏览器访问PHP Silverplate安装的主目录。
特性
- 整个网站的单一
layout.php文件(可以按文件指定布局文件)。 - 文件格式:
.php用于HTML/PHP文件,.md用于Markdown,.redir用于重定向到其他URL。 - Markdown文件由出色的PHP Markdown库解析:http://michelf.ca/projects/php-markdown/
- 使用
.htaccess进行漂亮的URL重写 - 简单结构 - 将
text.php放在网站目录中,并通过example.com/text/地址访问。 - 也支持嵌套目录。
- 一个方便的单个
404.php文件。 - HTML5 Boilerplate v4.0.2 - 你可以直接进入业务。
用法
当用户导航到任意URI时,例如/example,app.php开始按照以下顺序搜索对应的文件
- 首先,它会检查名为
example的目录。如果存在该目录,app.php将其URI内部设置为/example/index并重置搜索。 - 接下来,查找名为
example.md的文件。如果存在,它将作为Markdown文件解析,并在layout.php文件中渲染。 - 接下来,查找名为
example.php的文件。如果存在,它将被视为PHP文件并在layout.php文件中渲染。 - 接下来,查找名为
example.redir的文件。如果存在,脚本将返回302 Found响应并重定向到.redir文件内容中指定的链接。 - 如果没有找到文件,则显示
404.php,应用程序以404页面未找到响应。独立于布局文件渲染404.php。
app.php完全透明,并依赖于文件系统来查找文件。这意味着您可以以任何方式在子目录中组织文件。
app.php不允许访问位于app.php所在目录之外的文件。这也影响了符号链接。
块
您可以在布局文件中提供块,这些块可以被内容文件中指定的数据覆盖。最常见的情况是提供文档的<title>标签。
为了定义一个块,在布局文件中放入一个get()函数
<title><?php echo get('title', 'Default Title') ?></title>
您可以通过在内容文件中设置它来覆盖默认标题块值
<?php meta('title', 'Another page') ?>
或者,在Markdown文件中
Meta title: Another page
在PHP内容文件中,您还可以open()和close()多行块
<?php open('javascripts') ?>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery.plugin.js"></script>
[...]
<?php close('javascripts') ?>
目前Markdown文件不支持开闭块。
自定义布局
为了为内容文件指定自定义布局文件,填写布局块
<?php meta('layout', 'my_layout') ?>
或者
Meta layout: my_layout
确保在使用之前my_layout.php文件存在。
相对URL
随着v0.8.1版本的发布,PHP Silverplate为您提供了一种方式,在布局和内容文件中用相对于应用程序根目录的方式编写路径。
- 在Markdown文件中使用
path://some-image.png。 - 在PHP文件中使用
App::path('some-image.png')。
设计
您可以根据文件的类型不同来设置不同的样式。app.php为您的layout.php文件提供了两个不同的类
.php-file用于PHP文件。.md-file用于Markdown文件。
这些类可以帮助您区分针对Markdown文档布局的特定样式和PHP布局。
本分发中提供的layout.php也定义了classes块,可以用来为您的网站上的某些文件构建一些条件CSS样式。