]> git.r.bdr.sh - rbdr/pinboard-linkblog-updater/commitdiff
Smarter filenames
authorRuben Beltran del Rio <redacted>
Mon, 19 Dec 2022 20:52:52 +0000 (20:52 +0000)
committerRuben Beltran del Rio <redacted>
Mon, 19 Dec 2022 20:52:52 +0000 (20:52 +0000)
index.js

index c0e41dc9169898af3fe2e53dcab94d28f41cb3ae..549e223b4d19aaef488ce24dfd5cbe43175facd8 100644 (file)
--- a/index.js
+++ b/index.js
@@ -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}`);