Skip to content

Jamling/hexo-generator-index2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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/web/
    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/web/
    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 [hexo-generator-index]: https://github.com/hexojs/hexo-generator-index [hexo-generator-index2]: https://github.com/Jamling/hexo-generator-index2 [Hexo]: http://hexo.io/