zoukankan      html  css  js  c++  java
  • 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>
      <% } %>
    2. 修改内容,利用上面提到的list_categories([categories], [options])辅助函数:

      <% if (site.categories.length){ %>
      <div class="category-block">
        <h3 class="asidetitle"><%= __('categories') %></h3>
           <%- list_categories(site.categories) %>
      </div>
      <% } %>
    3. 修改样式文件

    • 在主题文件夹下找到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

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

    效果图

    原文来自:http://git.seay.me

  • 相关阅读:
    NameError: name 'picamera' is not defined
    Linux 键盘输入#的时候变成£
    AngularJS之高级Route【三】(八)
    AngularJS之中级Route【二】(七)
    AngularJS之初级Route【一】(六)
    AngularJS之Dependency Injection(五)
    AngularJS之Service(四)
    AngularJS之Filter(二)
    AngularJS之Scope及Controller(一)
    JQuery利用sort对DOM元素进行排序
  • 原文地址:https://www.cnblogs.com/seayxu/p/5156669.html
Copyright © 2011-2022 走看看