'use strict'; var visit = require('unist-util-visit'); var hasOwnProperty = Object.prototype.hasOwnProperty; var hastCssPropertyMap = { align: 'text-align', valign: 'vertical-align', height: 'height', width: 'width' }; module.exports = function tableCellStyle(node) { visit(node, 'element', visitor); return node; }; function visitor(node) { if (node.tagName !== 'tr' && node.tagName !== 'td' && node.tagName !== 'th') { return; } var hastName; var cssName; for (hastName in hastCssPropertyMap) { if ( !hasOwnProperty.call(hastCssPropertyMap, hastName) || node.properties[hastName] === undefined ) { continue; } cssName = hastCssPropertyMap[hastName]; appendStyle(node, cssName, node.properties[hastName]); delete node.properties[hastName]; } } function appendStyle(node, property, value) { var prevStyle = (node.properties.style || '').trim(); if (prevStyle && !/;\s*/.test(prevStyle)) { prevStyle += ';'; } if (prevStyle) { prevStyle += ' '; } var nextStyle = prevStyle + property + ': ' + value + ';'; node.properties.style = nextStyle; }