Intellij Idea ASCIIDOC:“......中未解析的指令":“< stdin>“或“索引.adoc”

v8wbuo2f  于 2023-03-17  发布在  其他
关注(0)|答案(2)|浏览(159)

我是ASCIIDOC的新手,只是想知道下面的问题是从哪里来的。
设置:

  • 使用新设置的ASCIIDOC插件进行Intellij
  • 带有preserveDirectories = true的新闻集asciidoctor-maven插件

我这样组织我的腹水:

  • footer.adoc
  • header.adoc
  • index.adoc
  • 子文件夹
  • index.adoc

generated-docs看起来像这样:

  • footer.html
  • header.html
  • index.html
  • 子文件夹
  • index.html

现在,如果我想让subfolder/index.html也包含页眉和页脚,我想我需要把include::../header.adoc[]写入adoc文件,这对Intellij插件来说是没有问题的。但是在生成的html中,你会发现以下错误:

<p>Unresolved directive in index.adoc - include::../header.adoc[]</p>

所以当我把下面的代码写入adoc文件时:include::header.adoc[]生成的html很好,但Intellij ASCIIDOC插件显示错误:
Unresolved directive in <stdin> - include::header.adoc[]
我只是想知道这是Intellij插件团队的bug还是Maven插件团队的bug。或者也许有人有解决这个问题的方法?
还有一个额外的问题:是否可以配置maven插件不生成header-/footer. html,因为它们已经包含在实际的html中了?

4jb9z9bj

4jb9z9bj1#

我没有使用Maven插件的经验,但我有很多使用AsciDoc、IntelliJ插件和Gradle插件的经验。
IntelliJ插件行为是正确的。转换/subfolder/index.adoc时,将相对于此文件解析包含,因此包含include::../header.adoc是正确的。
您描述说您没有指定要为Maven插件渲染的文件(header.adoc已转换)。这可能是Maven插件的问题:
您只需指定源路径,所有文档都相对于此源路径呈现,因此/subfolder/index.adoc具有错误的源路径。
使用Gradle插件,您可以指定要转换的所有文档。这还可以避免转换header.adoc。从Maven插件文档中,我看到您只能指定单个文件。
考虑到这一点,我建议你改变你的文件结构,把所有要转换的文件放在一个文件夹里。然后你可以指定这个文件夹,其他的文件就不会被转换。这也可以解决你的相对路径名问题:

/src/docs/
      |
      +-common/
      |    |
      |    +-header.adoc
      |    +-footer.adoc
      +-chapters/
      +-main/
         |
         +-index1.adoc
         +-index2.adoc
ibrsph3r

ibrsph3r2#

我知道这有点晚了,答案可以在restdoc手册的文档中找到,该手册位于Spring.io的https://spring.io/guides/gs/testing-restdocs/的“Using the Snippets”部分。在示例gradle项目中对此有一些提及
maven插件的配置应该如下所示:

<plugin>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctor-maven-plugin</artifactId>
            <version>1.5.8</version>
            <executions>
                <execution>
                    <id>output-html</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>process-asciidoc</goal>
                    </goals>
                    <configuration>
                        <sourceHighlighter>coderay</sourceHighlighter>
                        <backend>html</backend>
                        <attributes>
                            <toc/>
                            <linkcss>false</linkcss>
                            <snippets>
                                ${project.build.directory}/generated-snippets
                            </snippets>
                        </attributes>
                    </configuration>
                </execution>
            </executions>
        </plugin>

相关问题