diff --git a/package-lock.json b/package-lock.json index f25449b..e6ea5af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "luxon": "^3.4.4", "request": "^2.88.2", "request-promise-native": "^1.0.8", - "turndown": "^7.0.0", + "turndown": "^7.1.2", "turndown-plugin-gfm": "^1.0.2", "xml2js": "^0.4.23" }, diff --git a/package.json b/package.json index 6495ca3..e34ce15 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "luxon": "^3.4.4", "request": "^2.88.2", "request-promise-native": "^1.0.8", - "turndown": "^7.0.0", + "turndown": "^7.1.2", "turndown-plugin-gfm": "^1.0.2", "xml2js": "^0.4.23" }, diff --git a/src/translator.js b/src/translator.js index 41c110b..7fd872d 100644 --- a/src/translator.js +++ b/src/translator.js @@ -61,7 +61,7 @@ function getPostContent(post, turndownService, config) { // 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 elemnts (like blocks) + // without mucking up content inside of other elements (like blocks) content = content.replace(/(\r?\n){2}/g, '\n
\n'); if (config.saveScrapedImages) { @@ -75,6 +75,10 @@ function getPostContent(post, turndownService, config) { // (using turndown's blankRule() and keep() solution did not work for me) content = content.replace(/(<\/iframe>)/gi, '.$1'); + // preserve "more" separator, max one per post, optionally with custom label + // by escaping angle brackets (will be unescaped during turndown conversion) + content = content.replace(/<(!--more( .*)?--)>/, '<$1>') + // use turndown to convert HTML to Markdown content = turndownService.turndown(content);