加载中...

Hexo(Matery)自定义(四):禁止搜索加密/隐藏文章内容


Hexo(Matery)自定义(四):禁止搜索加密/隐藏文章内容

注意事项

  • 我是用的搜索插件是:hexo-generator-search

  • 想法:一开始也没想到会发生这种事,我在为文章加密时会习惯性把密码写在内容顶部,今天试下搜索功能,结果直接把我密码显示出来了,已经加密或者已经隐藏的文章,还能在搜索中显示,这样的话只要查看search.xml文件,那文章加密和隐藏就完全失去作用

更改模板

直接打开网站根目录下的 node_modules/hexo-generator-search/templates/search.xml 文件,更改内容为:

<?xml version="1.0" encoding="utf-8"?>
<search> 
  {% if posts %}
  {% for post in posts.toArray() %}
    {% if post.indexing == undefined or post.indexing %}
    {% if post.hide != true %}
    {% if not (post.password and post.password.length > 0) %}
    <entry>
      <title>{{ post.title }}</title>
      <link href="{{ (url + post.path) | uriencode }}"/>
      <url>{{ (url + post.path) | uriencode }}</url>
      {% if content %}
        <content type="html"><![CDATA[{{ post.content | noControlChars | safe }}]]></content>
      {% endif %}
      {% if post.categories and post.categories.length>0 %}
      <categories>
          {% for cate in post.categories.toArray() %}
          <category> {{ cate.name }} </category>
          {% endfor %}
      </categories>
      {% endif %}
      {% if post.tags and post.tags.length>0 %}
        <tags>
            {% for tag in post.tags.toArray() %}
            <tag> {{ tag.name }} </tag>
            {% endfor %}
        </tags>
      {% endif %}
    </entry>
    {% endif %}
    {% endif %}
    {% endif %}
  {% endfor %}
  {% endif %}

  {% if pages %}
    {% for page in pages.toArray() %}
    {% if post.indexing == undefined or post.indexing %}
    <entry>
      <title>{{ page.title }}</title>
      <link href="{{ (url + page.path) | uriencode }}"/>
      <url>{{ (url + page.path) | uriencode }}</url>
      {% if content %}
        <content type="html"><![CDATA[{{ page.content | noControlChars | safe }}]]></content>
      {% endif %}
    </entry>
    {% endif %}
    {% endfor %}
  {% endif %}
</search>

然后重新生成文件,发现search.xml文件中已经没有加密和隐藏文章了,Over!


文章作者: 知蝉
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 知蝉 !
评论
  目录