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

Regexp that convert markdown tables to textile ones

我想转换 textile one 中的降价表。

Markdown 表格遵循以下模式:

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

纺织这个:

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

现在我写了下面的表达式:

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

即删除|--------|栏。 我还想在每个列标题前添加 _.,以使它们成为粗体。

你有什么办法得到这个结果吗?

您可以使用 pandoc:

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

我根本不知道 ruby,因此不能确定它自己的语法方面的任何事情。所以这是一个 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 并添加空格或切割标题。