当初用wordpress也遇到了友情链接首页显示问题,百度一下就很容易解决了,但百度一下hexo的友情链接只在首页显示却没有发现相关解决的帖子,由于next主题每个页面都有站点概览,这个主题可以通过主题配置文件设置友情链接,友情链接就会在站点概览下面显示即全站友情链接,于是就习惯的还是从网站首页底部设置友情链接,就对/next/layout/index.swig进行修改,以前也接触过类似swig的模板引擎,虽然看着挺陌生,但还是尝试修改了一下<!--more-->

  {% block footer %}
  友情链接展示
  {% endblock %}

由于对自适应代码不熟,手机上显示效果不咋地,就又折腾了一上午,就想着为啥主题文件可以直接设置下就可以直接显示链接了,就看了下站点概览处的link代码/next/layout/_macro/sidebar.swig如下:

{# Blogroll #}
    {% if theme.links %}
        ....
    {% endif %}

一看一目了然了,只要配置文件中设置了link属性,theme.links就是true,就想当然了修改为

{% if theme.links && theme.indexlink=='1'%}

然后在/next/layout/index.swig首页模板下修改如下:

  {% block sidebar %}
  {% set theme.indexlink="1" %}    
  {{ sidebar_template.render(false) }}
  {% endblock %}

这样设置后还是不可以,就想是不是theme.indexlink值没有传递过去,看了半天,想到theme.links说明theme是个类,我不能直接想当然的theme.indexlink,因为theme类中根本就没有这个属性,所以我改成如下就顺利的实现了只有首页显示友情链接了。

  {# Blogroll #}
   {% if theme.links && indexlink=='true' %}
       ....
   {% endif %}
       
  {% block sidebar %}
  
  {% set indexlink="true" %}    
  {{ sidebar_template.render(false) }}
  {% endblock %}