aboutsummaryrefslogtreecommitdiff
path: root/generator
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2024-03-08 01:47:25 -0500
committerGravatar Chris Xiong <chirs241097@gmail.com> 2024-03-08 01:47:25 -0500
commit33b8f27d45619c4cb03423cd77d30fe8566a7e18 (patch)
tree0bbb960beabdbf7d30b0e0a2872ae11247253a9d /generator
parent23325bdab3108c42f0157625f995b532a13096c7 (diff)
downloadsbs-33b8f27d45619c4cb03423cd77d30fe8566a7e18.tar.xz
Add support for substitution in title and certain meta tags.
Diffstat (limited to 'generator')
-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');}