【问题标题】:How to align multiline values in AsciiDoc table?如何对齐 AsciiDoc 表中的多行值?
【发布时间】:2022-01-14 17:45:13
【问题描述】:

我想用 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  |
--------------------------------------

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

我目前在做什么:我有框架和无网格嵌套表 参数、Value1 和 Value2 列。这样做的问题是它们只有在每个值不跨越多行时才会对齐。

我也试过把 Parameter、Value1 和 Value2 做成一个嵌套表,有网格但没有框架。

它在对齐方面有效,但看起来不是很好,因为网格线不接触外部表格的网格线。添加框架看起来也很枯燥,因为它强调多参数条目。

如果有额外的参数,我真正想做的是在外部表格中添加一条额外的线(没有表格嵌套),中间没有水平线。

我看不到如何使用 AsciiDoc 执行此操作。这有可能吗?有关如何解决此问题的任何其他建议?

【问题讨论】:

    标签: tabular asciidoc


    【解决方案1】:

    事实证明,使用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) 我需要跨越多少行,但这是一项相当勤奋但例行公事的工作。

    【讨论】:

      【解决方案2】:

      如果您使用asciidoctor,还有许多其他表格选项,包括将列放在新行上,以及使用表格的元数据来指定表格包含的列数。这是在 Asciidoctor 中做表格的推荐方式。您可以在user's guide 中查看此示例和许多其他示例。在这里举个例子:

      [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

      【讨论】:

      • 有一天我会检查 asciidoctor,但目前我被锁定到 centos 6.2 - 我不会搞乱向后移植...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      相关资源
      最近更新 更多