asciidoctor-006

Tests that Asciidoctor creates a whole document.

Test is expected to pass.

The pipeline

<p:declare-step xmlns:cx="http://xmlcalabash.com/ns/extensions"
                xmlns:p="http://www.w3.org/ns/xproc"
                xmlns:t="http://xproc.org/ns/testsuite/3.0" name="main" version="3.0">
   <p:import href="https://xmlcalabash.com/ext/library/asciidoctor.xpl"/>
   <p:output port="result" sequence="true"/>
   <cx:asciidoctor backend="html5"
                   parameters="map{'standalone': true()}"
                   attributes="map{'title': 'The Document Title'}">
      <p:with-input>
         <p:inline content-type="text/plain">
This is a paragraph.

So is this.

And this.
      </p:inline>
      </p:with-input>
   </cx:asciidoctor>
</p:declare-step>

Result

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:t="http://xproc.org/ns/testsuite/3.0" lang="en">
   <head>
      <meta charset="UTF-8"/>
      <meta content="IE=edge"
            http-equiv="X-UA-Compatible"/>
      <meta content="width=device-width, initial-scale=1.0"
            name="viewport"/>
      <meta content="Asciidoctor 2.0.23"
            name="generator"/>
      <title>The Document Title</title>
   </head>
   <body class="article">
      <div id="header"/>
      <div id="content">
         <div class="paragraph">
            <p>This is a paragraph.</p>
         </div>
         <div class="paragraph">
            <p>So is this.</p>
         </div>
         <div class="paragraph">
            <p>And this.</p>
         </div>
      </div>
      <div id="footer">
         <div id="footer-text">
Last updated 2025-06-19 18:02:11 UTC
</div>
      </div>
   </body>
</html>

Schematron checks

<s:schema xmlns:s="http://purl.oclc.org/dsdl/schematron"
          xmlns:t="http://xproc.org/ns/testsuite/3.0" queryBinding="xslt2">
   <s:ns prefix="h" uri="http://www.w3.org/1999/xhtml"/>
   <s:pattern>
      <s:rule context="/">
         <s:assert test="h:html">The root is incorrect.</s:assert>
         <s:assert test="h:html/h:head">The document has no head.</s:assert>
         <s:assert test="h:html/h:body">The document has no body.</s:assert>
      </s:rule>
   </s:pattern>
   <s:pattern>
      <s:rule context="h:head">
         <s:assert test="h:title = 'The Document Title'">The title is incorrect.</s:assert>
      </s:rule>
   </s:pattern>
   <s:pattern>
      <s:rule context="h:body">
         <s:assert test="count(//h:div[h:p]) = 3">The number of paragraphs is incorrect.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

21 Feb 2025, Norm Tovey-Walsh
Created test.