在Hexo页面中,将某些页面中需要重复更新、重复使用的数据信息从页面中分离出来,放入到source/_data
中,把所有需要经常更新的数据都放到数据文件下,便于查找及更新,例如,导航页的网站信息、Windows软件信息。
数据文件
有时您可能需要在主题中使用某些资料,而这些资料并不在文章内,并且是需要重复使用的,那么您可以考虑使用 Hexo 3.0 新增的「数据文件」功能。此功能会载入 source/_data
内的 YAML 或 JSON 文件,如此一来您便能在网站中复用这些文件了。
举例来说,在 source/_data
文件夹中新建 menu.yml
文件:
Home: /
Gallery: /gallery/
Archives: /archives/
您就能在模板中使用这些资料:
<% for (var link in site.data.menu) { %>
<a href="<%= site.data.menu[link] %>"> <%= link %> </a>
<% } %>
渲染结果如下 :
<a href="/"> Home </a>
<a href="/gallery/"> Gallery </a>
<a href="/archives/"> Archives </a>
实例
导航页网站数据文件
导航页各个网站的数据信息原本都存放在主题目录下的_config.yml文件中。
网站数量较多,放在主题目录下容易与其他配置项冗杂在一起。
source/_data文件下新建文件navsites.yml
将主题下的配置文件中的导航配置项剪切至navsites.yml
中
修改导航页面代码,定位到新文件中navsites.yml
中
将导航nav.ejs页面下所有涉及网站数据信息的路径进行替换,即将theme.navmenu替换site.data.navsites.navmenu、theme.navlogo替换site.data.navsites.navlogo、theme.navabout替换site.data.navsites.navabout等等,如下所示:
<!-- e=theme.navmenu -->
<% for( let e of theme.navmenu ) { %>
theme替换为site.data.navsites
<!-- e=site.data.navsites.navmenu -->
<% for( let e of site.data.navsites.navmenu ) { %>