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!