为了seo外链,友情链接模块当然是必不可少的。pacman这个主题也是支持友情链接模块的,于是看了一下它的配置(themes/pacman/_config.yml
),发现相关配置有这么一段描述:
modify links in
/layout/_widget/links.ejs
.
然后打开了这个文件后发现内容是:
<div class="linkslist">
<p class="asidetitle"><%= __('links') %></p>
<ul>
<li><a href="http://jimliu.net" target="_blank" title="Again, Jim Liu's Blog">Jim Liu's Blog</a></li>
<li><a href="http://hexo.io" target="_blank" title="Hexo">Hexo</a></li>
</ul>
</div>
我擦,我的狗眼,这也太麻烦了吧,要自己手写html,每次加新链接时简直蛋疼啊。虽然不是很懂EJS,不过凭借着大学时代多年的Java Web开发经验,还是看得懂这个模板的,研究了一下同目录的categories.ejs
,发现要想实现配置化似乎并不难。全局配置_config.yml
会对象化成模板里的config
对象,于是查了一下YAML的数组写法,果断在全局的_config.yml
后面添加links
配置:
# for links
links:
- url: http://jimliu.net
name: Jim Liu's Blog
title: Again, Jim Liu's Blog
- url: http://github.com
name: github
title: 本博客托管在github pages
- url: http://hexo.io
name: hexo
title: 本博客使用hexo搭建
然后修改links.ejs
文件内容如下即可:
<% if (config.links && config.links.length) { %>
<div class="linkslist">
<p class="asidetitle"><%= __('links') %></p>
<ul>
<% config.links.forEach(function(item) { %>
<li><a href="<%= item.url %>" target="_blank" title="<%= item.title %>"><%= item.name %></a></li>
<% }); %>
</ul>
</div>
<% } %>
在遍历数组元素时,categories.ejs
使用的是each方法,但我照抄之后发现报错,莫非分类不是对象化成数组了?Anyway, 改成JS的forEach之后就可以用了。