Hexo主题实现多级分类显示

前言

最近在搞一个博客,是托管在githubgitcafe上的,利用Hexo生成的。
之后,发现一个问题,显示的分类都是一级的。而我想要的是:能显示多级分类,层次分明`的那样。

问题

基本主题自带的分类显示都是一级的,如何显示多级?

解决方案

所以,研究了一下,找到了理想的方法,方法如下:

  1. 利用系统的list_categories([categories], [options])辅助函数生成分类列表;

  2. 利用css实现样式.

示例

说明:我使用的是jacman主题,以这个主题为例说明。

  1. 在主题文件夹下找到layout/_widget/category.ejs文件,内容如下:
<% if (site.categories.length){ %>
<div class="categorieslist">
  <p class="asidetitle"><%= __('categories') %></p>
      <ul>
      <% site.categories.sort('name').each(function(item){ %>
        <% if(item.posts.length){ %>
          <li><a href="<%- config.root %><%- item.path %>" title="<%= item.name %>"><%= item.name %><sup><%= item.posts.length %></sup></a></li>
        <% } %>
      <% }); %>
      </ul>
</div>
<% } %>
  1. 修改内容,利用上面提到的list_categories([categories], [options])辅助函数:
<% if (site.categories.length){ %>
<div class="category-block">
  <h3 class="asidetitle"><%= __('categories') %></h3>
     <%- list_categories(site.categories) %>
</div>
<% } %>
  1. 修改样式文件
  • 在主题文件夹下找到source/css/_partial/aside.styl文件,其他的也可能是source/css/_partial/sidebar.styl。反正,能在页面显示即可。

  • 添加新的样式,我的如下:

//categories
.category-block>ul>li
  border-bottom 1px solid #ccc
.category-block li
  margin-bottom 8px
.category-list
  @media mini
    width 45%
    float left
    margin 0 5% 0 0
  @media tablet
    width 100%
    float none
    margin .5em 0 0
  .categoriy-list-item
    padding .5em 5%
  .category-list-count
    top -.5em
    padding-left .3em
    font-size 75%
    line-height 0
    position relative
    vertical-align baseline
  ul, ol, dl
    list-style none
  ul, ol, dl
    background-color #f9f9fa
    margin-left 20px
    li
      border-bottom 1px dashed #ccc
  .category-list-child
    border-top 1px dashed #ccc
    margin-bottom 8px

想实现不同的样式,自己可以修改。

效果图

效果图
效果图

markdown写法如下

---
title: Hexo主题实现多级分类显示
categories:
- 前端
- Hexo
tags:
- 前端
- Hexo
date: 2016-01-24 21:46:07
---

原文来自:seay.me

本文采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
基于简书上的作品创作。 可转载、引用,但需经本人同意后署名作者且注明文章出处,并以相同方式共享。

知识共享许可协议
知识共享许可协议

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 1,891评论 0 1
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,195评论 0 11
  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 概念:在CSS当...
    饥人谷_任磊阅读 679评论 0 3
  • 山间的花儿 行走在大山间,我望到了山的雄伟、秀丽,看到了石的巨大、怪异,我更欣赏了山间花儿的多姿多彩、纯真自然! ...
    六月_cef1阅读 695评论 0 6
  • 恰好凉透的柠檬水 澄清我和杯子的误会 白板上的涂鸦开始褪色 描了几笔后彻底作废 庸庸碌碌被琐事品味 相对的真实太显...
    DK314阅读 194评论 0 1