embed ejs templates

This commit is contained in:
Wouter Groeneveld 2021-03-15 08:59:16 +01:00
parent 15f779e63f
commit 7f4773c276
5 changed files with 37 additions and 29 deletions

View File

@ -1,6 +1,6 @@
{
"name": "jam-my-stack",
"version": "1.0.10",
"version": "1.0.11",
"repository": {
"url": "https://github.com/wgroeneveld/jam-my-stack",
"type": "git"

View File

@ -1,9 +1,13 @@
const ejs = require('ejs');
const templates = require('./templates');
const got = require("got");
const parser = require("fast-xml-parser");
const { readFileSync, writeFileSync, existsSync, mkdirSync } = require('fs');
const ent = require('ent');
const { writeFileSync, existsSync, mkdirSync } = require('fs');
const { getFiles } = require('./../file-utils');
const dayjs = require('dayjs');
const utc = require('dayjs/plugin/utc');
dayjs.extend(utc);
@ -17,29 +21,15 @@ function stripBeforeLastSlash(str) {
return str.substring(str.lastIndexOf('/') + 1, str.length)
}
function tmpl(filename, data) {
const template = readFileSync(filename).toString()
return ejs.render(template, data, {
rmWhitespace: true
})
}
function convertAtomItemToMd(item, notesdir) {
const path = `${notesdir}/${item.year}/${item.month}`
if(!existsSync(`${notesdir}/${item.year}`)) mkdirSync(`${notesdir}/${item.year}`)
if(!existsSync(path)) mkdirSync(path)
let mddata = `---
source: "${item.url}"
context: "${item.context}"
title: "${item.title}"
date: "${item.year}-${item.month}-${item.day}T${item.date.format("HH:mm:ss")}"
---
let mddata = ejs.render(templates.markdown, { item })
${item.content}
`
if(item.media.length > 0) {
mddata += '\n' + tmpl('./src/mastodon/render-enclosures.ejs', { images: item.media })
mddata += '\n' + ejs.render(templates.enclosures, { images: item.media }, { rmWhitespace: true })
}
writeFileSync(`${path}/${item.hash}.md`, mddata, 'utf-8')

View File

@ -1,9 +0,0 @@
<div class="flex">
<% images.forEach(function(image){ %>
<div>
<a class="lbox" href="<%= image %>">
<img src="<%= image %>" alt="Enclosed Toot image">
</a>
</div>
<% }); %>
</div>

27
src/mastodon/templates.js Normal file
View File

@ -0,0 +1,27 @@
const markdown = `---
source: "<%- item.url %>"
context: "<%- item.context %>"
title: "<%- item.title %>"
date: "<%- item.year %>-<%- item.month %>-<%- item.day %>T<%- item.date.format('HH:mm:ss') %>"
---
<%- item.content %>
`
const enclosures = `
<div class="flex">
<% images.forEach(function(image){ %>
<div>
<a class="lbox" href="<%- image %>">
<img loading="lazy" src="<%- image %>" alt="Enclosed Toot image">
</a>
</div>
<% }); %>
</div>
`
module.exports = {
markdown,
enclosures
}

View File

@ -26,13 +26,13 @@ Enjoyed an afternoon of oldskool Diablo II on the Europebattle servers. We did a
<div>
<a class=\\"lbox\\" href=\\"https://chat.brainbaking.com/media/6f8b72ca-9bfb-460b-9609-c4298a8cab2b/EuropeBattle%202021-03-14%2016-20-36-87.jpg\\">
<img src=\\"https://chat.brainbaking.com/media/6f8b72ca-9bfb-460b-9609-c4298a8cab2b/EuropeBattle%202021-03-14%2016-20-36-87.jpg\\" alt=\\"Enclosed Toot image\\">
<img loading=\\"lazy\\" src=\\"https://chat.brainbaking.com/media/6f8b72ca-9bfb-460b-9609-c4298a8cab2b/EuropeBattle%202021-03-14%2016-20-36-87.jpg\\" alt=\\"Enclosed Toot image\\">
</a>
</div>
<div>
<a class=\\"lbox\\" href=\\"https://chat.brainbaking.com/media/3dbcb044-2acc-4ace-a4f6-37ce94c3f2b1/EuropeBattle%202021-03-14%2015-35-01-56.jpg\\">
<img src=\\"https://chat.brainbaking.com/media/3dbcb044-2acc-4ace-a4f6-37ce94c3f2b1/EuropeBattle%202021-03-14%2015-35-01-56.jpg\\" alt=\\"Enclosed Toot image\\">
<img loading=\\"lazy\\" src=\\"https://chat.brainbaking.com/media/3dbcb044-2acc-4ace-a4f6-37ce94c3f2b1/EuropeBattle%202021-03-14%2015-35-01-56.jpg\\" alt=\\"Enclosed Toot image\\">
</a>
</div>