mirror of
https://github.com/Brandon-Rozek/website-theme.git
synced 2024-11-21 15:56:29 -05:00
Cleaning up output format types for JSON
This commit is contained in:
parent
fc0e72ba14
commit
1c8179bae3
7 changed files with 35 additions and 38 deletions
|
@ -55,14 +55,14 @@ const queryNgramSeparator = (query) => {
|
||||||
*/
|
*/
|
||||||
const initLunr = () => {
|
const initLunr = () => {
|
||||||
$.getJSON('index.json').done((index) => {
|
$.getJSON('index.json').done((index) => {
|
||||||
pagesIndex = index
|
pagesIndex = index['items']
|
||||||
lunrIndex = lunr(builder => {
|
lunrIndex = lunr(builder => {
|
||||||
builder.tokenizer = bigramTokeniser
|
builder.tokenizer = bigramTokeniser
|
||||||
builder.pipeline.reset()
|
builder.pipeline.reset()
|
||||||
builder.ref('ref')
|
builder.ref('url')
|
||||||
builder.field('title', { boost: 10 })
|
builder.field('title', { boost: 10 })
|
||||||
builder.field('tags', { boost: 10 })
|
builder.field('tags', { boost: 10 })
|
||||||
builder.field('body')
|
builder.field('content_html')
|
||||||
builder.metadataWhitelist = ['position']
|
builder.metadataWhitelist = ['position']
|
||||||
for (let page of pagesIndex) {
|
for (let page of pagesIndex) {
|
||||||
builder.add(page)
|
builder.add(page)
|
||||||
|
@ -83,7 +83,7 @@ const search = (query) => {
|
||||||
lunrResult = lunrIndex.search(queryNgramSeparator(query))
|
lunrResult = lunrIndex.search(queryNgramSeparator(query))
|
||||||
return lunrResult.map((result) => {
|
return lunrResult.map((result) => {
|
||||||
return pagesIndex.filter((page) => {
|
return pagesIndex.filter((page) => {
|
||||||
return page.ref === result.ref
|
return page.url === result.ref
|
||||||
})[0]
|
})[0]
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -158,9 +158,9 @@ const renderResults = (results) => {
|
||||||
const matchPosition = metadata[Object.keys(metadata)[0]].body ? metadata[Object.keys(metadata)[0]].body.position[0][0] : 0
|
const matchPosition = metadata[Object.keys(metadata)[0]].body ? metadata[Object.keys(metadata)[0]].body.position[0][0] : 0
|
||||||
const bodyStartPosition = (matchPosition - (BODY_LENGTH / 2) > 0) ? matchPosition - (BODY_LENGTH / 2) : 0
|
const bodyStartPosition = (matchPosition - (BODY_LENGTH / 2) > 0) ? matchPosition - (BODY_LENGTH / 2) : 0
|
||||||
|
|
||||||
$searchResultPage.append('<a class="searchResultTitle" href="' + result.ref + '">' + result.title + '</a>')
|
$searchResultPage.append('<a class="searchResultTitle" href="' + result.url + '">' + result.title + '</a>')
|
||||||
|
|
||||||
$searchResultPage.append('<div class="searchResultBody">' + result.body.substr(bodyStartPosition, BODY_LENGTH) + '</div>')
|
$searchResultPage.append('<div class="searchResultBody">' + result.content_html.substr(bodyStartPosition, BODY_LENGTH) + '</div>')
|
||||||
$searchResults.append($searchResultPage)
|
$searchResults.append($searchResultPage)
|
||||||
|
|
||||||
// Highlight keyword
|
// Highlight keyword
|
||||||
|
|
8
layouts/_default/item.json.json
Normal file
8
layouts/_default/item.json.json
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"id": "{{ .Permalink }}",
|
||||||
|
"url": "{{ .Permalink }}",
|
||||||
|
"title": {{ .Title | jsonify }},
|
||||||
|
"content_html": {{ .Content | jsonify }},
|
||||||
|
"date_published": "{{ .Date.Format "2006.01.02" }}",
|
||||||
|
"tags": {{ .Params.tags | jsonify }}
|
||||||
|
}
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
"version": "https://jsonfeed.org/version/1.1",
|
|
||||||
"title": "{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} | {{ end }}{{ .Site.Title }}{{ end }}",
|
|
||||||
"home_page_url": "{{ .Site.BaseURL }}",
|
|
||||||
"feed_url": "{{ .Permalink }}",
|
|
||||||
"description": "{{ .Description }}",
|
|
||||||
"items": [{{ range $index, $page := .Pages }}{{ if ne $index 0 }},{{ end }}
|
|
||||||
{
|
|
||||||
"author": {
|
|
||||||
{{with $.Site.Author.name }}"name": "{{ . }}",{{ end }}
|
|
||||||
"url": "{{ .Site.BaseURL }}"
|
|
||||||
},
|
|
||||||
"id": "{{ $page.Permalink }}",
|
|
||||||
"content_html": {{ $page.Content | jsonify }},
|
|
||||||
"date_published": {{ $page.Date.Format "2006.01.02" | jsonify }},
|
|
||||||
"url": "{{ $page.Permalink }}",
|
|
||||||
"title": {{ $page.Title | jsonify }},
|
|
||||||
"tags": {{ $page.Params.tags | jsonify }}
|
|
||||||
}
|
|
||||||
{{ end }}]
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
[{{ range $index, $page := .Pages }}{{ if ne $index 0 }},{{ end }}
|
|
||||||
{
|
|
||||||
"ref": "{{ $page.Permalink }}",
|
|
||||||
"title": {{ $page.Title | jsonify }},
|
|
||||||
"section": "{{ $page.Section }}",
|
|
||||||
"tags": {{ $page.Params.tags | jsonify }},
|
|
||||||
"date" : {{ $page.Date.Format "2006.01.02" | jsonify }},
|
|
||||||
"body": {{ $page.Plain | jsonify }}
|
|
||||||
}
|
|
||||||
{{ end }}]
|
|
20
layouts/_default/list.json.json
Normal file
20
layouts/_default/list.json.json
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"version": "https://jsonfeed.org/version/1.1",
|
||||||
|
"title": "{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} | {{ end }}{{ .Site.Title }}{{ end }}",
|
||||||
|
"home_page_url": "{{ .Site.BaseURL }}",
|
||||||
|
"feed_url": "{{ .Permalink }}",
|
||||||
|
"description": "{{ .Description }}",
|
||||||
|
"icon": "{{ .Site.BaseURL }}img/{{ .Site.Params.avatar }}",
|
||||||
|
"language": "en-US",
|
||||||
|
"authors": [
|
||||||
|
{{with $.Site.Author.name }}
|
||||||
|
{ "name": "{{ . }}" }
|
||||||
|
{{ end }}
|
||||||
|
],
|
||||||
|
"items": [
|
||||||
|
{{ range $index, $page := .Pages }}{{ if ne $index 0 }},{{ end }}
|
||||||
|
{{ .Render "item" }}
|
||||||
|
{{ end }}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
1
layouts/_default/single.json.json
Normal file
1
layouts/_default/single.json.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{{ .Render "item" }}
|
Loading…
Reference in a new issue