thomas-redstone/site-build

此软件包最新版本(1.2.5)的许可证信息不可用。

一个简单的静态网站构建工具


README

SiteBuild旨在构建静态网站,其构建方式与构建动态网站相同。

它使用PHP,以及Plates PHP模板引擎,使事情保持简单。

对于每个网站,您需要创建一个如下的目录结构

- menus
- output
- pages
- resources
- themes

安装

composer global require thomas-redstone/site-build

将以下内容添加到您的.bashrc、.zshrc或任何需要修改路径变量的文件中!对于OSX或Linux,它可能如下所示:export PATH="$PATH:$HOME/.composer/vendor/bin"

我找到的最佳资源,解释如何修改路径,似乎来自Oracle的Java帮助页面,但对于PHP和composer仍然适用,因此如果您在Windows上,或几乎在任何操作系统上,以下内容应该会告诉您如何修改路径

https://java.com/en/download/help/path.xml

用法

首先,您必须确保在项目文件夹内存在一个包含站点名称的'app.yml'配置文件,例如。

name: ExampleSite

目前,此文件尚未使用,但必须存在,因为SiteBuild使用它作为确认正在正确目录中运行的依据。

接下来,运行sitebuild命令

sitebuild

此时,您应该有一个已填充的output目录。目录output/latest将始终包含最新生成的网站,您可以按照以下方式在本地测试它是否工作

cd output/latest && php -S localhost:8080

此时,您应该能够导航到https://:8080并查看您的网站。

菜单

菜单定义为.yml文件,目前只有一个主菜单将被使用,但计划在将来支持多个菜单。目前,主菜单应位于menus/main.yml中,格式如下

-
  url: "/"
  text: Home
-
  url: "/about"
  text: About

输出

生成的网站将放置在此处,目前每天都会有一个副本,这种行为可能会很快改变,并且将网站保留在版本控制中将是首选的方式,以确保始终可以回滚到以前的版本。

页面

网站内容位于pages目录中,这些文件都应该是.php文件,每个文件的开始部分应类似以下内容,模板将使用传递给它的数据来填充标题,并且提供的类将被应用于body元素,允许处理任何特定页面的样式。目前标签和日期字段未使用,但我计划不久后对其进行处理,它们是声明变量而非简单数组的原因之一,因为调用布局函数时声明了$config。

<?php
$config = [
    'tags' => ['Documentation'],
    'date' => '2015-12-11',
    'title' => 'Documentation',
    'class' => 'docs'
];
$this->layout('templates::template', $config);
?>

资源

放置在resources目录中的任何文件都将直接复制到输出目录,并保留任何文件夹结构,因此它是放置任何图像、样式表、javascript或其他资源的理想位置。

主题

主题位于模板本身的位置,我通常将我的主模板命名为'template',并有一个'menu',看起来如下

<ul class="nav nav-pills">
    <?php foreach($menu as $menuItem): ?>
        <li class='nav-item'><a class='nav-link' href='<?=$menuItem['url']?>'><?=$menuItem['text']?></a></li>
    <?php endforeach; ?>
</ul>

计划

我大约3年前开始这个项目,在那段时间的大部分时间里,我没有做很多事情,最近我开始对其进行现代化。

我希望添加的一些功能包括

  • 标签页面,使用单独页面中的标签
  • 支持多个菜单
  • 生成内容列表页面(如博客索引页面)
  • 自动将生成的网站推送到Amazon S3
  • 创建一个“示例项目”仓库,以便更容易开始

我很乐意听到任何反馈、错误报告或功能建议,所以请在问题跟踪器上提出问题,或者发送电子邮件至 thomas@redstone.me.uk