Merge pull request #2411 from omnivore-app/fix/readability-missing-links

fix: links removed
This commit is contained in:
Hongbo Wu
2023-06-26 16:56:47 +08:00
committed by GitHub
14 changed files with 3587 additions and 472 deletions

View File

@ -326,16 +326,16 @@ const sendImportStatusUpdate = async (userId, taskId, status) => {
async function fetchContent(req, res) {
let functionStartTime = Date.now();
let url = getUrl(req);
const userId = (req.query ? req.query.userId : undefined) || (req.body ? req.body.userId : undefined);
const articleSavingRequestId = (req.query ? req.query.saveRequestId : undefined) || (req.body ? req.body.saveRequestId : undefined);
const state = req.body.state
const labels = req.body.labels
const source = req.body.source || 'parseContent';
const taskId = req.body.taskId; // taskId is used to update import status
const urlStr = (req.query ? req.query.url : undefined) || (req.body ? req.body.url : undefined);
let logRecord = {
url,
url: urlStr,
userId,
articleSavingRequestId,
labels: {
@ -348,30 +348,31 @@ async function fetchContent(req, res) {
console.info(`Article parsing request`, logRecord);
if (!url) {
logRecord.urlIsInvalid = true;
console.info(`Valid URL to parse not specified`, logRecord);
return res.sendStatus(400);
}
// pre handle url with custom handlers
let title, content, contentType, importStatus;
let url, context, page, finalUrl, title, content, contentType, importStatus, statusCode = 200;
try {
const browser = await getBrowserPromise;
const result = await preHandleContent(url, browser);
if (result && result.url) {
url = result.url
validateUrlString(url);
url = getUrl(urlStr);
if (!url) {
logRecord.urlIsInvalid = true;
logRecord.error = 'Valid URL to parse not specified';
statusCode = 400;
return;
}
// pre handle url with custom handlers
try {
const browser = await getBrowserPromise;
const result = await preHandleContent(url, browser);
if (result && result.url) {
validateUrlString(url);
url = result.url;
}
if (result && result.title) { title = result.title }
if (result && result.content) { content = result.content }
if (result && result.contentType) { contentType = result.contentType }
} catch (e) {
console.info('error with handler: ', e);
}
if (result && result.title) { title = result.title }
if (result && result.content) { content = result.content }
if (result && result.contentType) { contentType = result.contentType }
} catch (e) {
console.info('error with handler: ', e);
}
let context, page, finalUrl, statusCode = 200;
try {
if ((!content || !title) && contentType !== 'application/pdf') {
const result = await retrievePage(url, logRecord, functionStartTime);
if (result && result.context) { context = result.context }
@ -412,7 +413,9 @@ async function fetchContent(req, res) {
console.error(`Error while retrieving page`, logRecord);
// fallback to scrapingbee for non pdf content
if (contentType !== 'application/pdf') {
if (url && contentType !== 'application/pdf') {
console.info('fallback to scrapingbee', url);
const fetchStartTime = Date.now();
const sbResult = await fetchContentWithScrapingBee(url);
content = sbResult.domContent;
@ -425,7 +428,7 @@ async function fetchContent(req, res) {
await context.close();
}
// save non pdf content
if (contentType !== 'application/pdf') {
if (url && contentType !== 'application/pdf') {
// parse content if it is not empty
let readabilityResult = null;
if (content) {
@ -507,8 +510,7 @@ function tryParseUrl(urlStr) {
}
}
function getUrl(req) {
const urlStr = (req.query ? req.query.url : undefined) || (req.body ? req.body.url : undefined);
function getUrl(urlStr) {
const url = tryParseUrl(urlStr)
if (!url) {
throw new Error('No URL specified');
@ -722,10 +724,10 @@ async function retrieveHtml(page, logRecord) {
// Replacing element only of there are no content inside, b/c might remove important div with content.
// Article example: http://www.josiahzayner.com/2017/01/genetic-designer-part-i.html
// DIV with class "content-inner" has `url("https://resources.blogblog.com/blogblog/data/1kt/travel/bg_container.png")` background image.
if (el.innerHTML.length < 25) {
if (!el.textContent) {
const img = document.createElement('img');
img.src = matchedSRC[1];
el && el.parentNode && el.parentNode.removeChild(el);
el && el.parentNode && el.parentNode.replaceChild(img, el);
}
}
}
@ -797,7 +799,8 @@ async function preview(req, res) {
return res.sendStatus(500);
}
const url = getUrl(req);
const urlStr = (req.query ? req.query.url : undefined) || (req.body ? req.body.url : undefined);
const url = getUrl(urlStr);
console.log('preview request url', url);
const logRecord = {

View File

@ -1059,6 +1059,8 @@ Readability.prototype = {
if (node.className === 'omnivore-published-date' && this._isValidPublishedDate(node.textContent)) {
return new Date(node.textContent);
}
// we don't want to check for dates in the URL's
if (node.tagName.toLowerCase() === 'a') return
// Searching for the real date in the text content
let dateRegExpFound = this.REGEXPS.DATES_REGEXPS.find(regexp => regexp.test(node.textContent.trim()))
dateRegExpFound && (dateRegExpFound = dateRegExpFound.exec(node.textContent.trim()))

View File

@ -186,10 +186,10 @@ async function fetchSource(url, callbackFn) {
// Replacing element only of there are no content inside, b/c might remove important div with content.
// Article example: http://www.josiahzayner.com/2017/01/genetic-designer-part-i.html
// DIV with class "content-inner" has `url("https://resources.blogblog.com/blogblog/data/1kt/travel/bg_container.png")` background image.
if (el.innerHTML.length < 25) {
if (!el.textContent) {
const img = document.createElement('img');
img.src = matchedSRC[1];
el && el.parentNode && el.parentNode.removeChild(el);
el && el.parentNode && el.parentNode.replaceChild(img, el);
}
}
}

View File

@ -14,118 +14,40 @@
<td valign="top" style="width: 250px">
<ul>
<li>zhihu<br />
<a href="./test-pages/zhihu/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/zhihu/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/zhihu/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>community.musictribe.com<br />
<a href="./test-pages/community.musictribe.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/community.musictribe.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/community.musictribe.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>medium<br />
<a href="./test-pages/medium/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/medium/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/medium/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>moderndiplomacy<br />
<a href="./test-pages/moderndiplomacy/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/moderndiplomacy/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/moderndiplomacy/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>sydney.com<br />
<a href="./test-pages/sydney.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/sydney.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/sydney.com/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>news.utexas<br />
<a href="./test-pages/news.utexas/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/news.utexas/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/news.utexas/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>sciencedirect<br />
<a href="./test-pages/sciencedirect/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/sciencedirect/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/sciencedirect/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>nymag<br />
<a href="./test-pages/nymag/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/nymag/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/nymag/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>yuyue.com<br />
<a href="./test-pages/yuyue.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/yuyue.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/yuyue.com/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>computerenhance.com<br />
<a href="./test-pages/computerenhance.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/computerenhance.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/computerenhance.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>vanityfair<br />
<a href="./test-pages/vanityfair/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/vanityfair/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/vanityfair/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>cnbc<br />
<a href="./test-pages/cnbc/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/cnbc/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/cnbc/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>channelnewsasia<br />
<a href="./test-pages/channelnewsasia/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/channelnewsasia/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/channelnewsasia/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>danwang<br />
<a href="./test-pages/danwang/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/danwang/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/danwang/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>github-blog<br />
<a href="./test-pages/github-blog/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/github-blog/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/github-blog/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>mathoverflow<br />
<a href="./test-pages/mathoverflow/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/mathoverflow/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/mathoverflow/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>www.musingmind.org<br />
<a href="./test-pages/www.musingmind.org/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/www.musingmind.org/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/www.musingmind.org/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>infoproc<br />
<a href="./test-pages/infoproc/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/infoproc/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/infoproc/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>gdcvault<br />
<a href="./test-pages/gdcvault/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/gdcvault/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/gdcvault/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>rootsofprogress<br />
<a href="./test-pages/rootsofprogress/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/rootsofprogress/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/rootsofprogress/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>guardian<br />
<a href="./test-pages/guardian/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/guardian/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/guardian/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>elidourado<br />
<a href="./test-pages/elidourado/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/elidourado/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/elidourado/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>variety<br />
<a href="./test-pages/variety/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/variety/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/variety/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>instyle<br />
<a href="./test-pages/instyle/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/instyle/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/instyle/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>brookings.edu<br />
<a href="./test-pages/brookings.edu/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/brookings.edu/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/brookings.edu/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>ft.com<br />
@ -134,10 +56,382 @@
<a href="./test-pages/ft.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>gflownet<br />
<a href="./test-pages/gflownet/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/gflownet/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/gflownet/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>www.musingmind.org<br />
<a href="./test-pages/www.musingmind.org/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/www.musingmind.org/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/www.musingmind.org/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>digital-garden-docs<br />
<a href="./test-pages/digital-garden-docs/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/digital-garden-docs/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/digital-garden-docs/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>thevaluable.dev<br />
<a href="./test-pages/thevaluable.dev/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/thevaluable.dev/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/thevaluable.dev/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>fiercepharma<br />
<a href="./test-pages/fiercepharma/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/fiercepharma/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/fiercepharma/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>aboveavalon<br />
<a href="./test-pages/aboveavalon/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/aboveavalon/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/aboveavalon/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>techcrunch<br />
<a href="./test-pages/techcrunch/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/techcrunch/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/techcrunch/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>kdnuggets<br />
<a href="./test-pages/kdnuggets/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/kdnuggets/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/kdnuggets/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>youtube-embed<br />
<a href="./test-pages/youtube-embed/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/youtube-embed/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/youtube-embed/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>people<br />
<a href="./test-pages/people/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/people/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/people/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>sciencedirect<br />
<a href="./test-pages/sciencedirect/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/sciencedirect/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/sciencedirect/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>city-journal<br />
<a href="./test-pages/city-journal/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/city-journal/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/city-journal/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>jacobbrazeal<br />
<a href="./test-pages/jacobbrazeal/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/jacobbrazeal/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/jacobbrazeal/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>slowboring<br />
<a href="./test-pages/slowboring/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/slowboring/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/slowboring/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>omnivore_getting_started<br />
<a href="./test-pages/omnivore_getting_started/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/omnivore_getting_started/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/omnivore_getting_started/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>berthub<br />
<a href="./test-pages/berthub/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/berthub/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/berthub/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>cavesocial<br />
<a href="./test-pages/cavesocial/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/cavesocial/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/cavesocial/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>telegr.ph<br />
<a href="./test-pages/telegr.ph/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/telegr.ph/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/telegr.ph/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>substack-michaelshellenberger<br />
<a href="./test-pages/substack-michaelshellenberger/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/substack-michaelshellenberger/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/substack-michaelshellenberger/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>biospace<br />
<a href="./test-pages/biospace/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/biospace/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/biospace/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>danwang<br />
<a href="./test-pages/danwang/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/danwang/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/danwang/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>financialpost-fishing-for-chips<br />
<a href="./test-pages/financialpost-fishing-for-chips/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/financialpost-fishing-for-chips/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/financialpost-fishing-for-chips/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>blog.jetbrains.com<br />
<a href="./test-pages/blog.jetbrains.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/blog.jetbrains.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/blog.jetbrains.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>channelnewsasia<br />
<a href="./test-pages/channelnewsasia/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/channelnewsasia/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/channelnewsasia/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>robinwieruch.de<br />
<a href="./test-pages/robinwieruch.de/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/robinwieruch.de/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/robinwieruch.de/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>variety<br />
<a href="./test-pages/variety/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/variety/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/variety/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>rootsofprogress<br />
<a href="./test-pages/rootsofprogress/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/rootsofprogress/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/rootsofprogress/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>habr.com<br />
<a href="./test-pages/habr.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/habr.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/habr.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>berthub-2<br />
<a href="./test-pages/berthub-2/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/berthub-2/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/berthub-2/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>moxie.org<br />
<a href="./test-pages/moxie.org/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/moxie.org/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/moxie.org/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>spakhm<br />
<a href="./test-pages/spakhm/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/spakhm/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/spakhm/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>sydney.com<br />
<a href="./test-pages/sydney.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/sydney.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/sydney.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>github-blog<br />
<a href="./test-pages/github-blog/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/github-blog/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/github-blog/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>fast-company<br />
<a href="./test-pages/fast-company/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/fast-company/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/fast-company/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>milkroad<br />
<a href="./test-pages/milkroad/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/milkroad/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/milkroad/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>stratechery<br />
<a href="./test-pages/stratechery/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/stratechery/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/stratechery/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>zhihu<br />
<a href="./test-pages/zhihu/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/zhihu/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/zhihu/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>channelnewsasia02<br />
<a href="./test-pages/channelnewsasia02/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/channelnewsasia02/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/channelnewsasia02/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>newsletters<br />
<a href="./test-pages/newsletters/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/newsletters/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/newsletters/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>jon.bo<br />
<a href="./test-pages/jon.bo/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/jon.bo/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/jon.bo/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>garymarcus<br />
<a href="./test-pages/garymarcus/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/garymarcus/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/garymarcus/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>danluu<br />
<a href="./test-pages/danluu/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/danluu/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/danluu/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>infoproc<br />
<a href="./test-pages/infoproc/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/infoproc/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/infoproc/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>vanityfair<br />
<a href="./test-pages/vanityfair/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/vanityfair/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/vanityfair/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>wechat<br />
<a href="./test-pages/wechat/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/wechat/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/wechat/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>stackoverflow<br />
<a href="./test-pages/stackoverflow/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/stackoverflow/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/stackoverflow/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>getting_started_with_omnivore<br />
<a href="./test-pages/getting_started_with_omnivore/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/getting_started_with_omnivore/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/getting_started_with_omnivore/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>jsomers<br />
<a href="./test-pages/jsomers/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/jsomers/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/jsomers/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>pontagedue<br />
<a href="./test-pages/pontagedue/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/pontagedue/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/pontagedue/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>bookofhook.blogspot.com<br />
<a href="./test-pages/bookofhook.blogspot.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/bookofhook.blogspot.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/bookofhook.blogspot.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>johnhcochrane.blogspot<br />
<a href="./test-pages/johnhcochrane.blogspot/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/johnhcochrane.blogspot/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/johnhcochrane.blogspot/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>china.substack<br />
<a href="./test-pages/china.substack/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/china.substack/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/china.substack/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>substack-email<br />
<a href="./test-pages/substack-email/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/substack-email/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/substack-email/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>elidourado<br />
<a href="./test-pages/elidourado/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/elidourado/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/elidourado/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>energias-renovables.com<br />
<a href="./test-pages/energias-renovables.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/energias-renovables.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/energias-renovables.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>mathoverflow<br />
<a href="./test-pages/mathoverflow/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/mathoverflow/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/mathoverflow/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>gdcvault<br />
<a href="./test-pages/gdcvault/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/gdcvault/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/gdcvault/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>debugger.medium<br />
<a href="./test-pages/debugger.medium/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/debugger.medium/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/debugger.medium/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>computer.rip<br />
<a href="./test-pages/computer.rip/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/computer.rip/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/computer.rip/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>erik-engheim<br />
<a href="./test-pages/erik-engheim/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/erik-engheim/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/erik-engheim/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>instyle<br />
<a href="./test-pages/instyle/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/instyle/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/instyle/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>electrek<br />
<a href="./test-pages/electrek/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/electrek/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/electrek/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>dailymail<br />
<a href="./test-pages/dailymail/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/dailymail/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/dailymail/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>lesswrong<br />
<a href="./test-pages/lesswrong/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/lesswrong/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/lesswrong/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>ottawacitizen.com<br />
@ -152,334 +446,16 @@
<a href="./test-pages/nytimes/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>stratechery<br />
<a href="./test-pages/stratechery/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/stratechery/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/stratechery/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>yuyue.com<br />
<a href="./test-pages/yuyue.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/yuyue.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/yuyue.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>danluu<br />
<a href="./test-pages/danluu/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/danluu/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/danluu/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>financialpost-fishing-for-chips<br />
<a href="./test-pages/financialpost-fishing-for-chips/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/financialpost-fishing-for-chips/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/financialpost-fishing-for-chips/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>wechat<br />
<a href="./test-pages/wechat/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/wechat/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/wechat/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>samcurry<br />
<a href="./test-pages/samcurry/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/samcurry/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/samcurry/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>thevaluable.dev<br />
<a href="./test-pages/thevaluable.dev/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/thevaluable.dev/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/thevaluable.dev/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>jacobbrazeal<br />
<a href="./test-pages/jacobbrazeal/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/jacobbrazeal/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/jacobbrazeal/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>fiercepharma<br />
<a href="./test-pages/fiercepharma/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/fiercepharma/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/fiercepharma/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>brookings.edu<br />
<a href="./test-pages/brookings.edu/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/brookings.edu/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/brookings.edu/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>nytimes.com<br />
<a href="./test-pages/nytimes.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/nytimes.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/nytimes.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>stackoverflow<br />
<a href="./test-pages/stackoverflow/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/stackoverflow/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/stackoverflow/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>blog.jetbrains.com<br />
<a href="./test-pages/blog.jetbrains.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/blog.jetbrains.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/blog.jetbrains.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>bookofhook.blogspot.com<br />
<a href="./test-pages/bookofhook.blogspot.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/bookofhook.blogspot.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/bookofhook.blogspot.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>channelnewsasia02<br />
<a href="./test-pages/channelnewsasia02/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/channelnewsasia02/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/channelnewsasia02/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>aboveavalon<br />
<a href="./test-pages/aboveavalon/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/aboveavalon/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/aboveavalon/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>josephg<br />
<a href="./test-pages/josephg/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/josephg/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/josephg/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>city-journal<br />
<a href="./test-pages/city-journal/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/city-journal/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/city-journal/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>slowboring<br />
<a href="./test-pages/slowboring/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/slowboring/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/slowboring/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>ahhhhfs.com<br />
<a href="./test-pages/ahhhhfs.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/ahhhhfs.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/ahhhhfs.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>techcrunch<br />
<a href="./test-pages/techcrunch/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/techcrunch/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/techcrunch/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>habr.com<br />
<a href="./test-pages/habr.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/habr.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/habr.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>telegr.ph<br />
<a href="./test-pages/telegr.ph/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/telegr.ph/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/telegr.ph/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>bitfieldconsulting<br />
<a href="./test-pages/bitfieldconsulting/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/bitfieldconsulting/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/bitfieldconsulting/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>garymarcus<br />
<a href="./test-pages/garymarcus/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/garymarcus/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/garymarcus/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>substack-email<br />
<a href="./test-pages/substack-email/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/substack-email/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/substack-email/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>newsletters<br />
<a href="./test-pages/newsletters/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/newsletters/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/newsletters/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>computerenhance.com<br />
<a href="./test-pages/computerenhance.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/computerenhance.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/computerenhance.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>nymag<br />
<a href="./test-pages/nymag/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/nymag/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/nymag/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>milkroad<br />
<a href="./test-pages/milkroad/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/milkroad/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/milkroad/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>getting_started_with_omnivore<br />
<a href="./test-pages/getting_started_with_omnivore/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/getting_started_with_omnivore/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/getting_started_with_omnivore/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>news.utexas<br />
<a href="./test-pages/news.utexas/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/news.utexas/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/news.utexas/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>johnhcochrane.blogspot<br />
<a href="./test-pages/johnhcochrane.blogspot/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/johnhcochrane.blogspot/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/johnhcochrane.blogspot/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>fast-company<br />
<a href="./test-pages/fast-company/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/fast-company/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/fast-company/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>community.musictribe.com<br />
<a href="./test-pages/community.musictribe.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/community.musictribe.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/community.musictribe.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>moderndiplomacy<br />
<a href="./test-pages/moderndiplomacy/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/moderndiplomacy/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/moderndiplomacy/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>energias-renovables.com<br />
<a href="./test-pages/energias-renovables.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/energias-renovables.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/energias-renovables.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>computer.rip<br />
<a href="./test-pages/computer.rip/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/computer.rip/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/computer.rip/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>berthub-2<br />
<a href="./test-pages/berthub-2/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/berthub-2/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/berthub-2/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>lesswrong<br />
<a href="./test-pages/lesswrong/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/lesswrong/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/lesswrong/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>youtube-embed<br />
<a href="./test-pages/youtube-embed/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/youtube-embed/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/youtube-embed/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>biospace<br />
<a href="./test-pages/biospace/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/biospace/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/biospace/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>substack-michaelshellenberger<br />
<a href="./test-pages/substack-michaelshellenberger/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/substack-michaelshellenberger/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/substack-michaelshellenberger/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>china.substack<br />
<a href="./test-pages/china.substack/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/china.substack/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/china.substack/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>dailymail<br />
<a href="./test-pages/dailymail/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/dailymail/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/dailymail/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>people<br />
<a href="./test-pages/people/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/people/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/people/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>robinwieruch.de<br />
<a href="./test-pages/robinwieruch.de/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/robinwieruch.de/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/robinwieruch.de/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>spakhm<br />
<a href="./test-pages/spakhm/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/spakhm/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/spakhm/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>cavesocial<br />
<a href="./test-pages/cavesocial/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/cavesocial/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/cavesocial/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>omnivore_getting_started<br />
<a href="./test-pages/omnivore_getting_started/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/omnivore_getting_started/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/omnivore_getting_started/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>electrek<br />
<a href="./test-pages/electrek/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/electrek/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/electrek/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>berthub<br />
<a href="./test-pages/berthub/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/berthub/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/berthub/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>jsomers<br />
<a href="./test-pages/jsomers/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/jsomers/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/jsomers/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>debugger.medium<br />
<a href="./test-pages/debugger.medium/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/debugger.medium/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/debugger.medium/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>jon.bo<br />
<a href="./test-pages/jon.bo/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/jon.bo/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/jon.bo/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>kdnuggets<br />
<a href="./test-pages/kdnuggets/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/kdnuggets/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/kdnuggets/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>cnbc<br />
<a href="./test-pages/cnbc/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/cnbc/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/cnbc/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>nytimes-podcasts<br />
@ -488,16 +464,52 @@
<a href="./test-pages/nytimes-podcasts/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>erik-engheim<br />
<a href="./test-pages/erik-engheim/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/erik-engheim/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/erik-engheim/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>gflownet<br />
<a href="./test-pages/gflownet/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/gflownet/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/gflownet/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>moxie.org<br />
<a href="./test-pages/moxie.org/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/moxie.org/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/moxie.org/distiller.html" target="iframe_b">[dom-distiller]</a>
<li>medium<br />
<a href="./test-pages/medium/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/medium/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/medium/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>guardian<br />
<a href="./test-pages/guardian/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/guardian/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/guardian/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>ahhhhfs.com<br />
<a href="./test-pages/ahhhhfs.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/ahhhhfs.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/ahhhhfs.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>bitfieldconsulting<br />
<a href="./test-pages/bitfieldconsulting/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/bitfieldconsulting/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/bitfieldconsulting/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>samcurry<br />
<a href="./test-pages/samcurry/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/samcurry/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/samcurry/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>nytimes.com<br />
<a href="./test-pages/nytimes.com/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/nytimes.com/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/nytimes.com/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
<li>josephg<br />
<a href="./test-pages/josephg/source.html" target="iframe_b">[source]</a>
<a href="./test-pages/josephg/expected.html" target="iframe_b">[readability]</a>
<a href="./test-pages/josephg/distiller.html" target="iframe_b">[dom-distiller]</a>
</li>
</ul>

View File

@ -0,0 +1,13 @@
<div><h1>
🏡
</h1><h1 tabindex="-1">
Obsidian Digital Garden
</h1><p>
The <a href="https://github.com/oleeskild/obsidian-digital-garden" target="_blank">Obsidian Digital Garden Plugin</a> is a free and open source publishing tool for <a href="https://obsidian.md" target="_blank">Obsidian</a>.
</p><p>
Publish your notes directly from <a href="https://obsidian.md/" target="_blank">Obsidian</a> to the internet. While <a href="/features/">feature packed</a>, it is <a href="/getting-started/03-note-settings/">highly configurable</a> and <a href="/advanced/adding-custom-components/">hackable</a>. Enable and disable features on a per-note basis. Use it as a full fledged digital garden or as a <a href="/example-pages/simple-page/">simple note sharing solution</a>.
</p><h2 tabindex="-1">
Examples
</h2><p>
This site is itself powered by the Digital Garden plugin.
</p></div>

View File

@ -0,0 +1,11 @@
{
"title": "Digital Garden Overview",
"byline": null,
"dir": null,
"excerpt": "The Obsidian Digital Garden Plugin is a free and open source publishing tool for Obsidian.",
"siteName": "fakehost",
"siteIcon": "http://fakehost/favicon.ico",
"publishedDate": null,
"language": "English",
"readerable": false
}

View File

@ -0,0 +1,52 @@
<DIV class="page" id="readability-page-1">
<DIV>
<header>
</header>
<h2> 🏡 </h2>
<h2 tabindex="-1" id="obsidian-digital-garden"> Obsidian Digital Garden </h2>
<p> The <a href="https://github.com/oleeskild/obsidian-digital-garden" target="_blank">Obsidian Digital Garden Plugin</a> is a free and open source publishing tool for <a href="https://obsidian.md/" target="_blank">Obsidian</a>. </p>
<p> Publish your notes directly from <a href="https://obsidian.md/" target="_blank">Obsidian</a> to the internet. While <a href="http://fakehost/features/">feature packed</a>, it is <a href="http://fakehost/getting-started/03-note-settings/">highly configurable</a> and <a href="http://fakehost/advanced/adding-custom-components/">hackable</a>. Enable and disable features on a per-note basis. Use it as a full fledged digital garden or as a <a href="http://fakehost/example-pages/simple-page/">simple note sharing solution</a>. </p>
<p> 👉 <a href="http://fakehost/getting-started/01-getting-started/">Getting Started</a><br> 👉 <a href="http://fakehost/features/">Features</a>
</p>
<h2 id="examples" tabindex="-1"> Examples </h2>
<p> This site is itself powered by the Digital Garden plugin. </p>
<div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1668690350/dgdocs/CleanShot_2022-11-17_at_14.05.20_2x.png"> <a href="https://edav-garden.netlify.app/" target="_blank">Edav Garden</a>
</p>
</div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1668500110/dgdocs/CleanShot_2022-11-15_at_09.14.26_2x.png"> <a href="https://ajy.co/" target="_blank">ajy.co</a>
</p>
</div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1672992556/dgdocs/CleanShot_2023-02-05_at_20.18.45_2x"> <a href="https://hermitage.utsob.me/" target="_blank">Hermitage</a>
</p>
</div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1668068263/dgdocs/CleanShot_2022-11-10_at_09.17.28_2x.png"> <a href="https://notes.thatother.dev/" target="_blank">That Other Dev</a>
</p>
</div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1668500118/dgdocs/CleanShot_2022-11-15_at_09.14.17_2x.png"> <a href="https://razvan-andrei-surdu.eu/" target="_blank">Razvan Andrei Surdu</a>
</p>
</div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1668068103/dgdocs/CleanShot_2023-02-05_at_20.17.02_2x"> <a href="https://icewind.quest/" target="_blank">IceWind.Quest</a>
</p>
</div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1668068358/dgdocs/CleanShot_2022-11-10_at_09.19.06_2x.png"> <a href="https://notes.hxhc.xyz/" target="_blank">hxhc</a>
</p>
</div>
<div>
<p><img src="https://res.cloudinary.com/dix4ngy25/image/upload/c_scale,r_8,w_300/v1671387169/dgdocs/CleanShot_2022-12-18_at_19.12.28_2x.png"> <a href="https://notes.ole.dev/" target="_blank">notes.ole.dev</a>
</p>
</div>
</div>
<div>
<p><a href="https://github.com/oleeskild/obsidian-digital-garden/issues/55" target="_blank"><button>Submit your site</button></a>
</p>
</div>
</DIV>
</DIV>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
https://dg-docs.ole.dev/

View File

@ -0,0 +1,40 @@
<div><p>
Im minding my own business, wandering around the Internet when I am smacked in the eyes by an interesting blog title “Dwarf begone! Five early medieval ways to rid yourself of dwarfs” (<a href="https://thijsporck.com/2020/05/03/dwarf-begone/">https://thijsporck.com/2020/05/03/dwarf-begone/</a>)<br/>
<br/>
I believe it is the worst kept secret that I tend to be easily earwormed, and an even worse kept one that a “song” called Diggy, Diggy hole is particular effective as a weaponised version. (I recommend the Wind Rose version if you need to check it out) I was amused, then, to read:
</p><p>
<br/>
“The charm [found among the <em>Lacnunga</em>, instructs one to take seven little wafers like the ones people use to worship; i.e. the Host] and write down the names of seven saints (Maximianus, Malcus, Johannes, Martinianus, Dionysius, Constantinus and Serafion the names of the Christian saints collectively known as the Seven Sleepers)] further instructs that a virgin must hang these wafers around the neck of the patient and that you are to sing a particular song, “ærest on þæt wynstre eare, þænne on þæt swiðre eare, þænne bufan þæs mannes moldan” [first into the left ear, then into the right ear, then on top of the patients head]. This ritual is to be repeated for three days in a row”<br/>
<br/>
So earworm a man to rid him of a dwarf Interesting! Why would a medieval person have wanted to do such a thing?
</p><p>
“The Old English word for dwarf, <em>dweorg</em>, could also denote “fever, perhaps high fever with delirium and convulsions” [<em><a rel="noreferrer noopener" href="https://www.doe.utoronto.ca/pages/index.html" target="_blank">Dictionary of Old English</a></em>, s.v. <em>dweorg</em>]”
</p><p>
The blogpost offers the following as the generally accepted translation of Harley MS 585, fol. 167v
</p><p>
Here came a spider-creature crawling in;<br/>
His web was a harness held in his hand.<br/>
Stalking, he said that you were his steed.<br/>
Then he threw his net around your neck,<br/>
Reining you in. Then they both began<br/>
To rise from the land, spring from the earth.<br/>
As they leapt up, their limbs grew cool.<br/>
Then the spider-dwarfs sister jumped in,<br/>
Ending it all by swearing these oaths:<br/>
No hurt should come to harm the sick,<br/>
No pain to the patient who receives the cure,<br/>
No harm to the one who sings this charm.
</p><p>
Amen. Let it be done. ] (Trans. Williamson 2017, p. 1075)
</p><p>
I LOVE the image of a shady “spiderwiht” (awesome word) attempting to ride a man and making him writhe and convulse with fever as a result.
</p><p>
I was also amused at the idea of using a skull fragment to inscribe the runes “DEAD IS DWERG” on as a talisman against dwarves, but, you know, I love my household, Im sure I would never resort to such things..<br/>
</p><figure><img src="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=500" alt="" srcset="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg 500w, https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=150 150w, https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=300 300w" sizes="(max-width: 500px) 100vw, 500px"/></figure><p>
Rights Holder: Norfolk County Council<br/>
CC License: By-SA <a href="https://finds.org.uk/database/artefacts/record/id/751600" rel="nofollow">https://finds.org.uk/database/artefacts/record/id/751600</a>
</p><p>
Its an interesting article. Ill shut up now. No singing here, no, uh uh…. <em>brothers of the mine..</em> damnnnnnnnn<br/>
</p><div>
Advertisement
</div></div>

View File

@ -0,0 +1,12 @@
{
"title": "DEAD IS DWERG",
"byline": null,
"dir": null,
"excerpt": "I'm minding my own business, wandering around the Internet when I am smacked in the eyes by an interesting blog title - \"Dwarf begone! Five early medieval ways to rid yourself of dwarfs\" (https://thijsporck.com/2020/05/03/dwarf-begone/) I believe it is the worst kept secret that I tend to be easily earwormed, and an even worse kept one…",
"siteName": "Time traveling Órlaith",
"siteIcon": "https://s0.wp.com/i/favicon.ico",
"previewImage": "https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=640",
"publishedDate": "2023-06-20T22:24:10.000Z",
"language": "English",
"readerable": true
}

View File

@ -0,0 +1,29 @@
<DIV class="page" id="readability-page-1">
<article id="post-3917">
<!-- .entry-media -->
<div>
<DIV data-adtags-visited="true">
<p> Im minding my own business, wandering around the Internet when I am smacked in the eyes by an interesting blog title “Dwarf begone! Five early medieval ways to rid yourself of dwarfs” (<a href="https://thijsporck.com/2020/05/03/dwarf-begone/">https://thijsporck.com/2020/05/03/dwarf-begone/</a>)</p>
<p> I believe it is the worst kept secret that I tend to be easily earwormed, and an even worse kept one that a “song” called Diggy, Diggy hole is particular effective as a weaponised version. (I recommend the Wind Rose version if you need to check it out) I was amused, then, to read: </p>
</DIV>
<DIV data-adtags-visited="true">
<p> “The charm [found among the&nbsp;<em>Lacnunga</em>, instructs one to take seven little wafers like the ones people use to worship; i.e. the Host] and write down the names of seven saints (Maximianus, Malcus, Johannes, Martinianus, Dionysius, Constantinus and Serafion the names of the Christian saints collectively known as the Seven Sleepers)] further instructs that a virgin must hang these wafers around the neck of the patient and that you are to sing a particular song, “ærest on þæt wynstre eare, þænne on þæt swiðre eare, þænne bufan þæs mannes moldan” [first into the left ear, then into the right ear, then on top of the patients head]. This ritual is to be repeated for three days in a row”</p>
<p> So earworm a man to rid him of a dwarf Interesting! Why would a medieval person have wanted to do such a thing? </p>
</DIV>
<p data-adtags-visited="true"> “The Old English word for dwarf,&nbsp;<em>dweorg</em>, could also denote “fever, perhaps high fever with delirium and convulsions” [<em><a rel="noreferrer noopener" href="https://www.doe.utoronto.ca/pages/index.html" target="_blank">Dictionary of Old English</a></em>, s.v.&nbsp;<em>dweorg</em>]” </p>
<p data-adtags-visited="true"> The blogpost offers the following as the generally accepted translation of Harley MS 585, fol. 167v </p>
<p data-adtags-visited="true"> Here came a spider-creature crawling in;<br> His web was a harness held in his hand.<br> Stalking, he said that you were his steed.<br> Then he threw his net around your neck,<br> Reining you in. Then they both began<br> To rise from the land, spring from the earth.<br> As they leapt up, their limbs grew cool.<br> Then the spider-dwarfs sister jumped in,<br> Ending it all by swearing these oaths:<br> No hurt should come to harm the sick,<br> No pain to the patient who receives the cure,<br> No harm to the one who sings this charm. </p>
<p data-adtags-visited="true"> Amen. Let it be done. ] (Trans. Williamson 2017, p. 1075) </p>
<p data-adtags-visited="true"> I LOVE the image of a shady “spiderwiht” (awesome word) attempting to ride a man and making him writhe and convulse with fever as a result. </p>
<p data-adtags-visited="true"> I was also amused at the idea of using a skull fragment to inscribe the runes “DEAD IS DWERG” on as a talisman against dwarves, but, you know, I love my household, Im sure I would never resort to such things..<br>
</p>
<figure>
<a href="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg"><img data-attachment-id="3926" data-permalink="https://pontagedue.wordpress.com/2023/06/20/dead-is-dwerg/60948_63179c_ms_inscribedobject_detail/" data-orig-file="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg" data-orig-size="500,266" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="60948_63179c_ms_inscribedobject_detail" data-image-description="" data-image-caption="" data-medium-file="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=300" data-large-file="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=500" src="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=500" alt="" srcset="https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg 500w, https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=150 150w, https://pontagedue.files.wordpress.com/2023/06/60948_63179c_ms_inscribedobject_detail.jpg?w=300 300w" sizes="(max-width: 500px) 100vw, 500px"></a>
</figure>
<p data-adtags-visited="true"> Rights Holder: Norfolk County Council<br> CC License:&nbsp;By-SA <a href="https://finds.org.uk/database/artefacts/record/id/751600" rel="nofollow">https://finds.org.uk/database/artefacts/record/id/751600</a>
</p>
<p data-adtags-visited="true"> Its an interesting article. Ill shut up now. No singing here, no, uh uh…. <em>brothers of the mine..</em> damnnnnnnnn<br>
</p>
</div><!-- .entry-inner -->
</article>
</DIV>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
https://pontagedue.wordpress.com/2023/06/20/dead-is-dwerg/