@joplin/turndown-plugin-gfm
Advanced tools
Comparing version 1.0.47 to 1.0.48
@@ -43,3 +43,37 @@ 'use strict'; | ||
var rules = {}; | ||
var alignMap = { left: ':---', right: '---:', center: ':---:' }; | ||
function getAlignment(node) { | ||
return node ? (node.getAttribute('align') || node.style.textAlign || '').toLowerCase() : ''; | ||
} | ||
function getBorder(alignment) { | ||
return alignment ? alignMap[alignment] : '---'; | ||
} | ||
function getColumnAlignment(table, columnIndex) { | ||
var votes = { | ||
left: 0, | ||
right: 0, | ||
center: 0, | ||
'': 0, | ||
}; | ||
var align = ''; | ||
for (var i = 0; i < table.rows.length; ++i) { | ||
var row = table.rows[i]; | ||
if (columnIndex < row.childNodes.length) { | ||
var cellAlignment = getAlignment(row.childNodes[columnIndex]); | ||
++votes[cellAlignment]; | ||
if (votes[cellAlignment] > votes[align]) { | ||
align = cellAlignment; | ||
} | ||
} | ||
} | ||
return align; | ||
} | ||
rules.tableCell = { | ||
@@ -60,3 +94,2 @@ filter: ['th', 'td'], | ||
var borderCells = ''; | ||
var alignMap = { left: ':--', right: '--:', center: ':-:' }; | ||
@@ -66,13 +99,5 @@ if (isHeadingRow(node)) { | ||
for (var i = 0; i < colCount; i++) { | ||
const childNode = colCount >= node.childNodes.length ? null : node.childNodes[i]; | ||
var border = '---'; | ||
var align = childNode ? (childNode.getAttribute('align') || '').toLowerCase() : ''; | ||
if (align) border = alignMap[align] || border; | ||
if (childNode) { | ||
borderCells += cell(border, node.childNodes[i]); | ||
} else { | ||
borderCells += cell(border, null, i); | ||
} | ||
const childNode = i < node.childNodes.length ? node.childNodes[i] : null; | ||
var border = getBorder(getColumnAlignment(parentTable, i)); | ||
borderCells += cell(border, childNode, i); | ||
} | ||
@@ -100,3 +125,3 @@ } | ||
if (secondLine.length >= 2) secondLine = secondLine[1]; | ||
var secondLineIsDivider = secondLine.indexOf('| ---') === 0; | ||
var secondLineIsDivider = /\| :?---/.test(secondLine); | ||
@@ -106,3 +131,6 @@ var columnCount = tableColCount(node); | ||
if (columnCount && !secondLineIsDivider) { | ||
emptyHeader = '|' + ' |'.repeat(columnCount) + '\n' + '|' + ' --- |'.repeat(columnCount); | ||
emptyHeader = '|' + ' |'.repeat(columnCount) + '\n' + '|'; | ||
for (var columnIndex = 0; columnIndex < columnCount; ++columnIndex) { | ||
emptyHeader += ' ' + getBorder(getColumnAlignment(node, columnIndex)) + ' |'; | ||
} | ||
} | ||
@@ -109,0 +137,0 @@ |
@@ -7,3 +7,3 @@ { | ||
}, | ||
"version": "1.0.47", | ||
"version": "1.0.48", | ||
"author": "Dom Christie", | ||
@@ -15,3 +15,3 @@ "main": "lib/turndown-plugin-gfm.cjs.js", | ||
"standard": "17.0.0", | ||
"turndown": "7.1.1", | ||
"turndown": "7.1.2", | ||
"turndown-attendant": "0.0.3" | ||
@@ -46,3 +46,3 @@ }, | ||
}, | ||
"gitHead": "8df128bb7abc4fc536b30662f53eb01617954cf6" | ||
"gitHead": "5625b15cb5f38e543247f44dad53f16666757eac" | ||
} |
11831
227