Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
R3
howto-cards
Commits
46882134
Verified
Commit
46882134
authored
Jun 16, 2020
by
Laurent Heirendt
✈
Browse files
move scripts to separate html files
parent
e9f16085
Pipeline
#28432
passed with stages
in 1 minute and 16 seconds
Changes
4
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
_includes/scripts.html
View file @
46882134
<script
type=
"text/javascript"
src=
"https://analytics.lcsb.uni.lu/lap/static/js/jquery.min.js"
></script>
<script
type=
"text/javascript"
src=
"{{ "
assets
/
js
/
router.js
"
|
relative_url
}}"
></script>
\ No newline at end of file
_includes/search.html
0 → 100644
View file @
46882134
<link
rel=
"prefetch"
href=
"index.js"
/>
<form>
<input
class=
"search"
placeholder=
"What are you looking for?"
name=
"search_query"
id=
"search_query"
/><br
/>
<button
class=
"search"
type=
"submit"
>
Find it
</button>
</form>
<h1
id=
"search_header"
>
Results of your query:
</h1>
<table
id=
"search_results_table"
>
<tbody
id=
"search_results_tbody"
>
<tr
id=
"search_results_placeholder"
style=
"display: none"
>
<td
id=
"search_results_placeholder_td"
><h3>
Please wait, search is in progress...
</h3></td>
</tr>
</tbody>
</table>
<script
src=
"https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.8/lunr.min.js"
integrity=
"sha256-34Si1Y6llMBKM3G0jQILVeoQKEwuxjbk4zGWXXMT4ps="
crossorigin=
"anonymous"
></script>
<script>
var
el_table_body
=
document
.
getElementById
(
'
search_results_tbody
'
);
var
el_input_query
=
document
.
getElementById
(
'
search_query
'
);
var
el_tr_placeholder
=
document
.
getElementById
(
'
search_results_placeholder
'
);
var
el_header
=
document
.
getElementById
(
'
search_header
'
);
var
url_params
=
new
URLSearchParams
(
window
.
location
.
search
);
var
search_term
=
url_params
.
get
(
'
search_query
'
)
||
""
;
if
(
!!
search_term
.
length
)
{
el_input_query
.
value
=
search_term
;
el_header
.
style
.
display
=
"
block
"
;
el_tr_placeholder
.
style
.
display
=
"
block
"
;
}
var
construct_cell
=
function
(
title
,
content
,
link
)
{
if
(
link
==
'
#
'
)
{
return
'
<td><h3 class="result">
'
+
title
+
'
</h3><p>
'
+
content
+
'
</p></td>
'
;
}
else
{
return
'
<td><h3><a href="
'
+
link
+
'
">
'
+
title
+
'
</a></h3><p>
'
+
content
+
'
</p></td>
'
;
}
}
var
capitalize
=
function
(
text
)
{
return
text
.
charAt
(
0
).
toUpperCase
()
+
text
.
slice
(
1
);
}
var
prettify
=
function
(
text
)
{
return
text
.
split
(
'
:
'
).
map
(
capitalize
).
join
(
'
»
'
);
}
{
%
assign
the_cards
=
site
.
pages
|
where_exp
:
"
card
"
,
"
card.searchable >= 1.0
"
%
}
window
.
content
=
{
{
%
for
card
in
the_cards
%
}
"
{{ card.url | slugify }}
"
:
{
"
title
"
:
"
{{ card.shortcut | xml_escape }}
"
,
"
content
"
:
{{
card
.
content
|
strip_html
|
strip_newlines
|
jsonify
}},
"
url
"
:
"
{{ card.url | xml_escape | relative_url }}
"
}
{
%
unless
forloop
.
last
%
},{
%
endunless
%
}
{
%
endfor
%
}
};
fetch
(
'
{{ "index.js" | relative_url }}
'
).
then
(
response
=>
response
.
text
()).
then
((
data
)
=>
{
var
the_index
=
JSON
.
parse
(
data
);
window
.
search_index
=
lunr
.
Index
.
load
(
the_index
);
if
(
search_term
!=
""
)
{
var
results
=
window
.
search_index
.
search
(
search_term
);
for
(
var
i
=
0
;
i
<
results
.
length
;
i
++
)
{
var
node
=
document
.
createElement
(
"
tr
"
);
node
.
innerHTML
=
construct_cell
(
prettify
(
window
.
content
[
results
[
i
].
ref
].
title
),
window
.
content
[
results
[
i
].
ref
].
content
.
substring
(
0
,
125
)
+
'
...
'
,
window
.
content
[
results
[
i
].
ref
].
url
);
el_table_body
.
appendChild
(
node
);
}
if
(
results
.
length
==
0
)
{
var
node
=
document
.
createElement
(
"
tr
"
);
node
.
innerHTML
=
construct_cell
(
"
No results
"
,
'
Sorry, we were unable to find anything that matches your query
'
,
"
#
"
);
el_table_body
.
appendChild
(
node
);
}
}
el_tr_placeholder
.
style
.
display
=
"
none
"
;
})
</script>
\ No newline at end of file
index.md
View file @
46882134
...
...
@@ -4,9 +4,7 @@ title: Home
order
:
1
---
<script
type=
"text/javascript"
src=
"https://analytics.lcsb.uni.lu/lap/static/js/jquery.min.js"
></script>
<script
type=
"text/javascript"
src=
"{{ "
assets
/
js
/
router.js
"
|
relative_url
}}"
></script>
{% include scripts.html %}
# LCSB How-to Cards
...
...
search.md
View file @
46882134
...
...
@@ -5,90 +5,4 @@ permalink: /search
order
:
4
---
<link
rel=
"prefetch"
href=
"index.js"
/>
<form>
<input
class=
"search"
placeholder=
"What are you looking for?"
name=
"search_query"
id=
"search_query"
/><br
/>
<button
class=
"search"
type=
"submit"
>
Find it
</button>
</form>
<h1
id=
"search_header"
>
Results of your query:
</h1>
<table
id=
"search_results_table"
>
<tbody
id=
"search_results_tbody"
>
<tr
id=
"search_results_placeholder"
style=
"display: none"
>
<td
id=
"search_results_placeholder_td"
><h3>
Please wait, search is in progress...
</h3></td>
</tr>
</tbody>
</table>
<script
src=
"https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.8/lunr.min.js"
integrity=
"sha256-34Si1Y6llMBKM3G0jQILVeoQKEwuxjbk4zGWXXMT4ps="
crossorigin=
"anonymous"
></script>
<script>
var el_table_body = document.getElementById('search_results_tbody');
var el_input_query = document.getElementById('search_query');
var el_tr_placeholder = document.getElementById('search_results_placeholder');
var el_header = document.getElementById('search_header');
var url_params = new URLSearchParams(window.location.search);
var search_term = url_params.get('search_query') || "";
if (!!search_term.length) {
el_input_query.value = search_term;
el_header.style.display = "block";
el_tr_placeholder.style.display = "block";
}
var construct_cell = function(title, content, link) {
if (link == '#') {
return '<td><h3 class="result">' + title + '</h3><p>' + content + '</p></td>';
} else {
return '<td><h3><a href="' + link + '">' + title + '</a></h3><p>' + content + '</p></td>';
}
}
var capitalize = function(text) {
return text.charAt(0).toUpperCase() + text.slice(1);
}
var prettify = function(text) {
return text.split(':').map(capitalize).join(' » ');
}
{% assign the_cards = site.pages | where_exp:"card","card.searchable >= 1.0" %}
window.content = { {% for card in the_cards %}
"{{ card.url | slugify }}": {
"title": "{{ card.shortcut | xml_escape }}",
"content": {{ card.content | strip_html | strip_newlines | jsonify }},
"url": "{{ card.url | xml_escape | relative_url }}"
} {% unless forloop.last %},{% endunless %} {% endfor %}
};
fetch('{{ "index.js" | relative_url }}').then(response => response.text()).then((data) => {
var the_index = JSON.parse(data);
window.search_index = lunr.Index.load(the_index);
if (search_term != "") {
var results = window.search_index.search(search_term);
for (var i = 0; i < results.length; i++) {
var node = document.createElement("tr");
node.innerHTML = construct_cell(prettify(window.content[results[i].ref].title),
window.content[results[i].ref].content.substring(0, 125) + '...',
window.content[results[i].ref].url);
el_table_body.appendChild(node);
}
if (results.length == 0) {
var node = document.createElement("tr");
node.innerHTML = construct_cell("No results",
'Sorry, we were unable to find anything that matches your query',
"#");
el_table_body.appendChild(node);
}
}
el_tr_placeholder.style.display = "none";
})
</script>
{% include search.html %}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment