0.2.0 • Published 6 years ago

hexo-generator-index2 v0.2.0

Weekly downloads
114
License
MIT
Repository
github
Last release
6 years ago

Build Status node npm downloads npm version GitHub release

Introduction

Filtered index generator for Hexo. Add filter feature base on the official index generator and generate some specail posts to special folder.

简体中文

Installation

$ npm install hexo-generator-index2 --save
$ npm uninstall hexo-generator-index --save

Don't worry about the uninstallation, this plugin works same as offical index generator when no include/exclude options.

Options

# whether the hexo-generator-index2 include the offical hexo-generator-index, default is true
index2_include_index: true # defult is true

# the custom index2 generator, can be array or object
index2_generator:
  - layout: 'archive' # use existing archive layout
    path: 'web' # output to web folder: http://127.0.0.1:4000/
    per_page: 10
    order_by: -date
    include:
      - category Web # include article which category is Web
    exclude:
      - tag Hexo # exclude article which tag is Hexo
  - layout: 'index' # use existing index layout
    path: '' # output to root directory: http://127.0.0.1:4000/
    index: true # Set whether index, results is_home() is true or not
  • per_page: Posts displayed per page. (0 = disable pagination)
  • order_by: Posts order. (Order by date descending by default)
  • layout: Set the layout, default is index
  • path: Output path, if path is '', means output to the root directory (http://127.0.0.1:4000/ )
  • index: Home index or not, if true and the path is '', same to offical hexo-generator-index
  • include: Posts filter include option
  • exclude: Posts filter exclude option

The per_page and order_by is the offical index generator option, just keep it.

Include/exclude option is attribute value format, available attribute are:

  • category: Post category, if category_map used, please use the value of category_map instead
  • tag: Post tag, if tag_map used, please use the value of tag_map instead
  • path: Post source path

Usage

Advance offical hexo-generator-index

Simply

# whether the hexo-generator-index2 include the offical hexo-generator-index, default is true
index2_include_index: true # defult is true

Advance

index2_generator:
  - layout: 'index' # use existing index layout
    path: '' # output to root directory: http://127.0.0.1:4000/
    index: true # Set index true
    include: # include some path/category/tag
      - category Web # include article which category is Web
    exclude: # excluce some path/category/tag
      - tag Hexo # exclude article which tag is Hexo

Special

Generate special articles to specific folder. Such as list articles witch category is Web to http://127.0.0.1/web/

index2_generator:
  - layout: 'index' # use existing archive layout
    path: 'web' # output to web folder: http://127.0.0.1:4000/
    per_page: 10
    order_by: -date
    include:
      - category Web # include article which category is Web

is_home2()

Use is_home2() to judge whether the page is generated by index2 generator.

    {%- block page-main %}
    {%- if is_home() || is_home2() %}
    {{ partial('post/index') }}
    {%- elseif is_archive() || is_category() || is_tag() %}
    {{ partial('post/archive') }}
    {%- elseif is_post() %}
    {{ partial('post/article', {layout_type: 'post'}) }}
    {%- endif %}
    {%- endblock %}

License

MIT