aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2024-08-11 22:15:43 -0400
committerGravatar Chris Xiong <chirs241097@gmail.com> 2024-08-11 22:15:43 -0400
commit7cd535517d3366f0a42b0f42d128537098af2a45 (patch)
tree66c9907ff2bcbeea11989db9c189aaabfa9efdca
parentabb10f112aa1248700e98caa0273f6afc5154a47 (diff)
downloadsbs-master.tar.xz
Fix atom generator starting before all posts have been rendered.HEADmaster
-rwxr-xr-xgenerator/main.js10
-rw-r--r--generator/postrenderer.js2
2 files changed, 8 insertions, 4 deletions
diff --git a/generator/main.js b/generator/main.js
index 3697dbd..87c5885 100755
--- a/generator/main.js
+++ b/generator/main.js
@@ -45,24 +45,28 @@ function ensure_dir(p)
const post_dir=path.join(config.dest_dir,'post');
ensure_dir(post_dir);
+const prps=[];
for(let j=0;j<list.length;++j){
const i=list[j];
if(i.needsupdate||force)
- postrenderer.render(
+ prps.push(postrenderer.render(
path.join(config.content_dir,`${i.file}.txt`),
path.join(post_dir,`${i.file}.html`),
j?list[j-1].file:undefined,
j<list.length-1?list[j+1].file:undefined
)
.then((r)=>{console.log(`rendered: ${r}`);})
+ .catch((e)=>{console.error(e);}));
}
const listrenderer=require('./listrenderer');
listrenderer.set_template(path.join(config.template_dir,'list_template'));
list = list.filter((t) => (t.date.indexOf('UNLISTED') == -1));
-const gen_atom = require('./atomgen').gen_atom;
-gen_atom(list, config);
+Promise.all(prps).then((_) => {
+ const gen_atom = require('./atomgen').gen_atom;
+ gen_atom(list, config);
+});
const list_dir=path.join(config.dest_dir,'list');
const ppp=config.posts_per_listpage;
ensure_dir(list_dir);
diff --git a/generator/postrenderer.js b/generator/postrenderer.js
index 64cbb99..5a74d18 100644
--- a/generator/postrenderer.js
+++ b/generator/postrenderer.js
@@ -185,7 +185,7 @@ async function _render(inf,outf,np,pp)
);
pp.stdin.end();
try {
- trd.getElementById('article').innerHTML = await ppp;
+ trd.getElementById('article').innerHTML = await ppp;
} catch (e) {
console.log(`failed to render ${inf} : ${e}`);
}