10 09/2014

hexo 静态文件处理

最后更新: Wed Sep 10 2014 12:37:50 GMT+0800

感谢 youxiachai 的帮助,给出一个办法

这个需要在主题模板中里面处理.
例如,如果启用layout.ejs的话,可以用yaml 标注页面layout: fasle,然后在layout.ejs 里面加一个判断 <% if(page.layout === false) %>之类的 … #143 这里也有说明,当然,如果页面很多的话,那样的可以考虑建一个分类,然后,在主题渲染的入口文件,判断该分类不进行渲染

这个思路的确可行。缺点就是必须在那些不想被render的静态文件最开始,都加入

layout: false
---

而我不希望动这些 labs/*.htm,万一拷贝到其它地方,“layout: false” 可能会被显示出来。

我是这样修改 layout.ejs 的

<% if(page.layout=='page'){ %>
<% if(page.source.match(/\.md$/)){ %>

原来的内容

    <% }else{ %>
        <%- page.content %>
    <% } %>

<% }else{ %>

原来的内容

<% } %>
  • index.html 之类 page.layout==”undefined”
  • .js,.css 无后缀文件 不处理
  • A.htm,A.html,source 根目录下的 .md 都是 page.layout==”page”
  • source/_post 根目录下的 .md 都是 page.layout==”post”

如果是 page 并且是 .md 文件,处理,否则直接输出内容。

缺点

.htm 文件还是会被转为 .html 后缀!