Skip to content

Commit fcff5d5

Browse files
authored
Merge pull request markedjs#1239 from tomtheisen/escapedpipes
Escapedpipes
2 parents 4e911c4 + f570253 commit fcff5d5

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

lib/marked.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ Lexer.prototype.token = function(src, top) {
249249

250250
item = {
251251
type: 'table',
252-
header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
252+
header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')),
253253
align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
254254
cells: cap[3].replace(/\n$/, '').split('\n')
255255
};
@@ -267,7 +267,7 @@ Lexer.prototype.token = function(src, top) {
267267
}
268268

269269
for (i = 0; i < item.cells.length; i++) {
270-
item.cells[i] = item.cells[i].split(/ *\| */);
270+
item.cells[i] = splitCells(item.cells[i]);
271271
}
272272

273273
this.tokens.push(item);
@@ -416,7 +416,7 @@ Lexer.prototype.token = function(src, top) {
416416

417417
item = {
418418
type: 'table',
419-
header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */),
419+
header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')),
420420
align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */),
421421
cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n')
422422
};
@@ -434,9 +434,8 @@ Lexer.prototype.token = function(src, top) {
434434
}
435435

436436
for (i = 0; i < item.cells.length; i++) {
437-
item.cells[i] = item.cells[i]
438-
.replace(/^ *\| *| *\| *$/g, '')
439-
.split(/ *\| */);
437+
item.cells[i] = splitCells(
438+
item.cells[i].replace(/^ *\| *| *\| *$/g, ''));
440439
}
441440

442441
this.tokens.push(item);
@@ -1311,6 +1310,16 @@ function merge(obj) {
13111310
return obj;
13121311
}
13131312

1313+
function splitCells(tableRow) {
1314+
var cells = tableRow.replace(/([^\\])\|/g, '$1 |').split(/ +\| */),
1315+
i = 0;
1316+
1317+
for (; i < cells.length; i++) {
1318+
cells[i] = cells[i].replace(/\\\|/g, '|');
1319+
}
1320+
return cells;
1321+
}
1322+
13141323
/**
13151324
* Marked
13161325
*/

test/specs/gfm/gfm-spec.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ var messenger = new Messenger();
2828
describe('GFM 0.28 Tables', function() {
2929
var section = 'Tables';
3030

31-
// TODO: Verify exmaple 193 is valid and passing
32-
var shouldPassButFails = [192, 193, 195, 196, 197];
31+
var shouldPassButFails = [192, 195, 196, 197];
3332

3433
var willNotBeAttemptedByCoreTeam = [];
3534

0 commit comments

Comments
 (0)