@ecency/render-helper 2.4.5 → 2.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +15 -5
- package/dist/browser/index.js.map +1 -1
- package/dist/node/index.cjs +36 -6
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.mjs +15 -5
- package/dist/node/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/browser/index.js
CHANGED
|
@@ -4,8 +4,10 @@ import multihash from 'multihashes';
|
|
|
4
4
|
import querystring from 'querystring';
|
|
5
5
|
import { Remarkable } from 'remarkable';
|
|
6
6
|
import { linkify as linkify$1 } from 'remarkable/linkify';
|
|
7
|
-
import { LRUCache } from 'lru-cache';
|
|
8
7
|
import he from 'he';
|
|
8
|
+
import * as htmlparser2 from 'htmlparser2';
|
|
9
|
+
import * as domSerializerModule from 'dom-serializer';
|
|
10
|
+
import { LRUCache } from 'lru-cache';
|
|
9
11
|
|
|
10
12
|
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
11
13
|
get: (a2, b) => (typeof require !== "undefined" ? require : a2)[b]
|
|
@@ -390,6 +392,12 @@ var getInlineMeta = (el, href) => {
|
|
|
390
392
|
isInline: textMatches || titleMatches
|
|
391
393
|
};
|
|
392
394
|
};
|
|
395
|
+
var addLineBreakBeforePostLink = (el, forApp, isInline) => {
|
|
396
|
+
if (forApp && isInline && el.parentNode) {
|
|
397
|
+
const br = el.ownerDocument.createElement("br");
|
|
398
|
+
el.parentNode.insertBefore(br, el);
|
|
399
|
+
}
|
|
400
|
+
};
|
|
393
401
|
function a(el, forApp, webp, parentDomain = "ecency.com") {
|
|
394
402
|
if (!el || !el.parentNode) {
|
|
395
403
|
return;
|
|
@@ -453,6 +461,7 @@ function a(el, forApp, webp, parentDomain = "ecency.com") {
|
|
|
453
461
|
el.setAttribute("href", h);
|
|
454
462
|
el.setAttribute("data-is-inline", "" + isInline);
|
|
455
463
|
}
|
|
464
|
+
addLineBreakBeforePostLink(el, forApp, isInline);
|
|
456
465
|
return;
|
|
457
466
|
}
|
|
458
467
|
const mentionMatch = href.match(MENTION_REGEX);
|
|
@@ -530,6 +539,7 @@ function a(el, forApp, webp, parentDomain = "ecency.com") {
|
|
|
530
539
|
el.setAttribute("href", h);
|
|
531
540
|
el.setAttribute("data-is-inline", "" + isInline);
|
|
532
541
|
}
|
|
542
|
+
addLineBreakBeforePostLink(el, forApp, isInline);
|
|
533
543
|
return;
|
|
534
544
|
}
|
|
535
545
|
}
|
|
@@ -594,6 +604,7 @@ function a(el, forApp, webp, parentDomain = "ecency.com") {
|
|
|
594
604
|
el.setAttribute("href", h);
|
|
595
605
|
el.setAttribute("data-is-inline", "" + isInline);
|
|
596
606
|
}
|
|
607
|
+
addLineBreakBeforePostLink(el, forApp, isInline);
|
|
597
608
|
return;
|
|
598
609
|
}
|
|
599
610
|
}
|
|
@@ -679,6 +690,7 @@ function a(el, forApp, webp, parentDomain = "ecency.com") {
|
|
|
679
690
|
el.setAttribute("href", h);
|
|
680
691
|
el.setAttribute("data-is-inline", "" + isInline);
|
|
681
692
|
}
|
|
693
|
+
addLineBreakBeforePostLink(el, forApp, isInline);
|
|
682
694
|
return;
|
|
683
695
|
}
|
|
684
696
|
const BCmatch = href.match(BITCHUTE_REGEX);
|
|
@@ -1263,6 +1275,7 @@ function traverse(node, forApp, depth = 0, webp = false, state = { firstImageFou
|
|
|
1263
1275
|
function cleanReply(s) {
|
|
1264
1276
|
return (s ? s.split("\n").filter((item) => item.toLowerCase().includes("posted using [partiko") === false).filter((item) => item.toLowerCase().includes("posted using [dapplr") === false).filter((item) => item.toLowerCase().includes("posted using [leofinance") === false).filter((item) => item.toLowerCase().includes("posted via [neoxian") === false).filter((item) => item.toLowerCase().includes("posted using [neoxian") === false).filter((item) => item.toLowerCase().includes("posted with [stemgeeks") === false).filter((item) => item.toLowerCase().includes("posted using [bilpcoin") === false).filter((item) => item.toLowerCase().includes("posted using [inleo") === false).filter((item) => item.toLowerCase().includes("posted using [sportstalksocial]") === false).filter((item) => item.toLowerCase().includes("<center><sub>[posted using aeneas.blog") === false).filter((item) => item.toLowerCase().includes("<center><sub>posted via [proofofbrain.io") === false).filter((item) => item.toLowerCase().includes("<center>posted on [hypnochain") === false).filter((item) => item.toLowerCase().includes("<center><sub>posted via [weedcash.network") === false).filter((item) => item.toLowerCase().includes("<center>posted on [naturalmedicine.io") === false).filter((item) => item.toLowerCase().includes("<center><sub>posted via [musicforlife.io") === false).filter((item) => item.toLowerCase().includes("if the truvvl embed is unsupported by your current frontend, click this link to view this story") === false).filter((item) => item.toLowerCase().includes("<center><em>posted from truvvl") === false).filter((item) => item.toLowerCase().includes('view this post <a href="https://travelfeed.io/') === false).filter((item) => item.toLowerCase().includes("read this post on travelfeed.io for the best experience") === false).filter((item) => item.toLowerCase().includes('posted via <a href="https://www.dporn.co/"') === false).filter((item) => item.toLowerCase().includes("\u25B6\uFE0F [watch on 3speak](https://3speak") === false).filter((item) => item.toLowerCase().includes("<sup><sub>posted via [inji.com]") === false).filter((item) => item.toLowerCase().includes("view this post on [liketu]") === false).filter((item) => item.toLowerCase().includes("[via Inbox]") === false).join("\n") : "").replace('Posted via <a href="https://d.buzz" data-link="promote-link">D.Buzz</a>', "").replace('<div class="pull-right"><a href="/@hive.engage"></a></div>', "").replace('<div><a href="https://engage.hivechain.app"></a></div>', "").replace(`<div class="text-center"><img src="https://cdn.steemitimages.com/DQmNp6YwAm2qwquALZw8PdcovDorwaBSFuxQ38TrYziGT6b/A-20.png"><a href="https://bit.ly/actifit-app"><img src="https://cdn.steemitimages.com/DQmQqfpSmcQtfrHAtzfBtVccXwUL9vKNgZJ2j93m8WNjizw/l5.png"></a><a href="https://bit.ly/actifit-ios"><img src="https://cdn.steemitimages.com/DQmbWy8KzKT1UvCvznUTaFPw6wBUcyLtBT5XL9wdbB7Hfmn/l6.png"></a></div>`, "");
|
|
1265
1277
|
}
|
|
1278
|
+
var domSerializer = domSerializerModule.default || domSerializerModule;
|
|
1266
1279
|
var lolight = null;
|
|
1267
1280
|
function getLolightInstance() {
|
|
1268
1281
|
if (!lolight) {
|
|
@@ -1354,8 +1367,6 @@ function markdownToHTML(input, forApp, webp, parentDomain = "ecency.com") {
|
|
|
1354
1367
|
try {
|
|
1355
1368
|
output = md.render(input);
|
|
1356
1369
|
const preSanitized = sanitizeHtml(output);
|
|
1357
|
-
const htmlparser2 = __require("htmlparser2");
|
|
1358
|
-
const domSerializer = __require("dom-serializer").default;
|
|
1359
1370
|
const dom = htmlparser2.parseDocument(preSanitized, {
|
|
1360
1371
|
// lenient options - don't throw on malformed HTML
|
|
1361
1372
|
lowerCaseTags: false,
|
|
@@ -1366,8 +1377,7 @@ function markdownToHTML(input, forApp, webp, parentDomain = "ecency.com") {
|
|
|
1366
1377
|
traverse(doc, forApp, 0, webp, { firstImageFound: false }, parentDomain);
|
|
1367
1378
|
output = serializer.serializeToString(doc);
|
|
1368
1379
|
} catch (fallbackError) {
|
|
1369
|
-
const
|
|
1370
|
-
const escapedContent = he2.encode(output || md.render(input));
|
|
1380
|
+
const escapedContent = he.encode(output || md.render(input));
|
|
1371
1381
|
output = `<p dir="auto">${escapedContent}</p>`;
|
|
1372
1382
|
}
|
|
1373
1383
|
}
|