Hike News
Hike News

Hexo 站內搜尋

搜尋工具

套用的 Theme 網頁內有搜尋功能,但只套用 Theme 還沒安裝相關的插件之前,是不能使用的

_config.yml 找到設定

1
2
3
search:
insight: true
swiftype:
  • 使用 NPM 套件

    • insight : 需要再安裝 hexo-generator-json-content 才能使用

    • swiftype : 站內搜尋

      • 需要注冊帳號才能使用 Swiftype
  • 搜尋的 NPM 套件

    1
    npm i -S hexo-generator-json-content
    • 預設會產生的 json 檔
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    meta: {   //-> 基本設定
    title: hexo.config.title,
    subtitle: hexo.config.subtitle,
    description: hexo.config.description,
    author: hexo.config.author,
    url: hexo.config.url
    },
    pages: [{ //-> 全部頁面的統一格式
    title: page.title,
    slug: page.slug,
    date: page.date,
    updated: page.updated,
    comments: page.comments,
    permalink: page.permalink,
    path: page.path,
    excerpt: page.excerpt, //-> only text ;)
    keywords: null, //-> it needs settings
    text: page.content, //-> only text minified ;)
    raw: page.raw, //-> original MD content
    content: page.content, //-> final HTML content
    author: page.author
    }],
    posts: [{ //-> 全部發佈文章的統一格式
    title: post.title,
    slug: post.slug,
    date: post.date,
    updated: post.updated,
    comments: post.comments,
    permalink: post.permalink,
    path: post.path,
    excerpt: post.excerpt, //-> only text ;)
    keywords: null, //-> it needs settings
    text: post.content, //-> only text minified ;)
    raw: post.raw, //-> original MD content
    content: post.content, //-> final HTML content
    author: post.author,
    categories: [{ //-> 分類
    name: category.name,
    slug: category.slug,
    permalink: category.permalink
    }],
    tags: [{ //-> 標籤
    name: tag.name,
    slug: tag.slug,
    permalink: tag.permalink
    }]
    }]
    • 預設產生的資料多但不一定會用到,可以只選擇需要搜尋的資料就好
      • _config.yml 加入下面的設定
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    jsonContent:
    meta: true
    drafts: false # 是否搜尋草稿
    file: content.json # 預設檔名,也可自訂。
    keywords: undefined
    dateFormat: undefined # DD/MM/YYYY
    pages:
    title: false
    slug: false
    date: false
    updated: false
    comments: false
    path: false
    link: false
    permalink: false
    excerpt: false
    keywords: false
    text: false
    raw: false
    content: false
    author: false
    posts:
    title: true # 標題
    slug: false
    date: false # 日期
    updated: false
    comments: false
    path: false # 路徑
    link: false
    permalink: false
    excerpt: false
    keywords: true
    text: true # 內文
    raw: false
    content: false
    author: false
    categories: false
    tags: false

選擇忽略

1
2
3
4
5
6
7
8
9
10
11
12
# exemple
jsonContent:
ignore: # 不希望被搜尋的部分
paths:
- path # 在這路徑下的全部
- url
- category # 整個分類
- specific.file # 特定檔案
- .ext # 副檔名相同的全部
tags: # 標籤關鍵字
- tag1
- tag2

可參考文件 https://github.com/alexbruno/hexo-generator-json-content#skip-indexing