From 67f79b84748d41610856caeb761e119f877d2bc6 Mon Sep 17 00:00:00 2001 From: zwbetz-gh Date: Sat, 20 Jun 2020 22:16:24 -0500 Subject: [PATCH] add search by title --- assets/css/search.css | 8 +++++++ assets/js/search.js | 21 ++++++++++++++++++ exampleSite/config.yaml | 1 + layouts/_default/list.html | 43 +++++++++++++++++++++++------------- layouts/partials/script.html | 7 ++++++ 5 files changed, 65 insertions(+), 15 deletions(-) create mode 100644 assets/css/search.css create mode 100644 assets/js/search.js diff --git a/assets/css/search.css b/assets/css/search.css new file mode 100644 index 0000000..77a424b --- /dev/null +++ b/assets/css/search.css @@ -0,0 +1,8 @@ +#search { + height: 50px; + width: 100%; + padding: 8px; + border: 2px solid; + line-height: 1.6; + font-size: 1.25rem; +} diff --git a/assets/js/search.js b/assets/js/search.js new file mode 100644 index 0000000..f760b85 --- /dev/null +++ b/assets/js/search.js @@ -0,0 +1,21 @@ +(function () { + function onEvent() { + var filter = search.value.toUpperCase(); + var list = document.getElementById("list"); + var listItems = list.getElementsByTagName("li"); + for (i = 0; i < listItems.length; i++) { + var item = listItems[i]; + var text = item.innerText.toUpperCase(); + if (text.indexOf(filter) > -1) { + item.style.display = ""; + } else { + item.style.display = "none"; + } + } + } + + var search = document.getElementById("search"); + if (search) { + search.addEventListener("keyup", onEvent); + } +})(); diff --git a/exampleSite/config.yaml b/exampleSite/config.yaml index ff982c6..287122d 100644 --- a/exampleSite/config.yaml +++ b/exampleSite/config.yaml @@ -26,6 +26,7 @@ params: katex: true darkThemeAsDefault: false hideHeaderLinks: false + search: true # A list of custom css files can be provided, which must be placed inside # 'static/'. # This is useful to override just specific css classes, instead of copying diff --git a/layouts/_default/list.html b/layouts/_default/list.html index fc5e158..98058f4 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -1,19 +1,32 @@ {{ define "main" }} -
-

{{ .Title }}

- +
{{ end }} diff --git a/layouts/partials/script.html b/layouts/partials/script.html index 95ebeb2..793a553 100644 --- a/layouts/partials/script.html +++ b/layouts/partials/script.html @@ -3,3 +3,10 @@ {{ $templateDomScripts := resources.Get "js/template-dom-scripts.js" }} {{ $domScripts := $templateDomScripts | resources.ExecuteAsTemplate "js/dom-scripts.js" . }} + +{{ if site.Params.search }} +{{ $searchJs := resources.Get "js/search.js" | fingerprint }} + +{{ $searchCss := resources.Get "css/search.css" | fingerprint }} + +{{ end }}