if语句
if语句是可以插入到layout里的小代码片段
来帮助layout做决定
当满足某些条件时,可以做某些事情
当不满足某些条件时,可以做其他事情
打开post.ejs
post.ejs是网站布局的一部分,用于网站上所有的博客文章
现在有两个博客文档,a.md和b.md
a.md作者是ChoSeitaku
b.md的作者是YiyuKongming
如果想在作者是ChoSeitaku时打印一些代码
不是ChoSeitaku时打印另一些代码
可以使用if语句
结构
<% if( page.author == "ChoSeitaku") { %>
<% } else { %>
<% } %>
可以往里面添加想要执行的代码
<% if( page.author == "ChoSeitaku") { %>
ChoSeitaku is the author, he's the best
<% } else { %>
this author sucks
<% } %>
if语句还可以用来判断其他东西
<% if(page.author) { %>
ChoSeitaku is the author, he's the best
<% } else { %>
this author sucks
<% } %>
这样就会判断作者是否被设置
因为b.md设置了作者
如果删除了b.md的作者,就会输出另一句
forEach语句
打开layout文件夹里的index.ejs文件
现在同样有a和b两篇博客要使用
在网站主页上
比如要显示在post文件夹中的所有的博客文章
可以使用forEach来实现
结构
<% site.posts.forEach(function(post) { %>
<% } ) %>
对于网站上所有的博客文章,要设置一个function函数
向函数传递一个变量post
这个变量post将代表每个循环执行此操作时迭代的单个帖子
这个post将代表Hexo目前正在查看的博客
在循环的内部,可以输入想要执行的操作
比如打印出网站上所有的帖子
刷新主页
可以添加一个换行标志
这样就列出了网站中的所有博客
创建一个导航列表
This is index.ejs file
<% site.posts.forEach(function(post) { %>
<li><a href="<%- post.path %>"><%- post.title %></a></li>
<% } ) %>
创建一个列表,将链接放进去,并且在链接的内部放入标题
<% site.posts.forEach(function(post) { %>
切换site.后面的内容可以访问到网站里的不同实体
- pages
- tags
- categories
forEach会循环遍历所有实体,可以通过引用访问它们的各个变量,通过传递给function()函数的变量