diff --git a/src/parser.js b/src/parser.js index f255ec4..f1291ab 100644 --- a/src/parser.js +++ b/src/parser.js @@ -52,15 +52,12 @@ function getItemsOfType(channelData, type) { } function collectPosts(channelData, postTypes) { - // this is passed into getPostContent() for the markdown conversion - const turndownService = translator.initTurndownService(); - let allPosts = []; postTypes.forEach(postType => { const postsForType = getItemsOfType(channelData, postType) .filter(postData => postData.status[0] !== 'trash') .filter(postData => !(postType === 'page' && postData.post_name[0] === 'sample-page')) - .map(postData => buildPost(postData, turndownService)); + .map(postData => buildPost(postData)); if (postsForType.length > 0) { console.log(`${postsForType.length} posts of type "${postType}" found.`); @@ -72,13 +69,13 @@ function collectPosts(channelData, postTypes) { return allPosts; } -function buildPost(data, turndownService) { +function buildPost(data) { return { // full raw post data data, // contents of the post in markdown - content: translator.getPostContent(data, turndownService), + content: translator.getPostContent(data.encoded[0]), // these are not written to file, but help with other things type: data.post_type[0], diff --git a/src/translator.js b/src/translator.js index 3b727ea..a4f3bb1 100644 --- a/src/translator.js +++ b/src/translator.js @@ -2,7 +2,10 @@ import turndownPluginGfm from '@guyplusplus/turndown-plugin-gfm'; import turndown from 'turndown'; import * as shared from './shared.js'; -export function initTurndownService() { +// init single reusable turndown service object upon import +const turndownService = initTurndownService(); + +function initTurndownService() { const turndownService = new turndown({ headingStyle: 'atx', bulletListMarker: '-', @@ -95,9 +98,7 @@ export function initTurndownService() { return turndownService; } -export function getPostContent(postData, turndownService) { - let content = postData.encoded[0]; - +export function getPostContent(content) { // insert an empty div element between double line breaks // this nifty trick causes turndown to keep adjacent paragraphs separated // without mucking up content inside of other elements (like blocks)