--- layout: post title: "为 Jekyll 加上简单搜索功能" description: "使用静态博客,除却棘手的评论功能,搜索功能也是个问题。想要实现全文搜索功能不难,在不借助外力的条件下只能用 JS,搜索便必须遍历所有文章内容,文章内容少还好,多了就不是很合适。" date: 2017-05-11 19:28:55+0800 category: tech thumb: IMG_PATH/js.svg tags: [JavaScript, Jekyll] --- * toc {:toc} 使用静态博客,除却棘手的评论功能,搜索功能也是个问题。想要实现全文搜索功能不难,在不借助外力的条件下只能用 JS,搜索便必须遍历所有文章内容,文章内容少还好,多了就不是很合适。 鄙人写了这么多年博客,博文也没几篇,之前一直觉得没有必要搞什么搜索功能,其实是懒。 简单的标题搜索实现十分简单,想到归档页面本身就加载所有文章标题,何不直接扔个搜索框在归档页面呢?就简单写下。 ## 页面代码 本博客的归档页面源码如下: ```liquid{% raw %} {% for post in site.posts %} {% unless post %} {% else %} {% capture year %}{{ post.date | date: '%Y' }}{% endcapture %} {% capture nyear %}{{ post.next.date | date: '%Y' }}{% endcapture %} {% if year != nyear %} ## {{ post.date | date: '%Y' }} {:class="archive-title"} {% endif %} {% endunless %} * {{ post.date | date: "%m-%d" }} » [{{ post.title }}]({{ post.url }} "{{ post.title }}"){:.archive-item-link} {% endfor %} {% endraw %}``` 经 Jekyll 渲染生成后见[归档页面](/archive.html),列表项的源码如下: ```html
05-11 » 为 Jekyll 加上简单搜索功能