aboutsummaryrefslogtreecommitdiff
path: root/generator/postrenderer.js
diff options
context:
space:
mode:
Diffstat (limited to 'generator/postrenderer.js')
-rw-r--r--generator/postrenderer.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/generator/postrenderer.js b/generator/postrenderer.js
index 80991a0..cc29b08 100644
--- a/generator/postrenderer.js
+++ b/generator/postrenderer.js
@@ -148,6 +148,14 @@ function _style_to_header(doc)
for (let s of styles)
head.appendChild(s);
}
+function htmlescape(s)
+{
+ return s.replace(/</g, "&lt;")
+ .replace(/>/g, "&gt;")
+ .replace(/&/g, "&amp;")
+ .replace(/"/g, "&quot;")
+ .replace(/'/g, "&#39;");
+}
async function _render(inf,outf,np,pp)
{
const postcont=fs.readFileSync(inf,'utf8');
@@ -192,6 +200,14 @@ async function _render(inf,outf,np,pp)
else
trd.getElementById('article').innerHTML=contsplit.join('\n');
+ //title and meta description
+ const titlee = trd.querySelector('title');
+ titlee.innerHTML = titlee.innerHTML.replace(
+ /%t/, htmlescape(meta[0].trim())
+ );
+ const metade = trd.querySelector('meta[name="description"]');
+ metade.setAttribute('content', metade.getAttribute('content').replace(/%t/, meta[0].trim()));
+
//async images
trd.getElementById('article').querySelectorAll('img').forEach(
(i)=>{if(!i.getAttribute('decoding'))i.setAttribute('decoding','async');}