Filtered index generator for [Hexo]. Add filter feature base on the official index generator and generate some specail posts to special folder.
$ 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.
# 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 thepath
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 ofcategory_map
instead - tag: Post tag, if
tag_map
used, please use the value oftag_map
instead - path: Post source path
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
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
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 %}
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/