2 more search options: searchContent, searchDistance

This commit is contained in:
zzossig 2021-04-20 04:46:56 +09:00
parent 438cc9561c
commit 272be8ac88
4 changed files with 25 additions and 9 deletions

View File

@ -268,10 +268,14 @@ showMobileMenuTerms = ["tags", "categories", "series"]
# navbar
enableThemeChange = true # site color theme
# body
enableBreadcrumb = true # breadcrumb for list, single page
# search
enableSearch = true # site search with fuse
enableSearchHighlight = true # when true, search keyword will be highlighted
searchContent = true # include content to search index
searchDistance = 100 # fuse option: distance
# body
enableBreadcrumb = true # breadcrumb for list, single page
enableGoToTop = true # scroll to top
enableWhoami = true # at the end of single page
summaryShape = "classic" # card, classic, compact

View File

@ -30,15 +30,18 @@ hideHomeHeaderWhenMobile = false
# menu
showMobileMenuTerms = ["tags", "categories", "series"]
# body
enableBreadcrumb = true
enablePhotoSwipe = true
# search
enableSearch = true
enableSearchHighlight = true
searchResultPosition = "main" # side, main
searchContent = true # include content to search index
searchDistance = 100 # fuse option
# body
enableBreadcrumb = true
enableGoToTop = true
enableWhoami = true
summaryShape = "classic" # card, classic, compact
searchResultPosition = "main" # side, main
archiveGroupByDate = "2006" # "2006-01": group by month, "2006": group by year
archivePaginate = 13
paginateWindow = 1

View File

@ -2,7 +2,11 @@
{{- $.Scratch.Add "searchindex" slice -}}
{{- range $index, $element := (where .Site.RegularPages "Kind" "page") -}}
{{ with $element.Plain }}
{{- if $.Param "searchContent" -}}
{{- $.Scratch.Add "searchindex" (dict "id" $index "title" $element.Title "uri" $element.Permalink "tags" $element.Params.tags "section" $element.Section "content" $element.Plain "description" $element.Description) -}}
{{ else }}
{{- $.Scratch.Add "searchindex" (dict "id" $index "title" $element.Title "uri" $element.Permalink "tags" $element.Params.tags "section" $element.Section "description" $element.Description) -}}
{{- end -}}
{{ end }}
{{- end -}}
{{- $.Scratch.Get "searchindex" | jsonify -}}

View File

@ -662,6 +662,10 @@
{{ $enableSearch := ($.Param "enableSearch") }}
var enableSearch = JSON.parse({{ $enableSearch | jsonify }});
{{ $searchDistance := ($.Param "searchDistance") }}
var searchDistance = JSON.parse({{ $searchDistance | jsonify }});
{{ $searchContent := ($.Param "searchContent") }}
var searchContent = JSON.parse({{ $searchContent | jsonify }});
{{ $enableSearchHighlight := ($.Param "enableSearchHighlight") }}
var enableSearchHighlight = JSON.parse({{ $enableSearchHighlight | jsonify }});
{{ $searchResultPosition := ($.Param "searchResultPosition") }}
@ -686,12 +690,13 @@
xhr.onload = function () {
if (xhr.status === 200) {
fuse = new Fuse(JSON.parse(xhr.response.toString('utf-8')), {
keys: sectionType.includes('publication') ? ['title', 'abstract'] : ['title', 'description', 'content'],
keys: sectionType.includes('publication') ? ['title', 'abstract'] :
searchContent ? ['title', 'description', 'content'] : ['title', 'description'],
includeMatches: enableSearchHighlight,
shouldSort: true, // default: true
threshold: 0.4, // default: 0.6 (0.0 requires a perfect match)
location: 0, // default: 0
distance: 100, // default: 100
distance: searchDistance ? searchDistance : 100, // default: 100
maxPatternLength: 32,
minMatchCharLength: 1,
isCaseSensitive: false, // defualt: false