Add support for retrieval of snippet matches.
This commit is contained in:
parent
41c02acaca
commit
cd30f9b9c9
4 changed files with 69 additions and 5 deletions
|
@ -1,4 +1,9 @@
|
|||
function _codigoparallevar_enable_search_box(selector, options) {
|
||||
const unescape = (str, tag) => {
|
||||
const prev = tag.replaceAll('<', '<').replaceAll('>', '>');
|
||||
return str.replaceAll(prev, tag);
|
||||
}
|
||||
|
||||
const element = document.querySelector(selector);
|
||||
if ('placeholder' in options) {
|
||||
element.setAttribute('placeholder', options.placeholder);
|
||||
|
@ -94,14 +99,32 @@ function _codigoparallevar_enable_search_box(selector, options) {
|
|||
|
||||
const resultTitle = document.createElement('h2');
|
||||
resultTitle.innerText = `${note.title} (${note.top_level_title})`;
|
||||
resultTitle.innerHTML = unescape(unescape(
|
||||
resultTitle.innerHTML,
|
||||
'</span>'), '<span class="match">'
|
||||
);
|
||||
if (note.is_todo === "1") {
|
||||
resultTitle.setAttribute('class', 'is-todo');
|
||||
resultCard.setAttribute('class', 'is-todo');
|
||||
}
|
||||
else if (note.is_done === "1") {
|
||||
resultTitle.setAttribute('class', 'is-done');
|
||||
resultCard.setAttribute('class', 'is-done');
|
||||
}
|
||||
|
||||
resultContents.appendChild(resultTitle);
|
||||
|
||||
if (note.highlight) {
|
||||
const resultBody = document.createElement('p');
|
||||
resultBody.innerText = note.highlight;
|
||||
resultBody.innerHTML = unescape(
|
||||
unescape(
|
||||
unescape(
|
||||
resultBody.innerHTML,
|
||||
'</span>'),
|
||||
'<span class="search-result-break">'),
|
||||
'<span class="match">');
|
||||
resultContents.appendChild(resultBody);
|
||||
}
|
||||
|
||||
resultCard.appendChild(resultContents);
|
||||
resultsList.appendChild(resultCard);
|
||||
}
|
||||
|
|
|
@ -126,13 +126,30 @@ body nav input {
|
|||
box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.25);
|
||||
}
|
||||
|
||||
.results-box ul li a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.results-box ul li h2 {
|
||||
font-size: 110%;
|
||||
padding: 1.25ex;
|
||||
display: block;
|
||||
margin: 0;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.results-box ul li p {
|
||||
padding: 1.25ex;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.results-box ul li span.match {
|
||||
text-decoration: underline red;
|
||||
}
|
||||
|
||||
.results-box ul li .search-result-break::before {
|
||||
content: '…';
|
||||
color: #777;
|
||||
}
|
||||
.results-box li h2.is-todo::before {
|
||||
content: 'TODO';
|
||||
display: inline-block;
|
||||
|
@ -659,6 +676,11 @@ tr.__table-separator {
|
|||
.results-box ul li h2 {
|
||||
color: white;
|
||||
}
|
||||
.results-box ul li p {
|
||||
padding: 1.25ex;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.results-box-container .results-box input:focus {
|
||||
border-bottom: 1px solid #fff;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue