Add tags in post cards from search results (#895)
* Add tags in post cards from search results * Use on_card parameter to decide to show the cards or not * Fix search cards height * Minor fix * Fix null tags * Fix CSS not applied properly in search page Signed-off-by: hossainemruz <hossainemruz@gmail.com> --------- Signed-off-by: hossainemruz <hossainemruz@gmail.com> Co-authored-by: Emruz Hossain <hossainemruz@gmail.com>
This commit is contained in:
parent
9f5a44e24e
commit
1ec4cd2688
2 changed files with 26 additions and 7 deletions
|
@ -79,6 +79,13 @@ window.addEventListener('DOMContentLoaded', () => {
|
||||||
// pull template from hugo template definition
|
// pull template from hugo template definition
|
||||||
const templateDefinition = document.getElementById('search-result-template').innerHTML
|
const templateDefinition = document.getElementById('search-result-template').innerHTML
|
||||||
// replace values
|
// replace values
|
||||||
|
function adaptTags() {
|
||||||
|
const tags = value.item.tags;
|
||||||
|
let string = '';
|
||||||
|
if (tags) tags.forEach((t) => {string += '<li class="rounded"><a href="/tags/' + t.toLowerCase() + '/" class="btn btn-sm btn-info">' + t + "</a></li>"});
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
|
||||||
const output = render(templateDefinition, {
|
const output = render(templateDefinition, {
|
||||||
key,
|
key,
|
||||||
title: value.item.title,
|
title: value.item.title,
|
||||||
|
@ -86,7 +93,7 @@ window.addEventListener('DOMContentLoaded', () => {
|
||||||
date: value.item.date,
|
date: value.item.date,
|
||||||
summary: value.item.summary,
|
summary: value.item.summary,
|
||||||
link: value.item.permalink,
|
link: value.item.permalink,
|
||||||
tags: value.item.tags,
|
tags: adaptTags(),
|
||||||
categories: value.item.categories,
|
categories: value.item.categories,
|
||||||
snippet
|
snippet
|
||||||
})
|
})
|
||||||
|
|
|
@ -28,28 +28,40 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ define "content" }}
|
{{ define "content" }}
|
||||||
|
<script>
|
||||||
|
document.body.classList.replace('kind-page', 'kind-section');
|
||||||
|
</script>
|
||||||
<section class="content-section" id="content-section">
|
<section class="content-section" id="content-section">
|
||||||
<div class="content container-fluid" id="content">
|
<div class="content container-fluid" id="content">
|
||||||
<div class="container-fluid post-card-holder" id="post-card-holder">
|
<div class="container-fluid post-card-holder" id="post-card-holder">
|
||||||
<div id="search-results">
|
<div id="search-results" style="display: flex;">
|
||||||
|
|
||||||
<script id="search-result-template" type="text/x-js-template">
|
<script id="search-result-template" type="text/x-js-template">
|
||||||
<div class="post-card">
|
<div class="post-card">
|
||||||
<a href="${link}" class="post-card-link">
|
<div class="card">
|
||||||
<div class="card" style="min-height: 352px;"><a href="${link}" class="post-card-link">
|
|
||||||
<div class="card-head">
|
<div class="card-head">
|
||||||
|
<a href="${link}" class="post-card-link">
|
||||||
<img class="card-img-top" src="${hero}" alt="Card Heading Image">
|
<img class="card-img-top" src="${hero}" alt="Card Heading Image">
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">${title}</h5>
|
<a href="${link}" class="post-card-link">
|
||||||
<p class="card-text post-summary">${summary}</p>
|
<h5 class="card-title">${title}</h5>
|
||||||
|
<p class="card-text post-summary">${summary}</p>
|
||||||
|
</a>
|
||||||
|
{{ if site.Params.features.tags.on_card }}
|
||||||
|
<div class="tags">
|
||||||
|
<ul style="padding-left: 0;">
|
||||||
|
${tags}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
<span class="float-left">${date}</span>
|
<span class="float-left">${date}</span>
|
||||||
<a href="${link}" class="float-right btn btn-outline-info btn-sm">Read</a>
|
<a href="${link}" class="float-right btn btn-outline-info btn-sm">Read</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue