hexo/pacman的友情链接模块实现配置化


为了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之后就可以用了。

说句闲话,当年把玩node.js时,选择的模板引擎是jade,主要就是看EJS的写法和JSP实在太像了,看着蛋疼……


文章作者: Odin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Odin !
  目录