Skip to content

Commit 7da152c

Browse files
committed
feat: Add search configuration to enhance search functionality and maintainability
1 parent 5a7e9b2 commit 7da152c

2 files changed

Lines changed: 28 additions & 15 deletions

File tree

docs/assets/js/search.js

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
---
2-
---
31
(function () {
2+
var config = window.searchConfig || {
3+
searchVersions: ["all"],
4+
versioning: "false",
5+
allowSearch: "true",
6+
tagColor: "primary"
7+
};
8+
49
function getQueryVariable(variable) {
510
var query = window.location.search.substring(1),
611
vars = query.split("&");
@@ -63,32 +68,32 @@
6368

6469
if (results.length) {
6570
var resultsHTML = "";
66-
var searchVersions = [{% for v in site.version_params.search_versions %}"{{ v }}",{% endfor %}"all"]
71+
var searchVersions = config.searchVersions;
6772
results.forEach(function (result) {
6873

6974
var item = window.data[result.ref]
7075

7176
// Versioning is disabled
72-
if (("{{ site.version_params.versioning }}" == "false") && (item.version != "all")) {
77+
if ((config.versioning == "false") && (item.version != "all")) {
7378
return
7479
}
7580

7681
// Skip result if showing versions disabled
77-
if (("{{ site.version_params.allow_search }}" == "false") && (item.version != "all")) {
82+
if ((config.allowSearch == "false") && (item.version != "all")) {
7883
return
7984
}
8085

81-
// Skip result if version not in all or versions allowed for search
82-
if (("{{ site.version_params.versioning }}" == "true") && ("{{ site.version_params.allow_search }}" == "true") && (!searchVersions.includes(item.version))) {
86+
// Skip result if version not in all or versions allowed for search
87+
if ((config.versioning == "true") && (config.allowSearch == "true") && (!searchVersions.includes(item.version))) {
8388
return
8489
}
8590

86-
if (item.title) {
91+
if (item.title) {
8792
contentPreview = getPreview(query, item.content, 170),
8893
titlePreview = getPreview(query, item.title);
8994

9095
// If we only allow one version (all) skip adding a badge
91-
if (searchVersions.length == 1 || "{{ site.version_params.versioning }}" == "false"){
96+
if (searchVersions.length == 1 || config.versioning == "false"){
9297
versionBadge = ""
9398

9499
// Any older version shows up in gray
@@ -97,8 +102,8 @@
97102

98103
// Current is blue (primary)
99104
} else {
100-
versionBadge = "<span class='badge badge-{{ site.tag_color }}'>Current</span>"
101-
}
105+
versionBadge = "<span class='badge badge-" + config.tagColor + "'>Current</span>"
106+
}
102107
resultsHTML += "<li><h4><a href='" + item.url.trim() + "'>" + titlePreview + "</a></h4><p>" + versionBadge +"<small>" + contentPreview + "</small></p></li>";
103108
}
104109
});
@@ -124,13 +129,13 @@
124129
searchQueryEl = document.getElementById("search-query");
125130

126131
searchQueryEl.innerText = query;
127-
if (query != ""){
128-
searchQueryContainerEl.style.display = "inline";
129-
}
132+
if (query != ""){
133+
searchQueryContainerEl.style.display = "inline";
134+
}
130135

131136
for (var key in window.data) {
132137
window.index.add(window.data[key]);
133138
}
134139

135-
displaySearchResults(window.index.search(query), query); // Hand the results off to be displayed
140+
displaySearchResults(window.index.search(query), query);
136141
})();

docs/pages/search.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@
6262
{% endunless %}
6363
{% endfor %}
6464
};
65+
66+
// Search configuration from Jekyll
67+
window.searchConfig = {
68+
searchVersions: [{% for v in site.version_params.search_versions %}"{{ v }}",{% endfor %}"all"],
69+
versioning: "{{ site.version_params.versioning }}",
70+
allowSearch: "{{ site.version_params.allow_search }}",
71+
tagColor: "{{ site.tag_color }}"
72+
};
6573
</script>
6674
<script src="{{ site.baseurl }}/assets/js/lunr.min.js"></script>
6775
<script src="{{ site.baseurl }}/assets/js/search.js"></script>

0 commit comments

Comments
 (0)