maddy83 / stagger
Requires
- league/commonmark: ^2.0
- scrivo/highlight.php: ^9.0
- symfony/yaml: ^6.0
- twig/twig: ^3.0
README
Stagger是一个用PHP编写的极简静态网站生成器。
它使用Markdown作为内容,YAML作为配置,以及Twig作为HTML模板。
此软件包已从maddy83/stagger重命名为peklaiho/stagger,并从Bitbucket迁移到Github。请过渡到使用其他软件包而不是此软件包。
原因
市面上有很多静态网站生成器,但许多流行的生成器在创建简单网站或博客时过于复杂。它们功能过多,包含数百页的文档。这意味着你需要花很多时间去学习如何使用这个工具,而不是仅仅使用工具,并将这些时间花在创建网站内容上。
与此相反,Stagger旨在保持极简,具有最少的功能集和此README文件作为唯一的文档。目标是让你能够立即开始编写内容,并在配置或阅读文档上花费最少的时间。
示例网站
Stagger包含一个位于sites/example的示例网站,它展示了具有一些示例页面和博客文章的网站结构。只有一个配置文件,即位于根目录中的site.yml文件。页面位于pages目录中,每个页面都有自己的子目录。如果子目录包含blog.md、page.md或post.md,它将被识别为博客索引、普通页面或博客文章。
示例网站使用Spectre.css。它为CSS样式提供了一些合理的默认值,是一个很好的起点。你可以选择使用或不使用它。
要求
要使用Stagger创建网站,你需要了解HTML、CSS和Markdown。除非你想修改工具的内部结构,否则不需要PHP知识。
你需要命令行界面来使用Stagger。最好是Linux或Mac中的Bash之类的shell。
首先,请确保在命令行上安装了PHP
$ php --version
PHP 8.0.8 (cli) (built: Jun 29 2021 16:09:21) ( NTS )
其次,请确保你已经安装了Composer。如果没有,请按照说明进行操作。
$ composer --version
Composer version 2.1.3 2021-06-09 16:31:20
基本使用
要开始,请使用Composer创建一个新项目
$ composer create-project maddy83/stagger mysite
Creating a "maddy83/stagger" project at "./mysite"
$ cd mysite
你可以这样生成示例网站
$ bin/stagger example
...
Generated site in /home/pekka/mysite/bin/../output/example.
完成的网站位于output/example。你可以使用PHP内置的Web服务器来查看它
$ php -S 127.0.0.1:8000 -t output/example/
[Sun Jul 25 12:20:26 2021] PHP 8.0.8 Development Server (http://127.0.0.1:8000) started
在您的网络浏览器中导航到http://127.0.0.1:8000。
这就是全部内容!将sites/example中的文件与output/example中的文件进行比较,以了解工具的工作方式。大部分内容应该是相当明显的。
你可以复制示例网站来获得构建自己网站的起点
$ cd sites
$ cp -r example mysite
高级使用
使用 highlight.php 在服务器端实现代码的语法高亮,因此无需JavaScript。从 vendor/scrivo/highlight.php/styles 目录中选择一个CSS文件并将其包含在您的网站中。
如果您需要Markdown的附加功能,请查看可启用的 CommonMark 扩展。
代码
代码行数低于1000行(包括注释和空行),并将保持在这个限制之下。
它包含5个类,用于表示处理过程中网站的数据
- Site - 网站的总体
- Page - 普通页面
- Blog - 博客文章的索引页面
- Post - 博客文章
- File - 普通文件(CSS、JS、图片等)
其他类包含主要功能。它们大致按以下顺序使用
- Parser - 读取网站并解析site.yml文件
- Reader - 读取文件并处理Markdown内容
- Validator - 检查网站不包含错误
- Generator - 将网站写入磁盘
- Processor - 在写入之前操作HTML代码
限制
目前Stagger仅支持位于域名根目录的网站。为了正确生成链接和URL,支持子目录中的网站需要进行一些小的修改。
在Windows上的功能尚未经过测试,可能需要一些小的修改来处理不同的目录分隔符。
许可证
如果您使用此工具创建网站,如果您能在此repo中添加提及(例如“使用Stagger制作”或类似),将不胜感激。谢谢!