@lblod/graph-rdfa-processor 2.1.2 → 2.1.4
Sign up to get free protection for your applications and to get access to all the features.
- package/bug3.html +455 -0
- package/bug4.html +2212 -0
- package/dist/rdfa-graph.js +5 -5
- package/package.json +1 -1
- package/src/rdfa-graph.js +24 -16
- package/test/test.js +5 -5
package/dist/rdfa-graph.js
CHANGED
@@ -383,7 +383,7 @@ function () {
|
|
383
383
|
}
|
384
384
|
|
385
385
|
s += " .";
|
386
|
-
return s
|
386
|
+
return s;
|
387
387
|
}
|
388
388
|
}, {
|
389
389
|
key: "toObject",
|
@@ -544,21 +544,21 @@ function () {
|
|
544
544
|
}
|
545
545
|
}
|
546
546
|
|
547
|
-
s += '"""' + value.replace(/"""/g, '\\"\\"\\"') + '"""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral>';
|
547
|
+
s += '"""' + value.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\").replace(/"""/g, '\\"\\"\\"') + '"""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral>';
|
548
548
|
} else if (this.objects[i].type == "http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML") {
|
549
549
|
// We can use innerHTML as a shortcut from the parentNode if the list is not empty
|
550
550
|
if (this.objects[i].value.length == 0) {
|
551
551
|
s += '""""""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML>';
|
552
552
|
} else {
|
553
|
-
s += '"""' + this.objects[i].value[0].parentNode.innerHTML.replace(/"""/g, '\\"\\"\\"') + '"""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML>';
|
553
|
+
s += '"""' + this.objects[i].value[0].parentNode.innerHTML.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\").replace(/"""/g, '\\"\\"\\"') + '"""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML>';
|
554
554
|
}
|
555
555
|
} else {
|
556
556
|
var l = this.objects[i].value.toString();
|
557
557
|
|
558
558
|
if (l.indexOf("\n") >= 0 || l.indexOf("\r") >= 0) {
|
559
|
-
s += '"""' + l.replace(/"""/g, '\\"
|
559
|
+
s += '"""' + l.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\").replace(/"/g, '\\"') + '"""';
|
560
560
|
} else {
|
561
|
-
s += '"' + l.replace(/"/g, '\\"') + '"';
|
561
|
+
s += '"' + l.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\").replace(/"/g, '\\"') + '"';
|
562
562
|
}
|
563
563
|
|
564
564
|
if (this.objects[i].type != "http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral") {
|
package/package.json
CHANGED
package/src/rdfa-graph.js
CHANGED
@@ -4,10 +4,10 @@ export class RDFaGraph {
|
|
4
4
|
constructor() {
|
5
5
|
var dataContext = this;
|
6
6
|
this.curieParser = {
|
7
|
-
trim: function
|
7
|
+
trim: function(str) {
|
8
8
|
return str.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
|
9
9
|
},
|
10
|
-
parse: function
|
10
|
+
parse: function(value, resolve) {
|
11
11
|
value = this.trim(value);
|
12
12
|
if (value.charAt(0) == "[" && value.charAt(value.length - 1) == "]") {
|
13
13
|
value = value.substring(1, value.length - 1);
|
@@ -34,19 +34,19 @@ export class RDFaGraph {
|
|
34
34
|
},
|
35
35
|
};
|
36
36
|
this.base = null;
|
37
|
-
this.toString = function
|
37
|
+
this.toString = function(requestOptions) {
|
38
38
|
var options =
|
39
39
|
requestOptions && requestOptions.shorten
|
40
40
|
? { graph: this, shorten: true, prefixesUsed: {} }
|
41
41
|
: null;
|
42
42
|
if (requestOptions && requestOptions.blankNodePrefix) {
|
43
|
-
options.filterBlankNode = function
|
43
|
+
options.filterBlankNode = function(id) {
|
44
44
|
return "_:" + requestOptions.blankNodePrefix + id.substring(2);
|
45
45
|
};
|
46
46
|
}
|
47
47
|
if (requestOptions && requestOptions.numericalBlankNodePrefix) {
|
48
48
|
var onlyNumbers = /^[0-9]+$/;
|
49
|
-
options.filterBlankNode = function
|
49
|
+
options.filterBlankNode = function(id) {
|
50
50
|
var label = id.substring(2);
|
51
51
|
return onlyNumbers.test(label)
|
52
52
|
? "_:" + requestOptions.numericalBlankNodePrefix + label
|
@@ -72,7 +72,7 @@ export class RDFaGraph {
|
|
72
72
|
return prolog.length == 0 ? s : prolog + "\n" + s;
|
73
73
|
};
|
74
74
|
this.blankNodeCounter = 0;
|
75
|
-
this.clear = function
|
75
|
+
this.clear = function() {
|
76
76
|
this.subjects = {};
|
77
77
|
this.prefixes = {};
|
78
78
|
this.terms = {};
|
@@ -130,7 +130,7 @@ export class RDFaGraph {
|
|
130
130
|
Object.defineProperty(this, "tripleCount", {
|
131
131
|
enumerable: true,
|
132
132
|
configurable: false,
|
133
|
-
get: function
|
133
|
+
get: function() {
|
134
134
|
var count = 0;
|
135
135
|
for (var s in this.subjects) {
|
136
136
|
var snode = this.subjects[s];
|
@@ -307,7 +307,7 @@ export class RDFaSubject {
|
|
307
307
|
s += " " + this.predicates[predicate].toString(options);
|
308
308
|
}
|
309
309
|
s += " .";
|
310
|
-
return s
|
310
|
+
return s;
|
311
311
|
}
|
312
312
|
|
313
313
|
toObject() {
|
@@ -459,7 +459,9 @@ export class RDFaPredicate {
|
|
459
459
|
}
|
460
460
|
s +=
|
461
461
|
'"""' +
|
462
|
-
value
|
462
|
+
value
|
463
|
+
.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\")
|
464
|
+
.replace(/"""/g, '\\"\\"\\"') +
|
463
465
|
'"""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral>';
|
464
466
|
} else if (
|
465
467
|
this.objects[i].type ==
|
@@ -471,18 +473,24 @@ export class RDFaPredicate {
|
|
471
473
|
} else {
|
472
474
|
s +=
|
473
475
|
'"""' +
|
474
|
-
this.objects[i].value[0].parentNode.innerHTML
|
475
|
-
/
|
476
|
-
'\\"\\"\\"'
|
477
|
-
) +
|
476
|
+
this.objects[i].value[0].parentNode.innerHTML
|
477
|
+
.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\")
|
478
|
+
.replace(/"""/g, '\\"\\"\\"') +
|
478
479
|
'"""^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML>';
|
479
480
|
}
|
480
481
|
} else {
|
481
482
|
var l = this.objects[i].value.toString();
|
483
|
+
|
482
484
|
if (l.indexOf("\n") >= 0 || l.indexOf("\r") >= 0) {
|
483
|
-
s +=
|
485
|
+
s +=
|
486
|
+
'"""' +
|
487
|
+
l.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\").replace(/"/g, '\\"') +
|
488
|
+
'"""';
|
484
489
|
} else {
|
485
|
-
s +=
|
490
|
+
s +=
|
491
|
+
'"' +
|
492
|
+
l.replace(/([^\\]|^)(\\)(?!\\)/g, "$1\\\\").replace(/"/g, '\\"') +
|
493
|
+
'"';
|
486
494
|
}
|
487
495
|
if (
|
488
496
|
this.objects[i].type !=
|
@@ -498,7 +506,7 @@ export class RDFaPredicate {
|
|
498
506
|
}
|
499
507
|
}
|
500
508
|
|
501
|
-
RDFaPredicate.getPrefixMap = function
|
509
|
+
RDFaPredicate.getPrefixMap = function(e) {
|
502
510
|
var prefixMap = {};
|
503
511
|
while (e.attributes) {
|
504
512
|
for (var i = 0; i < e.attributes.length; i++) {
|
package/test/test.js
CHANGED
@@ -2,7 +2,7 @@ import { jsdom } from "jsdom";
|
|
2
2
|
import assert from "assert";
|
3
3
|
import getRDFaGraph from "../src";
|
4
4
|
import { readFileSync, writeFileSync } from "fs";
|
5
|
-
describe("getRDFaGraph", function
|
5
|
+
describe("getRDFaGraph", function() {
|
6
6
|
let html = `<div typeof="rdfs:Class" resource="http://schema.org/CreativeWork">
|
7
7
|
<span class="h" property="rdfs:label">CreativeWork</span>
|
8
8
|
<span property="rdfs:comment">The most generic kind of creative work, including books, movies, photographs, software programs, etc.</span>
|
@@ -17,14 +17,14 @@ describe("getRDFaGraph", function () {
|
|
17
17
|
<http://purl.org/dc/terms/source> <http://www.w3.org/wiki/WebSchemas/SchemaDotOrgSources#source_rNews> .
|
18
18
|
`;
|
19
19
|
|
20
|
-
it("should getRDFaGraph from a document", function
|
20
|
+
it("should getRDFaGraph from a document", function() {
|
21
21
|
let { document } = jsdom(html).defaultView.window;
|
22
22
|
let graph = getRDFaGraph(document, { baseURI: "http://localhost" });
|
23
23
|
assert.equal(graph.toString(), expected);
|
24
24
|
});
|
25
25
|
|
26
|
-
it
|
27
|
-
let ht = readFileSync("./
|
26
|
+
it("whatever", () => {
|
27
|
+
let ht = readFileSync("./bug4.html");
|
28
28
|
let { document } = jsdom(ht).defaultView.window;
|
29
29
|
|
30
30
|
let graph = getRDFaGraph(document, {
|
@@ -40,7 +40,7 @@ describe("getRDFaGraph", function () {
|
|
40
40
|
writeFileSync("/tmp/x.ttl", graph.toString(), "utf8");
|
41
41
|
});
|
42
42
|
|
43
|
-
it("should getRDFaGraph from a node", function
|
43
|
+
it("should getRDFaGraph from a node", function() {
|
44
44
|
let { document } = jsdom(html).defaultView.window;
|
45
45
|
let graph = getRDFaGraph(document.getElementsByTagName("div")[0], {
|
46
46
|
baseURI: "http://localhost",
|