hexo-generator-index2-customized

Filtered index generator for Hexo.

Usage no npm install needed!

<script type="module">
  import hexoGeneratorIndex2Customized from 'https://cdn.skypack.dev/hexo-generator-index2-customized';
</script>

README

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/