diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2022-12-19 20:52:52 +0000 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2022-12-19 20:52:52 +0000 |
| commit | f0b2faff6e6e69de483fccb940f7fc989c4c9030 (patch) | |
| tree | 012f6c344a31e5c871a2ef5b079e936b3b6d0d74 | |
| parent | 28414efe202e391d22012590c932f676f80c3323 (diff) | |
Smarter filenames
| -rw-r--r-- | index.js | 33 |
1 files changed, 26 insertions, 7 deletions
@@ -13,15 +13,30 @@ const internals = { date: (new Date()).toISOString().split('T')[0], - generateGemtext(posts) { + generateGemtext(title, text) { - const title = posts.length === 1 ? 'A link' : `${posts.length} links`; + return `# ${title}\n\n${text}`; + }, - const linkText = posts.map((pin) => { - return `=> ${pin.href} ${pin.description}\n${pin.extended}`; + getText(posts) { + + const linkText = posts.map((post) => { + + return `=> ${post.href} ${post.description}\n${post.extended}`; }).join('\n\n'); + }, + + getTitle(posts) { - return `# ${title} for ${internals.date}\n\n${linkText}`; + if (posts.length === 1) { + return posts[0].description; + } + return `${posts.length} links for ${internals.date}`; + }, + + slugify(text) { + + return text.toLowerCase().replace(/[^a-z0-9 ]/g, '').replace(/ +/g, '-') } }; @@ -38,8 +53,12 @@ async function run() { return; } - const gemtext = internals.generateGemtext(pins); - const gemfile = resolve(join(__dirname, `linkblog-${internals.date}.gmi`)); + const title = internals.getTitle(posts); + const text = internals.getText(posts); + const gemtext = internals.generateGemtext(title, text); + const filename = internals.slugify(title); + + const gemfile = resolve(join(__dirname, `${filename}.gmi`)); await writeFile(gemfile, gemtext); await internals.exec(`blog --add ${gemfile}`); await internals.exec(`blog --publish ${internals.blogUrl}`); |