require "spec_helper" RSpec.describe Asciidoctor::Standoc do it "processes inline_quoted formatting" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{DUMBQUOTE_BLANK_HDR} _Physical noise sources_ *strong* `monospace` "double quote" 'single quote' super^script^ sub~script~ sub~__scr__ipt~ stem:[<mml:math><mml:msub xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math"> <mml:mrow> <mml:mrow> <mml:mi mathvariant="bold-italic">F</mml:mi> </mml:mrow> </mml:mrow> <mml:mrow> <mml:mrow> <mml:mi mathvariant="bold-italic">Α</mml:mi> </mml:mrow> </mml:mrow> </mml:msub> </mml:math>] [alt]#alt# [deprecated]#deprecated# [domain]#domain# [strike]#strike# [smallcap]#smallcap# [keyword]#keyword# INPUT #{BLANK_HDR} <sections> <em>Physical noise sources</em> <strong>strong</strong> <tt>monospace</tt> "double quote" 'single quote' super<sup>script</sup> sub<sub>script</sub> sub<sub><em>scr</em>ipt</sub> <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub> <mrow> <mrow> <mi mathvariant="bold-italic">F</mi> </mrow> </mrow> <mrow> <mrow> <mi mathvariant="bold-italic">Α</mi> </mrow> </mrow> </msub> </math></stem> <admitted>alt</admitted> <deprecates>deprecated</deprecates> <domain>domain</domain> <strike>strike</strike> <smallcap>smallcap</smallcap> <keyword>keyword</keyword> </sections> </standard-document> OUTPUT end it "generates desired smart quotes for 'dd'" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} '99'. INPUT #{BLANK_HDR} <sections><p id="_">‘99’.</p> </sections> </standard-document> OUTPUT end it "processes breaks" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} Line break + line break ''' <<< INPUT #{BLANK_HDR} <sections><p id="_">Line break<br/> line break</p> <hr/> <pagebreak/></sections> </standard-document> OUTPUT end it "processes links" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} mailto:fred@example.com http://example.com[] http://example.com[Link] http://example.com[Link,title="tip"] INPUT #{BLANK_HDR} <sections> <p id="_">mailto:fred@example.com <link target="http://example.com"/> <link target="http://example.com">Link</link> <link target="http://example.com" alt="tip">Link</link></p> </sections> </standard-document> OUTPUT end it "processes bookmarks" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} Text [[bookmark]] Text INPUT #{BLANK_HDR} <sections> <p id="_">Text <bookmark id="bookmark"/> Text</p> </sections> </standard-document> OUTPUT end it "processes crossreferences" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} [[reference]] == Section Inline Reference to <<reference>> Footnoted Reference to <<reference,fn>> Inline Reference with Text to <<reference,text>> Footnoted Reference with Text to <<reference,fn: text>> Anchored Crossreference to other document <<a.adoc#b>> INPUT #{BLANK_HDR} <sections> <clause id="reference" inline-header="false" obligation="normative"> <title>Section</title> <p id="_">Inline Reference to <xref target="reference"/> Footnoted Reference to <xref target="reference"/> Inline Reference with Text to <xref target="reference">text</xref> Footnoted Reference with Text to <xref target="reference">text</xref> Anchored Crossreference to other document <xref target="a#b"/></p> </clause> </sections> </standard-document> OUTPUT end it "processes bibliographic anchors" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} [bibliography] == Normative References * [[[ISO712,x]]] Reference * [[[ISO713]]] Reference INPUT #{BLANK_HDR} <sections> </sections><bibliography><references id="_" obligation="informative"> <title>Normative References</title> <bibitem id="ISO712"> <formattedref format="application/x-isodoc+xml">Reference</formattedref> <docidentifier>x</docidentifier> </bibitem> <bibitem id="ISO713"> <formattedref format="application/x-isodoc+xml">Reference</formattedref> <docidentifier>ISO713</docidentifier> </bibitem> </references> </bibliography> </standard-document> OUTPUT end it "processes footnotes" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} Hello!footnote:[Footnote text] == Title footnote:[Footnote text 2] INPUT #{BLANK_HDR} <preface><foreword obligation="informative"> <title>Foreword</title> <p id="_">Hello!<fn reference="1"> <p id="_">Footnote text</p> </fn></p> </foreword></preface><sections> <clause id="_" inline-header="false" obligation="normative"> <title>Title<fn reference="2"> <p id="_">Footnote text 2</p> </fn></title> </clause></sections> </standard-document> OUTPUT end end