将降价表转换为纺织品表的正则表达式

时间:2016-01-28 16:44:15

标签: regex markdown textile

我想转换纺织品中的降价表。

Markdown表遵循以下模式:

| column | column |
|--------|--------|
|        |        |

虽然纺织这个:

|_.column |_.column |
|         |         |

现在我写了以下表达式:

text.gsub(/\|[-|]+/, '')

删除|--------|栏。 我还希望在每个列标题之前添加_.,以便使它们变为粗体。

您对获得此结果有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以使用pandoc

pandoc mytable.md -t textile -o mytable.textile

答案 1 :(得分:1)

我根本不了解红宝石,因此无法确定其自身的语法方面。所以这是一个 Javascript 提出的解决方案,希望它的广为人知,可以轻松转换:

function markdown2textileTables(source) {
  var lines = source.split('\n');
  lines.forEach(function(line, index, lines) {
    if (!!line.match(/^\|(?:[-]+\|)+$/)) {
      var prevLineCols = lines[index - 1].split('|');
      prevLineCols = prevLineCols.map(function(col) {
        return !!col ? '_.' + col.trim() : col;
      });
      lines[index - 1] = prevLineCols.join('|');
      lines.splice(index, 1);
    }
  });
  return lines.join('\n');
}

工作示例here

请注意,从| column |更改为|_.column|时,我没有处理标题栏的长度,因为我不知道它是否重要。
如果是,则需要在return !!col ? '_.' + col.trim() : col;语句处改进上述代码,具体取决于当前col.length并添加空格或剪切标题。