AsciiDoctor表格单元格中的多个段落

7

编辑:由于我的问题似乎特定于我的设置,我在这里提供一个完整的最小工作示例。

这是我的Maven设置(pom.xml):

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>foo</groupId>
    <artifactId>bar</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>AsciiDoc Test</name>

    <build>
        <plugins>
            <plugin>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctor-maven-plugin</artifactId>
                <version>1.5.3</version>
                <dependencies>
                    <dependency>
                        <groupId>org.asciidoctor</groupId>
                        <artifactId>asciidoctorj-pdf</artifactId>
                        <version>1.5.0-alpha.11</version>
                    </dependency>
                    <dependency>
                        <groupId>org.asciidoctor</groupId>
                        <artifactId>asciidoctorj</artifactId>
                        <version>1.5.4</version>
                    </dependency>
                    <!-- beware, jruby 1.7.23 breaks asciidoctorj -->
                    <dependency>
                        <groupId>org.jruby</groupId>
                        <artifactId>jruby-complete</artifactId>
                        <version>1.7.21</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <sourceDirectory>${project.basedir}/src</sourceDirectory>
                </configuration>
                <executions>
                    <execution>
                        <id>generate-pdf-doc</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <backend>pdf</backend>
                            <doctype>book</doctype>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

这是我的AsciiDoc源代码(src/test.adoc):
[cols="a"]
|===
|First paragraph

second paragraph

|===

AsciiDoc文件使用以下进行编译:
mvn generate-resources

以下是生成的输出 (target/generated-docs/test.pdf)

为什么 AsciiDoc 不能呈现两个段落?

其他表现不如预期的事情(每个示例都将整个单元格内容推入一个段落):

  • 显式指定单元格的 a
|===
a|First paragraph

second paragraph

|===
  • list:
[cols="a"]
|===
|First paragraph

 * second paragraph

|===
  • 非标题:
[cols="1"]
|===

a|First paragraph

second paragraph

|===
2个回答

6
从文档中得知:http://asciidoctor.org/docs/user-manual/#cell 直接使用Asciidoctor PDF渲染还不支持此功能。请参见#6
这是我得到的:

带段落:

[cols="1"]
|===

a|First paragraph

second paragraph

|===

重要的是在|==a|your cell之间留出空行。
使用HTML渲染器: Table with a second paragraph in Asciidoctor HTML 使用PDF渲染器: Table with a second paragraph in Asciidoctor PDF 带列表的情况下也是同样的操作:
[cols="1"]
|===

a|First paragraph

* second paragraph

|===

使用HTML渲染器: Asciidoctor HTML中的列表表格 使用PDF渲染器: Asciidoctor PDF中的列表表格
可能的解决方案是使用jDocBook的DocBook Pipeline,就像这个例子 docbook-pipeline-jdocbook-example。使用这种设置,可以得到预期的输出: Asciidoctor docbook pipeline中的复杂表格示例

这对我不起作用,所有内容都被倾倒到同一个段落中。我会尝试制作一个最小化的工作示例来展示我的整个设置。 - flyx
我会尝试使用您的设置。我添加的屏幕截图不是PDF渲染,而是HTML渲染。 - Jmini
我可以重现你的问题。这是PDF渲染的已知问题:#6。我会更新我的答案。 - Jmini

3

我对Maven一无所知,也不使用AsciiDoctor来输出PDF,但是提供的答案可能已经过时了(大概,不确定)。这里有另一种解决方案(对我来说适用于HTML。我在这里发布它,因为我在官方手册中没有找到这个语法):

|===
| Column 1 | Column 2

| Foo
| Bar

Baz

| Aaa

Bbb

| Ccc
|===

enter image description here

我在官方手册中没有找到这种语法的示例。该语法源自此处:

如果有人更喜欢标题中的多行语法,同样适用。

[cols="2"]
[options="header"]
|===
| Column 1
| Column 2

| Foo
| Bar

Baz

| Aaa

Bbb

| Ccc
|===

谢谢你的回答。由于这个问题很旧,我没有可用的环境来测试你的建议。希望其他人能够验证一下。 - flyx
这个很好用。我刚试过一个简单的.adoc文件和asciidoctor-pdf。 - Tagman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接