@commonpub/server 2.51.0 → 2.52.0
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/import/generic.d.ts.map +1 -1
- package/dist/import/generic.js +5 -0
- package/dist/import/generic.js.map +1 -1
- package/dist/import/images.d.ts +32 -0
- package/dist/import/images.d.ts.map +1 -0
- package/dist/import/images.js +155 -0
- package/dist/import/images.js.map +1 -0
- package/dist/import/platforms/hackster.d.ts.map +1 -1
- package/dist/import/platforms/hackster.js +6 -0
- package/dist/import/platforms/hackster.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/import/generic.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/import/generic.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,CAmDtE"}
|
package/dist/import/generic.js
CHANGED
|
@@ -6,12 +6,17 @@ import { Readability } from '@mozilla/readability';
|
|
|
6
6
|
import TurndownService from 'turndown';
|
|
7
7
|
import { parseHTML } from 'linkedom';
|
|
8
8
|
import { markdownToBlockTuples } from '@commonpub/editor';
|
|
9
|
+
import { resolveContentImages } from './images.js';
|
|
9
10
|
/**
|
|
10
11
|
* Extract article content from raw HTML using Readability + Turndown.
|
|
11
12
|
* This is the fallback for any URL without a platform-specific handler.
|
|
12
13
|
*/
|
|
13
14
|
export function extractArticle(html, url) {
|
|
14
15
|
const { document } = parseHTML(html);
|
|
16
|
+
// Resolve lazy-loaded <img> (data-src/data-srcset/srcset) to real,
|
|
17
|
+
// absolute URLs BEFORE Readability runs, so in-article images survive
|
|
18
|
+
// the HTML→markdown conversion instead of becoming broken placeholders.
|
|
19
|
+
resolveContentImages(document, url);
|
|
15
20
|
// Extract metadata from <head> before Readability modifies the DOM
|
|
16
21
|
const ogTitle = document.querySelector('meta[property="og:title"]')?.getAttribute('content');
|
|
17
22
|
const ogDescription = document.querySelector('meta[property="og:description"]')?.getAttribute('content')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/import/generic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/import/generic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy-load image resolution for content import.
|
|
3
|
+
*
|
|
4
|
+
* Modern sites (Hackster, Medium, most CMSes) lazy-load images:
|
|
5
|
+
*
|
|
6
|
+
* <img src="data:image/gif;base64,…1x1placeholder"
|
|
7
|
+
* data-src="https://cdn/real.jpg"
|
|
8
|
+
* data-srcset="https://cdn/real-640.jpg 640w, …1280w">
|
|
9
|
+
*
|
|
10
|
+
* Turndown only reads `src`, so without this the importer emits
|
|
11
|
+
* `` (or empty) and every in-article image is broken.
|
|
12
|
+
*
|
|
13
|
+
* `resolveContentImages` walks every <img> in a parsed document and
|
|
14
|
+
* rewrites `src` to the best real URL it can find, absolutized against
|
|
15
|
+
* the page URL, stripping the lazy attributes so the HTML→markdown
|
|
16
|
+
* step picks up the real image. Mutates the document in place; safe to
|
|
17
|
+
* call before Readability / innerHTML extraction.
|
|
18
|
+
*
|
|
19
|
+
* Conservative: if no real URL can be determined, the <img> is left
|
|
20
|
+
* untouched (better a possibly-bad src than dropping the node).
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Resolve lazy-loaded <img> elements in `doc` to their real `src`,
|
|
24
|
+
* absolutized against `baseUrl`. Mutates in place.
|
|
25
|
+
*
|
|
26
|
+
* Returns the number of <img> elements whose `src` was rewritten
|
|
27
|
+
* (useful for tests / diagnostics).
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolveContentImages(doc: {
|
|
30
|
+
querySelectorAll(sel: string): ArrayLike<unknown>;
|
|
31
|
+
}, baseUrl: string): number;
|
|
32
|
+
//# sourceMappingURL=images.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/import/images.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAsEH;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE;IAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;CAAE,EAC1D,OAAO,EAAE,MAAM,GACd,MAAM,CAiER"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy-load image resolution for content import.
|
|
3
|
+
*
|
|
4
|
+
* Modern sites (Hackster, Medium, most CMSes) lazy-load images:
|
|
5
|
+
*
|
|
6
|
+
* <img src="data:image/gif;base64,…1x1placeholder"
|
|
7
|
+
* data-src="https://cdn/real.jpg"
|
|
8
|
+
* data-srcset="https://cdn/real-640.jpg 640w, …1280w">
|
|
9
|
+
*
|
|
10
|
+
* Turndown only reads `src`, so without this the importer emits
|
|
11
|
+
* `` (or empty) and every in-article image is broken.
|
|
12
|
+
*
|
|
13
|
+
* `resolveContentImages` walks every <img> in a parsed document and
|
|
14
|
+
* rewrites `src` to the best real URL it can find, absolutized against
|
|
15
|
+
* the page URL, stripping the lazy attributes so the HTML→markdown
|
|
16
|
+
* step picks up the real image. Mutates the document in place; safe to
|
|
17
|
+
* call before Readability / innerHTML extraction.
|
|
18
|
+
*
|
|
19
|
+
* Conservative: if no real URL can be determined, the <img> is left
|
|
20
|
+
* untouched (better a possibly-bad src than dropping the node).
|
|
21
|
+
*/
|
|
22
|
+
/** Common attributes lazy-load libraries stash the real URL in. */
|
|
23
|
+
const LAZY_SRC_ATTRS = [
|
|
24
|
+
'data-src',
|
|
25
|
+
'data-original',
|
|
26
|
+
'data-lazy-src',
|
|
27
|
+
'data-lazy',
|
|
28
|
+
'data-url',
|
|
29
|
+
'data-hi-res-src',
|
|
30
|
+
'data-full-src',
|
|
31
|
+
];
|
|
32
|
+
const LAZY_SRCSET_ATTRS = ['data-srcset', 'data-lazy-srcset'];
|
|
33
|
+
/** A `src` that isn't a real image — inline placeholder, blank, spacer. */
|
|
34
|
+
function isPlaceholderSrc(src) {
|
|
35
|
+
if (!src)
|
|
36
|
+
return true;
|
|
37
|
+
const s = src.trim();
|
|
38
|
+
if (s === '')
|
|
39
|
+
return true;
|
|
40
|
+
if (s.startsWith('data:'))
|
|
41
|
+
return true; // inline base64 placeholder
|
|
42
|
+
if (s.startsWith('about:'))
|
|
43
|
+
return true;
|
|
44
|
+
// 1x1 / spacer gif conventions
|
|
45
|
+
if (/(?:^|\/)(?:blank|spacer|placeholder|transparent|pixel)\.(?:gif|png)(?:$|\?)/i.test(s)) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Pick the highest-resolution URL from a srcset string.
|
|
52
|
+
* `"a.jpg 320w, b.jpg 640w, c.jpg 1280w"` → `c.jpg`.
|
|
53
|
+
* Falls back to the last entry when there are no width/density
|
|
54
|
+
* descriptors.
|
|
55
|
+
*/
|
|
56
|
+
function bestFromSrcset(srcset) {
|
|
57
|
+
const candidates = srcset
|
|
58
|
+
.split(',')
|
|
59
|
+
.map((part) => part.trim())
|
|
60
|
+
.filter(Boolean)
|
|
61
|
+
.map((part) => {
|
|
62
|
+
const [url, descriptor] = part.split(/\s+/, 2);
|
|
63
|
+
let weight = 0;
|
|
64
|
+
if (descriptor) {
|
|
65
|
+
const w = descriptor.match(/^(\d+(?:\.\d+)?)w$/);
|
|
66
|
+
const x = descriptor.match(/^(\d+(?:\.\d+)?)x$/);
|
|
67
|
+
if (w)
|
|
68
|
+
weight = parseFloat(w[1]);
|
|
69
|
+
else if (x)
|
|
70
|
+
weight = parseFloat(x[1]) * 1000; // density: prefer over small widths
|
|
71
|
+
}
|
|
72
|
+
return { url, weight };
|
|
73
|
+
})
|
|
74
|
+
.filter((c) => !!c.url);
|
|
75
|
+
if (candidates.length === 0)
|
|
76
|
+
return null;
|
|
77
|
+
// Highest descriptor wins; ties / no-descriptor → last listed (usually largest).
|
|
78
|
+
let best = candidates[0];
|
|
79
|
+
for (const c of candidates) {
|
|
80
|
+
if (c.weight >= best.weight)
|
|
81
|
+
best = c;
|
|
82
|
+
}
|
|
83
|
+
return best.url ?? null;
|
|
84
|
+
}
|
|
85
|
+
function absolutize(url, base) {
|
|
86
|
+
try {
|
|
87
|
+
return new URL(url, base).toString();
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return url;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Resolve lazy-loaded <img> elements in `doc` to their real `src`,
|
|
95
|
+
* absolutized against `baseUrl`. Mutates in place.
|
|
96
|
+
*
|
|
97
|
+
* Returns the number of <img> elements whose `src` was rewritten
|
|
98
|
+
* (useful for tests / diagnostics).
|
|
99
|
+
*/
|
|
100
|
+
export function resolveContentImages(doc, baseUrl) {
|
|
101
|
+
const imgs = Array.from(doc.querySelectorAll('img'));
|
|
102
|
+
let rewritten = 0;
|
|
103
|
+
for (const img of imgs) {
|
|
104
|
+
const currentSrc = img.getAttribute('src');
|
|
105
|
+
// 1. Explicit lazy single-URL attributes win first.
|
|
106
|
+
let resolved = null;
|
|
107
|
+
for (const attr of LAZY_SRC_ATTRS) {
|
|
108
|
+
const v = img.getAttribute(attr);
|
|
109
|
+
if (v && !isPlaceholderSrc(v)) {
|
|
110
|
+
resolved = v;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// 2. Lazy srcset variants.
|
|
115
|
+
if (!resolved) {
|
|
116
|
+
for (const attr of LAZY_SRCSET_ATTRS) {
|
|
117
|
+
const v = img.getAttribute(attr);
|
|
118
|
+
if (v) {
|
|
119
|
+
const pick = bestFromSrcset(v);
|
|
120
|
+
if (pick && !isPlaceholderSrc(pick)) {
|
|
121
|
+
resolved = pick;
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// 3. A real (non-placeholder) plain srcset.
|
|
128
|
+
if (!resolved) {
|
|
129
|
+
const srcset = img.getAttribute('srcset');
|
|
130
|
+
if (srcset) {
|
|
131
|
+
const pick = bestFromSrcset(srcset);
|
|
132
|
+
if (pick && !isPlaceholderSrc(pick))
|
|
133
|
+
resolved = pick;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// 4. The existing src, only if it's not a placeholder.
|
|
137
|
+
if (!resolved && !isPlaceholderSrc(currentSrc)) {
|
|
138
|
+
resolved = currentSrc;
|
|
139
|
+
}
|
|
140
|
+
if (!resolved)
|
|
141
|
+
continue; // nothing usable — leave the node as-is
|
|
142
|
+
const absolute = absolutize(resolved, baseUrl);
|
|
143
|
+
if (absolute !== currentSrc) {
|
|
144
|
+
img.setAttribute('src', absolute);
|
|
145
|
+
rewritten++;
|
|
146
|
+
}
|
|
147
|
+
// Drop lazy attrs so downstream HTML→markdown doesn't re-read a
|
|
148
|
+
// placeholder or duplicate the image.
|
|
149
|
+
for (const attr of [...LAZY_SRC_ATTRS, ...LAZY_SRCSET_ATTRS, 'srcset']) {
|
|
150
|
+
img.removeAttribute(attr);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return rewritten;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=images.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/import/images.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hackster.d.ts","sourceRoot":"","sources":["../../../src/import/platforms/hackster.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hackster.d.ts","sourceRoot":"","sources":["../../../src/import/platforms/hackster.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,aAAa,CAAC;AAOjE,eAAO,MAAM,eAAe,EAAE,eAmG7B,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import TurndownService from 'turndown';
|
|
7
7
|
import { parseHTML } from 'linkedom';
|
|
8
8
|
import { markdownToBlockTuples } from '@commonpub/editor';
|
|
9
|
+
import { resolveContentImages } from '../images.js';
|
|
9
10
|
const ALGOLIA_APP_ID = '7YQJT9BHUX';
|
|
10
11
|
const ALGOLIA_API_KEY = 'c113f0569e873258342405ddf4a4dd09';
|
|
11
12
|
const ALGOLIA_INDEX = 'hackster_production_project';
|
|
@@ -16,6 +17,11 @@ export const hacksterHandler = {
|
|
|
16
17
|
async import(url, html) {
|
|
17
18
|
const slug = extractProjectSlug(url);
|
|
18
19
|
const { document } = parseHTML(html);
|
|
20
|
+
// Hackster lazy-loads in-story images (data-src / data-srcset with a
|
|
21
|
+
// base64 placeholder in src). Resolve them to real, absolute URLs
|
|
22
|
+
// BEFORE extracting the story HTML, so Turndown emits real
|
|
23
|
+
// `` images instead of broken placeholders.
|
|
24
|
+
resolveContentImages(document, url.toString());
|
|
19
25
|
// Try Algolia for structured metadata
|
|
20
26
|
const algoliaData = slug ? await fetchAlgoliaData(slug) : null;
|
|
21
27
|
// Extract story content from the SSR HTML
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hackster.js","sourceRoot":"","sources":["../../../src/import/platforms/hackster.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,eAAe,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"hackster.js","sourceRoot":"","sources":["../../../src/import/platforms/hackster.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commonpub/server",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.52.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Framework-agnostic business logic for CommonPub instances",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|
|
@@ -108,14 +108,14 @@
|
|
|
108
108
|
"linkedom": "^0.18.12",
|
|
109
109
|
"megalodon": "^10.3.0",
|
|
110
110
|
"turndown": "^7.2.4",
|
|
111
|
-
"@commonpub/auth": "0.6.0",
|
|
112
|
-
"@commonpub/config": "0.12.0",
|
|
113
|
-
"@commonpub/docs": "0.6.2",
|
|
114
|
-
"@commonpub/editor": "0.7.9",
|
|
115
111
|
"@commonpub/learning": "0.5.2",
|
|
116
|
-
"@commonpub/
|
|
112
|
+
"@commonpub/editor": "0.7.9",
|
|
117
113
|
"@commonpub/schema": "0.16.0",
|
|
118
|
-
"@commonpub/
|
|
114
|
+
"@commonpub/config": "0.12.0",
|
|
115
|
+
"@commonpub/protocol": "0.9.9",
|
|
116
|
+
"@commonpub/infra": "0.7.0",
|
|
117
|
+
"@commonpub/auth": "0.6.0",
|
|
118
|
+
"@commonpub/docs": "0.6.2"
|
|
119
119
|
},
|
|
120
120
|
"peerDependencies": {
|
|
121
121
|
"drizzle-orm": "^0.45.1"
|