From 33b8f27d45619c4cb03423cd77d30fe8566a7e18 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Fri, 8 Mar 2024 01:47:25 -0500 Subject: Add support for substitution in title and certain meta tags. --- generator/postrenderer.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'generator') 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, ">") + .replace(/&/g, "&") + .replace(/"/g, """) + .replace(/'/g, "'"); +} 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');} -- cgit v1.2.3