asciidoc表aline多行值

时间:2014-11-17 06:42:13

标签: tabular asciidoc

我想用asciidoc动态生成一个表,看起来像这样:

--------------------------------------
|Text  | Parameter | Value1 | Value2 |
--------------------------------------
|foo   | param1    | val1   | val2   |
--------------------------------------
|bar   | param2    | val3   | val4   |
|      | param3    | value_ | val6   |
|      |           | multi_ |        |
|      |           | 5      |        |
|      | param4    | val7   | val8   |
--------------------------------------
| baz  | param5    | val9   | val10  |
--------------------------------------

也就是说,一个文本可能有多个参数,以及它们的参数 值可能跨越多行。我正在寻找一种自动化的方法 aline这些。我有一个程序来收集变化的数据,所以我可以 不要手动修复。

我目前做的是:我有框架和无网格嵌套表 参数,Value1和Value2行。这个问题只是他们的问题 aline如果每个值都不跨越多行。

我还尝试将Parameter,Value1和Value2放在一起,使用网格但没有框架。 它适用于对象,但看起来不太好,因为网格线不接触外表的网格线。添加 框架也看起来很暗淡,因为它强调多参数条目。

我真正想做的是在外表中添加一条额外的行(没有表格嵌套),中间没有水平线, 如果有额外的参数。 我不知道如何用asciidoc做到这一点。这有可能吗?关于如何解决这个问题的任何其他建议?

2 个答案:

答案 0 :(得分:0)

如果您正在使用asciidoctor,那么表格还有许多其他选项,包括将列放在新行上,并使用表格的元数据来指定表格所包含的列数。这是在Asciidoctor中进行表格的推荐方法。您可以在user's guide中看到此示例和许多其他示例。举一个关于SO的例子:

[cols="2*"]
|===

|Cell in column 1, row 1
|Cell in column 2, row 1

|Cell in column 1, row 2
|Cell in column 2, row 2

|===

Asciidoctor可以替代asciidoc命令,但你会想看看differences between the two

答案 1 :(得分:0)

事实证明spans (see chapter 23.5)

相当容易
.Multiline values alined with spans
[cols=",,,",width="60%", options="header"]
|================
|Text  | Parameter | Value1 | Value2
|foo   | param1    | val1   | val2
.3+<.<|foo .3+<.<|bar | val3 | val4
| razzle bla fasel foo bar | dazzle
|bli | bla
|foo2   | param3    | val5   | val6
|================

现在我需要做的就是告诉我的模板系统(jinja2)我需要跨越多少行,但这是一项勤奋而又常规的工作。