静态网站生成器 Jigsaw 发布 V1.0
发布日期:作者: Eric L. Barnes
Jigsaw 是由 Tighten 开发的静态网站生成器,刚刚发布了包含集合功能的 V1.0 版本。这些功能允许您处理一系列相关内容,例如博客文章、作品集、员工简介等等。
与早期版本一样,Jigsaw 仍然基于 Blade 运行,因此您可以继续使用您熟悉的语法来构建模板。这与 Markdown 内容相结合,使得创建所需内容变得非常容易。
“与 Jigsaw 的核心功能一样,集合的设计尽可能简单易用,”Keith Damiani 在发布公告中说道,“同时,它也为您提供了构建相当高级网站的强大功能和灵活性。”
以下是一个用于设置新集合的配置示例:
return [ 'company' => 'Tighten Co', 'contact_email' => '[email protected]', 'collections' => [ 'people' => [ 'path' => 'people', 'sort' => 'last_name', ], 'posts' => [ 'path' => 'blog/{date|Y-m-d}/{filename}', 'author' => 'Tighten Co.', ], ],];
在这个示例中,“人员”按 last_name 排序,last_name 将在 Markdown 文件的 YAML 前置内容中定义。然后,“文章”使用带日期戳的动态文件夹路径,并默认将作者设置为 Tighten Co.,这是 YAML 前置内容的回退值。
Jigsaw 分页
V1.0 还包含一个分页系统,该系统直接在 Blade 文件中定义。
// posts.blade.php---pagination: collection: posts perPage: 5---@extends('_layouts.master')
然后您的视图可以访问一个名为 $pagination
的对象,其中包含创建高级分页所需的一切。
Jigsaw 变量和辅助函数
我在上面简要提到了变量,其中“文章”集合在 YAML 前置内容中未定义作者时使用回退作者。此外,还有一个新的辅助函数系统,可以直接在配置文件中使用。
return [ 'excerpt' => function ($page, $characters = 100) { return substr($page->getContent(), 0, $characters); }, 'collections' => [ 'posts' => [ 'excerpt' => function ($page, $characters = 50) { return substr(strip_tags($page->getContent()), 0, $characters); }, ], ],];
在这个示例中,第一个 excerpt
将字符限制为默认的 100 个,而在“文章”集合中,它通过剥离 HTML 标签并默认限制为 50 个字符来覆盖第一个限制。
结论
当我第一次在 2015 年 12 月看到 Jigsaw 时,我对它的可能性感到兴奋,因为所有的一切都感觉非常容易。由于使用了 Blade,它拥有我熟悉的模板语法,这意味着我不必再学习其他模板系统;它使用 Gulp 和 Elixir,甚至还提供了一个类似于 Artisan 的 jigsaw
控制台命令。
随着集合功能的加入,这款静态网站生成器将成为您构建下一个网站甚至博客的绝佳工具。有关 Jigsaw 的更多信息,您可以阅读 Tighten 的 发布公告 并访问 官方网站。