目录

    简介:Jekyll是一套静态HTML生成工具。文档系统利用Jekyll进行部署,最终将Markdown转换为HTML文件输出。

    搜索功能的需求是,根据关键字,匹配文档的标题或者内容,列出匹配的文档列表。

    搜索范围:文章标题

    方案实施:

    1. Demo下通过配置参数,生成标题+URL的元数据search.json。
    2. 前端利用关键字,匹配search.json中文章标题,显示搜索列表。

    优点:后端有simple-jekyll-search可用,前端有jekyll-search.js可用。成本低。

    缺点:仅能搜索文章标题,即使能搜索Tags和Keywords,也不太够。

    2. 方案二: Searchyll+Elasticsearch

    搜索范围:文章内容

    方案实施:

    1. 本地起一个Elasticsearch服务。
    2. 安装Searchyll,在生成静态文件阶段,利用Hook,将完整HTML发送给Elasticsearch。
    3. 前端将请求关键字发给Elasticsearch,返回列表显示。

    优点:搜索范围广,基本能满足需求。即使文章很多时,搜索性能也不会受太大影响。国外的Jekyll站点,很多使用的是第三方提供的Elasticsearch服务。

    缺点:需要新增一个服务,有一定的维护成本。

    3. 方案三: 文件入库定制搜索

    搜索范围:文章内容+标题

    方案实施:

    1. Python静态页面入库
    2. 前端发送关键字给后端,后端在数据库查询,返回匹配的文章列表

    优点:可以定制化搜索。

    缺点:文档更新频繁,需要同步刷新数据。