静态站是用豫言生成静态网站的库,用来代替 Jekyll。一个站点就是一个豫言程序:用本库读取源目录,再用豫言函数给页面套上布局,最后写出整个站点。页面的 Markdown 由「标记文」库转换。
包身份
所有者:豫言。包版本:0.1.0。本包为库类型,依赖标准库与标记文。
站点的组成
源目录里的文件分两种:
- 页面:以一行
---开头、到下一行---为止带有前言(front matter)的文件。Markdown 页面(.md、.markdown)在读取时转换成网页片段,其他页面保留原文。 - 静态文件:其余文件,按字节原样复制。
名字以 . 或 _ 开头的文件和目录默认跳过;排除列表里的路径也跳过;包含列表里的路径即使以 _ 开头也会处理(例如 Cloudflare 的 _redirects、_headers)。两个列表都写相对源目录的路径。
页面的网址:前言有 permalink 时用它;否则是“/”加相对路径,Markdown 文件的扩展名换成 .html。网址以“/”结尾时写到该目录的 index.html。网址一律直接用中文,不做百分号编码。
前言
每行写“键: 值”,值可以加单引号或双引号;# 开头的行是注释。「前言取」于 前言 于『键』 取值,没有这个键时得空串。「解析数据列」 解析平铺的映射列表(YAML 的“- 键: 值”写法),用来读取站点数据文件。
使用
寻观「标准库」之书。
寻观「静态站」之书。
「文件们」乃「列」于「站点文件」也。
「文件们」者「读取站点」于『源目录』于(「列」【『测试』】)于(「列」【『_redirects』】)也。
「套版」乃化「站点文件」而「字符串」也。
「套版」者会「件」而
鉴「件」而
有(「页面」于「相对」于「网址」于「页前言」于「页内容」)则
『<!doctype html><title>』附(「前言取」于「页前言」于『title』)附『</title>』附「页内容」
或有「其他」则『』
也。
「生成站点」于『源目录』于『输出目录』于『https://example.org』于「套版」于「文件们」。
「生成站点」 复制静态文件,用套版函数得到每个页面的完整网页并写出,再写 sitemap.xml;源目录没有 robots.txt 时也写一份指向站点地图的 robots.txt。站点地图收录以 .html 或“/”结尾的网址,末尾的 index.html 省略成目录。
其他导出:「页面网址」、「网址文件」、「站点地图」、「机器人说明」、「复制静态文件」、「写出页面」。
限制
前言只支持平铺的键值,不支持嵌套、多行值与流式写法。输出目录的父目录由 Node 宿主的写文件自动创建,其他宿主未必如此。代码里以“待办事项”注明。
测试
测试在 测试/,是独立的「静态站测试」包。在仓库根目录运行:
node 豫言操作系统/宿主/节点/宿主.cjs yy豫构.wasm 构建 静态站测试 静态站。测试 --输出 yy静态站测试.wasm -j 24
node 豫言操作系统/宿主/节点/宿主.cjs yy静态站测试.wasm