From b7aef9302b4460ad2a5aed47f93c3985f3ca2c4a Mon Sep 17 00:00:00 2001 From: Stan Lemon Date: Tue, 23 Jun 2020 22:25:12 -0400 Subject: [PATCH 1/2] Add time to post date, add categories & tags --- src/parser.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/parser.js b/src/parser.js index 56504fb..ae8d152 100644 --- a/src/parser.js +++ b/src/parser.js @@ -48,7 +48,9 @@ function collectPosts(data, config) { }, frontmatter: { title: getPostTitle(post), - date: getPostDate(post) + date: getPostDate(post), + categories: getCategories(post), + tags: getTags(post), }, content: translator.getPostContent(post, turndownService, config) })); @@ -80,7 +82,22 @@ function getPostTitle(post) { } function getPostDate(post) { - return luxon.DateTime.fromRFC2822(post.pubDate[0], { zone: 'utc' }).toISODate(); + return luxon.DateTime.fromRFC2822(post.pubDate[0], { zone: 'utc' }).toISO(); +} + +function getCategories(post) { + return processCategoryTags(post, "category"); +} + +function getTags(post) { + return processCategoryTags(post, "post_tag"); +} + +function processCategoryTags(post, domain) { + return post.category + .filter(c => c["$"].domain === domain) + .map(({ $: c }) => c.nicename) + .join(", "); } function collectAttachedImages(data) { From 0487bd7e0caa5704edcd9a2b1d76a2dc17173c23 Mon Sep 17 00:00:00 2001 From: Stan Lemon Date: Sun, 28 Jun 2020 11:21:04 -0400 Subject: [PATCH 2/2] Make tags and categories arrays --- src/parser.js | 6 ++++-- src/writer.js | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/parser.js b/src/parser.js index ae8d152..3bd28e3 100644 --- a/src/parser.js +++ b/src/parser.js @@ -94,10 +94,12 @@ function getTags(post) { } function processCategoryTags(post, domain) { + if (!post.category) { + return []; + } return post.category .filter(c => c["$"].domain === domain) - .map(({ $: c }) => c.nicename) - .join(", "); + .map(({ $: c }) => c.nicename); } function collectAttachedImages(data) { diff --git a/src/writer.js b/src/writer.js index 5bff9c0..88d4e89 100644 --- a/src/writer.js +++ b/src/writer.js @@ -58,8 +58,10 @@ async function loadMarkdownFilePromise(post) { let output = '---\n'; Object.entries(post.frontmatter).forEach(pair => { const key = pair[0]; - const value = (pair[1] || '').replace(/"/g, '\\"'); - output += key + ': "' + value + '"\n'; + const value = Array.isArray(pair[1]) + ? (pair[1].length === 0 ? "" : "\n - \"" + pair[1].join("\"\n - \"") + "\"") + : '"' + (pair[1] || '').replace(/"/g, '\\"') +'"'; + output += key + ': ' + value + '\n'; }); output += '---\n\n' + post.content + '\n'; return output;