Files
MrbWebLibre/packages/flutter_mozilla_components/javascript/readability/src/index.js
T

37 lines
1.0 KiB
JavaScript

import { Readability, isProbablyReaderable } from '@mozilla/readability';
import TurndownService from 'turndown';
const removeMarkdown = require('remove-markdown');
const turndownService = new TurndownService();
function parseReaderable(document, options) {
const clonedDoc = document.cloneNode(true);
const readable = isProbablyReaderable(clonedDoc);
const fullMarkdown = turndownService.turndown(clonedDoc.body.innerHTML);
let response = {
fullContentMarkdown: fullMarkdown,
fullContentPlain: removeMarkdown(fullMarkdown),
}
const reader = new Readability(clonedDoc, options);
const article = reader.parse();
if(article != null) {
const extractedMarkdown = turndownService.turndown(article.content);
response = {
...response,
isProbablyReaderable: readable ? 1 : 0,
extractedContentMarkdown: extractedMarkdown,
extractedContentPlain: removeMarkdown(extractedMarkdown)
};
}
return response;
}
window.parseReaderable = parseReaderable;
export { parseReaderable };