module.exports={ render:function(outf,pginfo,posts){return _render(outf,pginfo,posts);}, set_template:function(tmplf){return _set_template(tmplf);} }; const fs=require('fs'); const jsdom=require('jsdom'); const path=require('path'); let template_file=''; let tmplcont=''; function _set_template(tmplf) { template_file=tmplf; tmplcont=fs.readFileSync(template_file,'utf8'); } async function _render(outf,pginfo,posts) { const tr=new jsdom.JSDOM(tmplcont); const trd=tr.window.document; const tags_list=trd.getElementById('tagslist'); const posts_list=trd.getElementById('postslist'); const atag_template=trd.getElementById('active_taglist_item_template'); const tag_template=trd.getElementById('taglist_item_template'); const pitm_template=trd.getElementById('post_item_template'); for(let i of pginfo.tags) { const newnode=(i==pginfo.atag?atag_template:tag_template).cloneNode(true); newnode.id=''; const a=newnode.querySelector('a'); a.innerHTML=i; a.href=`/blog/list/${i}`; tags_list.appendChild(newnode); } for(let i of posts) { let newnode=pitm_template.cloneNode(true); newnode.id=''; const mdate=new Date(i.mdate); const mdstr=`${mdate.getFullYear()}-${(mdate.getMonth()+1+'').padStart(2,'0')}-${(mdate.getDate()+'').padStart(2,'0')}` newnode.querySelector('#title').innerHTML=i.title; newnode.querySelector('#title').href=`/blog/post/${i.file}.html`; newnode.querySelector('#tags').innerHTML='#'+i.tags.split(',').join(' #'); newnode.querySelector('#time').innerHTML=`${i.date}/${mdstr}`; newnode.querySelector('#title').id= newnode.querySelector('#tags').id= newnode.querySelector('#time').id=''; posts_list.appendChild(newnode); } trd.getElementById('page').innerHTML=`${pginfo.cp+1}/${pginfo.pc}`; trd.getElementById('prepage').href=pginfo.cp>0? `/blog/list/${pginfo.atag?pginfo.atag+'/':''}${pginfo.cp-1}.html` :'#'; trd.getElementById('nexpage').href=pginfo.cp