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 }}