unprint 0.9.1 → 0.9.3
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/package.json +1 -1
- package/src/app.js +24 -12
- package/tests/index.html +1 -0
- package/tests/init.js +2 -0
package/package.json
CHANGED
package/src/app.js
CHANGED
|
@@ -362,14 +362,12 @@ function queryImages(context, selector = 'img', customOptions) {
|
|
|
362
362
|
return imageUrls.map((imageUrl) => prefixUrl(imageUrl, options.origin, options));
|
|
363
363
|
}
|
|
364
364
|
|
|
365
|
-
function
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
if (!srcset) {
|
|
365
|
+
function extractSourceSet(sourceSet, customOptions) {
|
|
366
|
+
if (!sourceSet) {
|
|
369
367
|
return null;
|
|
370
368
|
}
|
|
371
369
|
|
|
372
|
-
const sources =
|
|
370
|
+
const sources = sourceSet
|
|
373
371
|
.split(/\s*,\s*/)
|
|
374
372
|
.map((source) => {
|
|
375
373
|
const [link, descriptor] = source.split(' ');
|
|
@@ -406,6 +404,18 @@ function querySourceSet(context, selector, attr = 'srcset', customOptions = {})
|
|
|
406
404
|
return sources.map((source) => prefixUrl(source.url));
|
|
407
405
|
}
|
|
408
406
|
|
|
407
|
+
function querySourceSet(context, selector, attr = 'srcset', customOptions = {}) {
|
|
408
|
+
const sourceSet = queryAttribute(context, selector, attr, customOptions);
|
|
409
|
+
|
|
410
|
+
return extractSourceSet(sourceSet, customOptions);
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
function querySourceSets(context, selector, attr = 'srcset', customOptions = {}) {
|
|
414
|
+
const sourceSets = queryAttributes(context, selector, attr, customOptions);
|
|
415
|
+
|
|
416
|
+
return sourceSets.map((sourceSet) => extractSourceSet(sourceSet, customOptions));
|
|
417
|
+
}
|
|
418
|
+
|
|
409
419
|
function queryVideo(context, selector = 'source', customOptions) {
|
|
410
420
|
const options = {
|
|
411
421
|
...context.options,
|
|
@@ -452,28 +462,28 @@ function queryPosters(context, selector = 'video', customOptions) {
|
|
|
452
462
|
return posterUrls.map((posterUrl) => prefixUrl(posterUrl, options.origin, options));
|
|
453
463
|
}
|
|
454
464
|
|
|
455
|
-
function extractJson(
|
|
456
|
-
if (!
|
|
465
|
+
function extractJson(dataString) {
|
|
466
|
+
if (!dataString) {
|
|
457
467
|
return null;
|
|
458
468
|
}
|
|
459
469
|
|
|
460
470
|
try {
|
|
461
|
-
return JSON.parse(
|
|
471
|
+
return JSON.parse(dataString);
|
|
462
472
|
} catch (error) {
|
|
463
473
|
return null;
|
|
464
474
|
}
|
|
465
475
|
}
|
|
466
476
|
|
|
467
477
|
function queryJson(context, selector, customOptions) {
|
|
468
|
-
const
|
|
478
|
+
const dataString = queryContent(context, selector, customOptions);
|
|
469
479
|
|
|
470
|
-
return extractJson(
|
|
480
|
+
return extractJson(dataString);
|
|
471
481
|
}
|
|
472
482
|
|
|
473
483
|
function queryJsons(context, selector, customOptions) {
|
|
474
|
-
const
|
|
484
|
+
const dataStrings = queryContents(context, selector, customOptions);
|
|
475
485
|
|
|
476
|
-
return
|
|
486
|
+
return dataStrings.map((dataString) => extractJson(dataString)).filter(Boolean);
|
|
477
487
|
}
|
|
478
488
|
|
|
479
489
|
function extractDate(dateString, format, customOptions) {
|
|
@@ -605,7 +615,9 @@ const queryFns = {
|
|
|
605
615
|
duration: queryDuration,
|
|
606
616
|
dur: queryDuration,
|
|
607
617
|
sourceSet: querySourceSet,
|
|
618
|
+
sourceSets: querySourceSets,
|
|
608
619
|
srcSet: querySourceSet,
|
|
620
|
+
srcSets: querySourceSets,
|
|
609
621
|
url: queryUrl,
|
|
610
622
|
urls: queryUrls,
|
|
611
623
|
video: queryVideo,
|
package/tests/index.html
CHANGED
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
<img class="image" src="https://i.redd.it/1s22dsrqy0181.jpg">
|
|
38
38
|
<img class="image" src="https://i.redd.it/e91oo4ueyeb71.jpg">
|
|
39
39
|
|
|
40
|
+
<img class="srcset" srcset="https://i.redd.it/e91oo4ueyeb71.jpg 240w, https://i.redd.it/vn9h981hlx281.png 480w, https://i.redd.it/e91oo4ueyeb71.jpg 640w">
|
|
40
41
|
<img class="srcset" srcset="https://i.redd.it/e91oo4ueyeb71.jpg 240w, https://i.redd.it/vn9h981hlx281.png 480w, https://i.redd.it/e91oo4ueyeb71.jpg 640w">
|
|
41
42
|
|
|
42
43
|
<video id="video" poster="https://i.imgur.com/eDQmLys.jpg"><source src="https://i.imgur.com/eDQmLys.mp4"></video>
|
package/tests/init.js
CHANGED
|
@@ -23,6 +23,7 @@ async function initTest() {
|
|
|
23
23
|
console.log('timestamp', res.context.query.duration('#timestamp'));
|
|
24
24
|
console.log('number', res.context.query.number('.number'));
|
|
25
25
|
console.log('numbers', res.context.query.numbers('.number'));
|
|
26
|
+
console.log('number indexed', res.context.query.number('.number', { match: /(\d+)/, matchIndex: 1 }));
|
|
26
27
|
console.log('data', res.context.query.json('#json'));
|
|
27
28
|
console.log('items', res.context.query.contents('.item'));
|
|
28
29
|
console.log('link', res.context.query.url('#link'));
|
|
@@ -30,6 +31,7 @@ async function initTest() {
|
|
|
30
31
|
console.log('image', res.context.query.img('.image'));
|
|
31
32
|
console.log('images', res.context.query.imgs('.image'));
|
|
32
33
|
console.log('srcset', res.context.query.sourceSet('.srcset'));
|
|
34
|
+
console.log('srcsets', res.context.query.sourceSets('.srcset'));
|
|
33
35
|
console.log('path', res.context.query.url('#path'));
|
|
34
36
|
console.log('relative path', res.context.query.url('#relativePath'));
|
|
35
37
|
console.log('exists', res.context.query.exists('#title'));
|