Add dynamic snippet list

This commit is contained in:
Daniel_I_Am 2022-05-26 16:01:01 +02:00
parent fa7877e840
commit 6911fcf37b
3 changed files with 32 additions and 7 deletions

View File

@ -8,11 +8,7 @@ block main
a(href="/blog") All articles a(href="/blog") All articles
.list .list
ul.blog-items ul.blog-items
li.blog-item div(insert-data='insertRecentSnippets(this, 5)')
img.article-image(src="//via.placeholder.com/128", alt="Article Topic")
.article-text
h4.article-title New Portfolio Layout
span.article-date(title='September 3rd 2021, 10:11:02') 9 months ago
block aside block aside
section.blog-popular section.blog-popular

View File

@ -1,5 +1,26 @@
const { DateTime } = require('luxon');
require('../sass/main.scss'); require('../sass/main.scss');
window.insertRecentSnippets = (element, amount = 5) => {
const snippetTemplate = require('../partials/recent-snippet.pug');
const snippets = require('../data/snippets.json'); const snippets = require('../data/snippets.json');
snippets.forEach(snippet => {
if (snippet.timeAdded) {
const date = DateTime.fromSeconds(snippet.timeAdded);
snippet.timeAddedPretty = date.toLocaleString(DateTime.DATETIME_FULL);
snippet.timeAddedRelative = date.toRelative({
base: DateTime.now(),
});
}
});
console.log(snippets); element.outerHTML = snippetTemplate({ snippets });
}
window.addEventListener('load', () => {
document.querySelectorAll('div[insert-data]').forEach(e => {
const f = new Function(e.attributes.getNamedItem('insert-data').nodeValue).bind(e);
f();
});
});

View File

@ -0,0 +1,8 @@
.list
ul.blog-items
each snippet in snippets
li.blog-item
img.article-image(src="//via.placeholder.com/128", alt="Article Topic")
.article-text
h4.article-title=snippet.title
span.article-date(title=snippet.timeAddedPretty)=snippet.timeAddedRelative