elazar/scribing

一个简单的静态博客生成器

0.6.0 2017-06-18 14:44 UTC

This package is auto-updated.

Last update: 2024-08-29 03:37:27 UTC


README

Scribing 是一个简单的静态博客生成器,或 静态站点生成器,使用 PHP 编写,旨在生成博客。

安装

使用 Composer

composer require elazar/scribing

示例

如果您想查看使用 Scribing 的网站示例,请查看 此存储库

内容

Scribing 的内容使用 Common Markdown 编写。

Scribing 支持两种文档类型:文章和页面。

文章

文章包括一个顶级标题,包含一个标题,后跟一个用强调格式化的日期。

# Post Title

*September 28, 2017*

Content goes here

Scribing 为每篇文章构建一个单独的文件,并在存档页面上包含对其的链接。其路径来自 Markdown 内容文件中包含的日期和标题。

页面

页面包括一个顶级标题,但与文章不同,它们不是日期特定的。通常,它们的内容很少更改。

# Page Title

Content goes here

Scribing 在基于 Markdown 内容文件名称的路径上为每个页面构建一个文件。

设计

Scribing 使用 Plates 模板引擎。

当运行时,Scribing 需要指定一个模板路径。此路径必须引用包含两个 Plates 模板文件的目录:布局模板和存档页面模板。

布局模板

layout.php 用作文章和页面的布局模板。

从 Markdown 内容生成的 HTML 传递到 $content 变量。

顶级标题传递到 $title 变量。它可以在文档的 <title> 标签中使用。

存档模板

archive.php 用于生成存档页面的内容。与其它页面的内容不同,存档页面的内容是从文章内容文件中包含的数据生成的,而不是在 Markdown 中手动创建。

一个以年份为键的文章关联数组传递到 $posts,其中每个年份引用的是该年份的文章枚举数组。每篇文章由一个包含 'date''url''title' 键的关联数组表示。

公共数据

对于需要在模板之间共享的任何公共数据,例如导航,创建一个返回数据数组的 PHP 文件。

return [
    'nav' => [
        '/' => 'Home',
        '/archive' => 'Archive',
        // ...
    ],
];

生成站点

要基于您创建的文章和页面内容文件以及 Plates 模板文件生成博客的静态文件,您使用 scribing 控制台命令。

文章和页面

scribing 支持多个子命令,其中两个是:build:postsbuild:pages。两者使用相同的参数。

build:posts [--templateData=path/to/data.php] <sourcePath> <destinationPath> <templatePath>

--templateData 是可选的,用于指定公共数据文件的路径,如果需要的话。

<sourcePath> 是包含文章或页面源文件的目录。

<destinationPath>scribing 将生成的文件存储的目录。

<templatePath> 是包含模板文件的目录。

要构建页面而不是文章,只需在上面的示例中将 build:pages 替换为 build:posts

订阅

要从帖子中构建一个源,scribing 支持一个 build:feed 子命令。

build:feed --feedTitle="Feed Title" --feedLink="https://example.com/feed.xml" <sourcePath> <destinationPath>

--feedTitle 是 Atom 格式所需的源标题

--feedLink 是 Atom 格式所需的源绝对 URL

<sourcePath> 是包含要包含在源中的帖子源文件的目录

<destinationPath>scribing 将存储源文件的目录

使用 GitHub Pages

如果您使用 Scribing 生成要在 GitHub Pages 上托管的网站,请设置一个存储您的内容、模板、样式表、图片等内容的仓库,该仓库与 GitHub 用于显示网站的仓库分开。

以下是一个推荐的目录结构

.
├── content
│   ├── pages
│   └── posts
├── images
├── scripts
├── styles
└── templates

上述大多数目录的目的应该是显而易见的。

scripts 目录旨在存放用于调整或部署 Scribing 生成文件的构建和实用脚本。

例如,Scribing 不处理样式表或内容许可文件,因此必须手动将这些文件复制到构建目录。

如果您想 创建一个自定义 404 页面,您可以像普通页面一样编写内容,然后将生成的文件移动到构建脚本中的适当位置,如下所示

mv build/404/index.html build/404.html ; rm -fR build/404

如果您想定位最新帖子并将其用作网站的着陆页,可以这样做

LATEST=`find build/ -type f | grep -E '[0-9]+' | grep -v '404' | sort -nr | head -n 1`
cp "$LATEST" build/index.html

以下是一些相关的资源,供您进一步阅读

许可证

Scribing 的源代码根据 MIT 许可证 许可。