11.Hexo if语句与forEach语句的使用

if语句

if语句是可以插入到layout里的小代码片段
来帮助layout做决定
当满足某些条件时,可以做某些事情
当不满足某些条件时,可以做其他事情

![[Pasted image 20240419164941.png]]

打开post.ejs
post.ejs是网站布局的一部分,用于网站上所有的博客文章

现在有两个博客文档,a.md和b.md
![[Pasted image 20240419165224.png]]

a.md作者是ChoSeitaku
![[Pasted image 20240419165309.png]]

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
<% } %>

![[Pasted image 20240419170044.png]]

![[Pasted image 20240419170108.png]]

if语句还可以用来判断其他东西

<% if(page.author) { %>
	ChoSeitaku is the author, he's the best
<% } else { %>
	this author sucks
<% } %>

这样就会判断作者是否被设置
![[Pasted image 20240419170352.png]]

因为b.md设置了作者
如果删除了b.md的作者,就会输出另一句

forEach语句

![[Pasted image 20240419170728.png]]

打开layout文件夹里的index.ejs文件

现在同样有a和b两篇博客要使用

在网站主页上
比如要显示在post文件夹中的所有的博客文章
可以使用forEach来实现

结构
<% site.posts.forEach(function(post) { %>

<% } ) %>

对于网站上所有的博客文章,要设置一个function函数
向函数传递一个变量post
这个变量post将代表每个循环执行此操作时迭代的单个帖子
这个post将代表Hexo目前正在查看的博客

在循环的内部,可以输入想要执行的操作
比如打印出网站上所有的帖子
![[Pasted image 20240419171716.png]]

刷新主页
![[Pasted image 20240419172017.png]]

可以添加一个换行标志
![[Pasted image 20240419172053.png]]

![[Pasted image 20240419172119.png]]

这样就列出了网站中的所有博客

创建一个导航列表
This is index.ejs file

<% site.posts.forEach(function(post) { %>
    <li><a href="<%- post.path %>"><%- post.title %></a></li>
<% } ) %>

创建一个列表,将链接放进去,并且在链接的内部放入标题
![[Pasted image 20240419172431.png]]

<% site.posts.forEach(function(post) { %>

切换site.后面的内容可以访问到网站里的不同实体

  • pages
  • tags
  • categories

forEach会循环遍历所有实体,可以通过引用访问它们的各个变量,通过传递给function()函数的变量

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值