Hexo 设置首页隐藏指定文章

有时候我们可能只想在首页显示关于编程之类的内容,而个人日记之类的文章放在其他分类之下而不在首页显示。可以从、分类、标签、归档中查看文章。
原文地址:Hexo 设置首页隐藏指定文章

自定义front-matter的参数

例如,自定义添加一个notshow参数,值为true,用来提供判断

---
title: 《好好学习》—黄金思维圈
date: 2018-06-12 11:45:43
tags:
- read
categories:
- read
notshow: true
---

front-matter就是每次hexo new "post_name"创建的文章里面的开头。
创建的文章存放在hexo根目录下的:source/_posts

修改主题的index.swig

主题可能各不一样,但原理都是一样的,我拿我使用的next主题来示范。
路径:Hexo\themes\next\layout\index.swig

{% extends '_layout.swig' %}
{% import '_macro/post.swig' as post_template %}
{% import '_macro/sidebar.swig' as sidebar_template %}

{% block title %}{{ config.title }}{% if theme.index_with_subtitle and config.subtitle %} - {{config.subtitle }}{% endif %}{% endblock %}

{% block page_class %}
  {% if is_home() %}page-home{% endif -%}
{% endblock %}

{% block content %}
  
{% for post in page.posts %} {{ post_template.render(post, true) }} {% endfor %}
{% include '_partials/pagination.swig' %} {% endblock %} {% block sidebar %} {{ sidebar_template.render(false) }} {% endblock %}

修改这里:

{% block content %}
  
{% for post in page.posts %} {{ post_template.render(post, true) }} {% endfor %}
{% include '_partials/pagination.swig' %} {% endblock %

改成:

{% block content %}
  
{% for post in page.posts %} {% if post.notshow != true %} {{ post_template.render(post, true) }} {% endif %} {% endfor %}
{% include '_partials/pagination.swig' %} {% endblock %}

在for循环迭代文章中判断文章中的属性notshow,如果不为true就打印出文章。所以在需要隐藏的文章front-matter中添加notshow:true就可以了。

添加自定义菜单

比如我想在菜单栏添加一个“阅读”选项,但又不想新建自己一个页面,于是可以直接使用分类的页面。
创建新文章的时候直接指定categories: read配置

---
title: 《好好学习》—黄金思维圈
date: 2018-06-12 11:45:43
tags:
- read
categories:
- read
notshow: true
---

在git中使用hexo g命令,hexo会在根目录/public/categrises下自动生成分类中的阅读文件夹
然后,
配置主题配置文件themes/_config.yml中添加以下代码(#号后为注释内容)

menu:
  home: / || home
  about: /about/ || user
  tags: /tags/ || tags
  categories: /categories/ || th
  read: /categories/read  #指定分类中阅读的路径
image

你可能感兴趣的:(Hexo 设置首页隐藏指定文章)