# 模版

主题中至少需要包含 index、view、editor 三个模版。

模板 用途
index 首页
view 代码片段预览
editor 代码片段编辑器
layout 顶级模版

# 布局

如果页面结构类似,例如两个模板都有页首(Header)和页脚(Footer),您可考虑通过「布局」让两个模板共享相同的结构。一个布局文件必须要能显示 body 变量的内容,如此一来模板的内容才会被显示,举例来说:

index.ejs

Hello Word

layout.ejs

<!DOCTYPE html>
<html>
  <body><%- body %></body>
</html>

生成

<!DOCTYPE html>
<html>
  <body>Hello Word</body>
</html>

每个模板都默认使用 layout 布局,您可在 front-matter 指定其他布局,或是设为 false 来关闭布局功能,您甚至可在布局中再使用其他布局来建立嵌套布局。

# 局部模版

您也可以使用局部模版来提前一些公共模块,例如你可以将 headheaderfooter 提取局部模版。

EJS模版引擎示例:

head.ejg

<meta name="keywords" content="<%= !!page.keywords ? page.keywords : config.site.keywords %>">
<meta name="description" content="<%= !!page.description ? page.description : config.site.description %>">
<title>
    <%= (!!page.title ? page.title : config.site.title) %>
</title>

index.ejs

<head>
    <%- include('head') %>
</head>

生成:

<head>
    <meta name="keywords" content="keywords">
    <meta name="description" content="description">
    <title>title</title>
</head>

其他模版引擎可以参看起具体语法。

最后更新: 2022-04-02 09:11:12