diff options
author | Chris Xiong <chirs241097@gmail.com> | 2024-03-08 01:47:25 -0500 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2024-03-08 01:47:25 -0500 |
commit | 33b8f27d45619c4cb03423cd77d30fe8566a7e18 (patch) | |
tree | 0bbb960beabdbf7d30b0e0a2872ae11247253a9d /generator | |
parent | 23325bdab3108c42f0157625f995b532a13096c7 (diff) | |
download | sbs-33b8f27d45619c4cb03423cd77d30fe8566a7e18.tar.xz |
Add support for substitution in title and certain meta tags.
Diffstat (limited to 'generator')
-rw-r--r-- | generator/postrenderer.js | 16 |
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, "<") + .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');} |