require "spec_helper" require "relaton_iso" RSpec.describe Asciidoctor::Standoc do it "processes simple dl reference" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} [bibliography] == Normative References [%bibitem] === Standard id:: iso123 docid:: type::: ISO id::: ISO 123 type:: standard contributor:: role::: publisher organization::: name:::: ISO contributor:: role::: author person::: name:::: + -- completename:: language::: en content::: Fred -- contributor:: role::: author person::: name:::: completename::::: Jack INPUT #{BLANK_HDR} <sections> </sections><bibliography><references id="_" obligation="informative"> <title>Normative References</title> <bibitem id="iso123" type="standard"> <fetched>#{Date.today}</fetched> <title type="main" format="text/plain" language="en" script="Latn">Standard</title> <docidentifier type="ISO">ISO 123</docidentifier> <contributor> <role type="publisher"/> <organization> <name>ISO</name> </organization> </contributor> <contributor> <role type="author"/> <person> <name><completename language="en">Fred</completename></name> </person> </contributor> <contributor> <role type="author"/> <person> <name><completename>Jack</completename></name> </person> </contributor> </bibitem> </references> </bibliography> </standard-document> OUTPUT end it "processes complex dl reference" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} [bibliography] == Normative References [[ISO/TC211]] [%bibitem] === {blank} fetched:: 2019-06-30 title:: type::: main content::: Geographic information title:: type::: subtitle content::: Geographic information subtitle language::: en script::: Latn format::: text/plain type:: standard docid:: type::: ISO id::: TC211 docnumber:: 211 edition:: 1 language:: . en . fr script:: Latn version:: revision_date::: 2019-04-01 draft::: draft biblionote:: type::: bibnote content::: + -- Mark set a major league home run record in 1998. -- docstatus:: stage::: stage substage::: substage iteration::: iteration date:: type::: issued value::: 2014 date:: type::: published from::: 2014-04 to::: 2014-05 date:: type::: accessed value::: 2015-05-20 abstract:: content::: + -- ISO 19115-1:2014 defines the schema required for ... -- abstract:: content::: L'ISO 19115-1:2014 définit le schéma requis pour ... language::: fr script::: Latn format::: text/plain copyright:: owner::: name:::: International Organization for Standardization abbreviation:::: ISO url:::: www.iso.org from::: 2014 to::: 2020 link:: type::: src content::: https://www.iso.org/standard/53798.html link:: type::: obp content::: https://www.iso.org/obp/ui/#!iso:std:53798:en link:: type::: rss content::: https://www.iso.org/contents/data/standard/05/37/53798.detail.rss medium:: form::: medium form size::: medium size scale::: medium scale place:: bib place extent:: type::: section reference_from::: 7 accesslocation:: . accesslocation1 . accesslocation2 classification:: type::: type value::: value validity:: begins::: 2010-10-10 12:21 ends::: 2011-02-03 18:30 ==== Contributor organization:: name::: International Organization for Standardization url::: www.iso.org abbreviation::: ISO subdivision::: division role:: type::: publisher description::: Publisher role ==== Contributor person:: name::: completename:::: + -- content:: A. Bierman language:: en -- affiliation::: organization:::: + -- name:: IETF abbreviation:: IETF identifier:: type::: uri id::: www.ietf.org -- description:::: Affiliation description contact::: street:::: . 8 Street St city:::: City postcode:::: 123456 country:::: Country state:::: State contact::: type:::: phone value:::: 223322 role:: author ==== Contributor organization:: name::: IETF abbreviation::: IETF identifier::: type:::: uri id:::: www.ietf.org role:: publisher ==== Contributor person:: name::: language:::: en initial:::: A. surname:::: Bierman affiliation::: + -- organization:: name::: IETF abbreviation::: IETF description:: content::: Affiliation description language::: en script::: Latn -- identifier::: type:::: uri id:::: www.person.com role:: author ==== Relation type:: updates bibitem:: formattedref::: ISO 19115:2003 bib_locality::: type:::: page reference_from:::: 7 reference_to:::: 10 ==== Relation type:: updates bibitem:: type::: standard formattedref::: ISO 19115:2003/Cor 1:2006 ==== Series type:: main title:: type::: original content::: ISO/IEC FDIS 10118-3 language::: en script::: Latn format::: text/plain place:: Serie's place organization:: Serie's organization abbreviation:: content::: ABVR language::: en script::: Latn from:: 2009-02-01 to:: 2010-12-20 number:: serie1234 partnumber:: part5678 ==== Series type:: alt formattedref:: content::: serieref language::: en script::: Latn INPUT #{BLANK_HDR} <sections> </sections><bibliography><references id="_" obligation="informative"> <title>Normative References</title> <bibitem id="TC211" type="standard"> <fetched>2019-06-30</fetched> <title type="main" format="text/plain">Geographic information</title> <title type="subtitle" format="text/plain" language="en" script="Latn">Geographic information subtitle</title> <uri type="src">https://www.iso.org/standard/53798.html</uri> <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:53798:en</uri> <uri type="rss">https://www.iso.org/contents/data/standard/05/37/53798.detail.rss</uri> <docidentifier type="ISO">TC211</docidentifier> <docnumber>211</docnumber> <date type="issued"> <on>2014</on> </date> <date type="published"> <from>2014</from> <to>2014</to> </date> <date type="accessed"> <on>2015</on> </date> <contributor> <role type="publisher"><description>Publisher role</description></role> <organization> <name>International Organization for Standardization</name> <subdivision>division</subdivision> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">A. Bierman</completename> </name> <affiliation> <description format="text/plain">Affiliation description</description> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> <identifier type="uri">www.ietf.org</identifier> </organization> </affiliation> <address> <street>8 Street St</street> <city>City</city> <state>State</state> <country>Country</country> <postcode>123456</postcode> </address> <phone>223322</phone> </person> </contributor> <contributor> <role type="publisher"/> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> <identifier type="uri">www.ietf.org</identifier> </organization> </contributor> <contributor> <role type="author"/> <person> <name> <initial language="en">A.</initial> <surname language="en">Bierman</surname> </name> <affiliation> <description language="en" script="Latn">Affiliation description</description> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> <identifier type="uri">www.person.com</identifier> </person> </contributor> <edition>1</edition> <version> <revision-date>2019-04-01</revision-date> <draft>draft</draft> </version> <note type="bibnote">Mark set a major league home run record in 1998.</note> <language>en</language> <language>fr</language> <script>Latn</script> <abstract format="text/plain">ISO 19115-1:2014 defines the schema required for …</abstract> <abstract format="text/plain" language="fr" script="Latn">L’ISO 19115-1:2014 définit le schéma requis pour …</abstract> <status> <stage>stage</stage> <substage>substage</substage> <iteration>iteration</iteration> </status> <copyright> <from>2014</from> <to>2020</to> <owner> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </owner> </copyright> <relation type="updates"> <bibitem> <formattedref format="text/plain">ISO 19115:2003</formattedref> </bibitem> </relation> <relation type="updates"> <bibitem type="standard"> <formattedref format="text/plain">ISO 19115:2003/Cor 1:2006</formattedref> </bibitem> </relation> <series type="main"> <title type="original" format="text/plain" language="en" script="Latn">ISO/IEC FDIS 10118-3</title> <place>Serie’s place</place> <organization>Serie’s organization</organization> <abbreviation language="en" script="Latn">ABVR</abbreviation> <from>2009-02-01</from> <to>2010-12-20</to> <number>serie1234</number> <partnumber>part5678</partnumber> </series> <series type="alt"> <formattedref format="text/plain" language="en" script="Latn">serieref</formattedref> </series> <medium> <form>medium form</form> <size>medium size</size> <scale>medium scale</scale> </medium> <place>bib place</place> <locality type="section"> <referenceFrom>7</referenceFrom> </locality> <accesslocation>accesslocation1</accesslocation> <accesslocation>accesslocation2</accesslocation> <classification type="type">value</classification> <validity> <validityBegins>2010-10-10 12:21</validityBegins> <validityEnds>2011-02-03 18:30</validityEnds> </validity> </bibitem></references></bibliography> </standard-document> OUTPUT end end