>>==== MODE ====>>
citation
<<==== MODE ====<<

>>==== RESULT ====>>
[Cite with a composer ; O A. "hello" <i>Book Title</i>]
<<==== RESULT ====<<

>>==== CITATION-ITEMS ====>>
[
    [
        {
            "id": "ITEM-1"
        },
        {
            "id": "ITEM-2"
        }
    ]
]
<<==== CITATION-ITEMS ====<<

>>==== CSL ====>>
<?xml version='1.0' encoding='utf-8'?>
<style xmlns='http://purl.org/net/xbiblio/csl' class='in-text' default-locale='en' version='1.0' demote-non-dropping-particle='sort-only'>
  <info>
    <title>NEMO-Online-en</title>
    <id>http://www.zotero.org/styles/nemo-online</id>
    <link href='http://www.zotero.org/styles/nemo-online' rel='self'/>
    <author>
      <name>Amine Beyhom, based on Chicago style by Julian Onions</name>
    </author>
    <category citation-format='author-date'/>
    <category field='humanities'/>
    <updated>2011-08-10T08:04:18+03:00</updated>
    <summary>In progress</summary>
    <rights>This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/ </rights>
  </info>
  <locale xml:lang='en'>
    <style-options punctuation-in-quote='false'/>
    <terms>
      <term name='editor' form='verb-short'>ed.</term>
      <!--     <term name='container-author' form='verb'>by</term>-->
      <term name='translator' form='verb-short'>trans.</term>
      <term name='anonymous' form='short'>o.&#160;A.</term>     
      <term name='editortranslator' form='verb'>
        <single>ed. and trans. by</single>
        <multiple>ed. and trans. by</multiple>
      </term>
      <term name='translator' form='short'>trans.</term>
    </terms>
  </locale>
  <!-- <locale xml:lang='de'> -->
  <!-- <terms> -->

  <!-- <term name='no date' form='short'>o.&#160;J.</term> -->
  <!-- <term name='collection-editor' form='short'>Hrsg.</term> -->
  <!-- </terms> -->
  <!-- </locale> -->


  <!-- useful things:
       non breaking space: &#160;
       narrow no break space: uni202F / &#8239; - but this is not supported widely!
       em dash: &#8212;
       
  -->
  <!-- definition de la macro 'date' qui sera reprise dans le 'layout' - intext_date est la variable courte citee dans le texte -->
  <macro name='intext_date'>
    <date variable='issued'>
      <date-part name='year'/>
    </date>
  </macro>


  <macro name='date'>
    <date variable='issued'>

      <date-part name='year'/>
      <date-part name='month' form='numeric' prefix='-' range-delimiter='/'/>
      <date-part name='day' prefix='-' range-delimiter='/'/>

    </date>
  </macro>
  <macro name='secondary-contributors'>
    <!-- choisir entre differentes possibilites (sinon les options sont prises sequentiellement, ou comme un 'assignment' -->
    <choose>
      <if type='chapter paper-conference' match='none'>
        <group delimiter=', '>
          <choose>
            <if variable='author'>
              <names variable='editor'>
                <label suffix=' ' strip-periods='true'/>
                <name and='text' delimiter=', '/>
              </names>
            </if>
          </choose>
          <choose>
            <if variable='author editor' match='any'>
              <names variable='translator'>
                <label suffix=' ' strip-periods='true'/>
                <name and='text' delimiter=', '/>
              </names>
            </if>
          </choose>
          <choose>
            <if variable='author editor' match='any'>
              <names variable='composer' prefix='Comp. '>
                <label suffix=' ' strip-periods='true'/>
                <name and='text' delimiter=', '/>
              </names>
            </if>
          </choose>
        </group>
      </if>
    </choose>
  </macro>
  <!-- definition de la macro 'container-contributors' qui pourra etre reprise dans le 'layout' -->
  <macro name='container-contributors'>
    <choose>
      <if type='chapter paper-conference' match='any'>
        <group prefix=',' delimiter=', '>
          <choose>
            <if variable='author'>
              <names variable='editor'>
                <label form='verb-short' prefix=' ' text-case='lowercase' suffix=' ' strip-periods='false'/>
                <name and='text' delimiter=', '/>
              </names>
              <choose>
                <if variable='container-author'>
                  <group>
                    <names variable='container-author'>
                      <label form='verb-short' prefix=' ' text-case='lowercase' suffix=' ' strip-periods='true'/>
                      <name and='text' delimiter=', '/>
                    </names>
                  </group>
                </if>
              </choose>
            </if>
          </choose>
          <choose>
            <if variable='author editor' match='any'>
              <names variable='translator'>
                <label form='verb-short' prefix=' ' text-case='lowercase' suffix='. ' strip-periods='true'/>
                <name and='text' delimiter=', '/>
              </names>
            </if>
          </choose>
        </group>
      </if>
    </choose>
  </macro>
  <!-- definition de la macro 'anon' qui permet de formater les publications anonymes avec nom d'auteur sous la forme 'Anon.' -->
  <macro name='anon'>
    <choose>
      <if variable='author editor translator composer	' match='none'>
        <text term='anonymous' form='short' suffix='. "hello" ' text-case="capitalize-first" strip-periods='true'/>
	<names variable='author'>
   	  <name/>
    	  <substitute>
      	    <names variable='editor'/>
      	    <text macro='title'/>
    	  </substitute>
  	</names>
      </if>
      <else>
        <text value='Cite with a composer'/>
      </else>
    </choose>
  </macro>
  <!-- definition de la macro 'editor' qui permet de formater les noms des editeurs (d'actes de colloque, par exemple) -->
  <macro name='editor'>
    <names variable='editor'>
      <name name-as-sort-order='first' and='text' sort-separator=', ' delimiter=', ' delimiter-precedes-last='never'/>
      <label form='short' prefix=', ' suffix='.' strip-periods='true'/>
    </names>
  </macro>
  <!-- definition de la macro 'translator' qui permet de formater les nom des traducteurs -->
  <macro name='translator'>
    <names variable='translator'>
      <name name-as-sort-order='first' and='text' sort-separator=', ' delimiter=', ' delimiter-precedes-last='never'/>
      <label form='verb-short' prefix=', ' suffix='.' strip-periods='true'/>
    </names>
  </macro>
  <!-- definition de la macro 'recipient' qui permet de formater les nom des personnes a qui est adressee une lettre ou une communication personnelle-->
  <macro name='recipient'>
    <choose>
      <if type='personal_communication'>
        <choose>
          <if variable='genre'>
            <text variable='genre' text-case='capitalize-first'/>
          </if>

        </choose>
      </if>
    </choose>
    <names variable='recipient' delimiter=', '>
      <label form='verb' prefix=' ' text-case='lowercase' suffix=' '/>
      <name and='text' delimiter=', '/>
    </names>
  </macro>
  <macro name='editor-collection'>
    <names variable='collection-editor' delimiter=' ; '>
      <name name-as-sort-order='all' sort-separator=', ' initialize-with='. ' delimiter=' ; '
	    delimiter-precedes-last='always' font-variant='small-caps'/>
      <label form='short' prefix=' (' suffix=')'/>
      <!-- needed: Label should appear as suffix to EVERY name...!-->
    </names>
  </macro>
  <!-- definition de la macro 'contributors' qui permet de formater les nom des contributeurs (par exemple pour une preface) a un livre ou autre document -->

  <macro name='contributors'>
    <names variable='author'>
      <name and='text' name-as-sort-order='first' sort-separator=', ' delimiter=', ' delimiter-precedes-last='never'>
        <name-part name='family' font-variant='small-caps'/>
        <name-part name='given' />
      </name>
      <label form='verb-short' prefix=', ' suffix='.' text-case='lowercase' strip-periods='true'/>
      <substitute>
	<text macro='editor'/>
	<text macro='translator'/>
      </substitute>
    </names>
    <text macro='anon'/>
    <text macro='recipient' prefix=' @&#160;'/>
  </macro>
  <!-- definition de la macro 'contributors-short' qui permet de formater les nom des contributeurs (variante 'courte' - sans le 'recipient' - de la precedente) -->
  <macro name='contributors-short'>
    <names variable='author'>
      <name form='short' and='text' delimiter=', '/>
      <substitute>
        <names variable='editor'/>
        <names variable='translator'/>
	<names variable='recipient'/>
      </substitute>
    </names>
    <text macro='anon'/>
  </macro>
  <!-- definition de la macro 'interviewers' qui permet de formater les nom des intervieweurs -->
  <macro name='interviewer'>
    <names variable='interviewer' delimiter=', '>
      <label form='verb' prefix=', ' suffix=' '/>
      <name and='text' delimiter=', '/>
    </names>
  </macro>
  <!-- definition de la macro 'archive' qui permet de formater le nom et le lieu de l'archive qui contient le document, quand elle existe -->
  <macro name='archive'>
    <group delimiter='. '>
      <text variable='archive_location' text-case='capitalize-first'/>
      <text variable='archive'/>
      <text variable='archive-place'/>
    </group>
  </macro>
  <!-- d finition de la macro 'publication_date' qui permet de formater la date quand le lieu n'existe pas (par defaut) -->
  <macro name='publication_date'>
    <group delimiter='. '>
      <text variable='publisher-place' prefix=' ('/>
      <date variable='issued' suffix=')'>
	<date-part name='year'/>
      </date>
    </group>
  </macro>
  <!-- definition de la macro 'access' qui permet de formater le lieu et l'URL du document quand il sort des normes, ainsi que le DOI 'The Digital Object Identifier (DOI ) System is for identifying content objects in the digital environment. DOI names are assigned to any entity for use on digital networks. They are used to provide current information, including where they (or information about them) can be found on the Internet. Information about a digital object may change over time, including where to find it, but its DOI name will not change', cf. http://www.doi.org/ -->
  <macro name='access'>
    <group delimiter='. '>
      <choose>
        <if type='graphic report' match='any'>
          <text macro='archive'/>
        </if>
        <else-if type='bill book graphic legal_case motion_picture report song article-magazine article-newspaper thesis chapter paper-conference' match='none'>
          <text macro='archive'/>
        </else-if>
      </choose>
      <!-- <text variable='DOI' prefix='doi&#160;:'/> -->
      <text variable='DOI' prefix='doi:&#8239;'/>
      <choose>
        <if type='manuscript speech webpage entry-encyclopedia motion_picture song paper-conference' match='any'>
	  <!--         <text variable='URL' prefix='url:&#8239;'/> -->
        </if>
      </choose>
      <text variable='URL' prefix='url:&#8239;'/>
    </group>
  </macro>
  <macro name='title'>
    <choose>
      <if variable='title' match='none'>
        <choose>
          <if type='personal_communication' match='none'>
            <text variable='genre' text-case='capitalize-first'/>
          </if>
        </choose>
      </if>
      <!-- Titles in italics for books -->
      <else-if type='bill book legal_case motion_picture report song thesis' match='any'>
        <text variable='title' font-style='italic'/>
      </else-if>
      <!-- titles between quotes for articles -->
      <else-if type='article-journal article-magazine article-newspaper paper-conference' match='any'>
        <text variable='title' quotes='true'/>
      </else-if>
      <!-- titles between quotes for other publications-->
      <else>
        <text variable='title' quotes='true'/>
      </else>
    </choose>
  </macro>
  <!-- grouping the number of the edition with the shortened name 'ed.' -->
  <macro name='edition'>
    <choose>
      <if type='bill book graphic legal_case motion_picture report song chapter paper-conference' match='any'>
        <choose>
          <!-- if the edition is a number, write 'number_ed.' -->
          <if is-numeric='edition'>
            <group delimiter=' '>
              <number variable='edition' form='ordinal'/>
              <text term='edition' form='short' suffix='.' strip-periods='true'/>
            </group>
          </if>
          <!--else, write the string in 'edition' with a '.' as a suffix -->
          <else>
	    <text term='edition' form='short' suffix='. ' strip-periods='true'/>
            <text variable='edition' suffix=''/>

          </else>
        </choose>
      </if>
    </choose>
  </macro>
  <macro name='locators'>
    <text variable='issue' prefix=' (' suffix=')'/>
    <text variable='volume' form='short' text-case='capitalize-first' suffix='.&#160;' strip-periods='true' prefix=' '/>
    <text variable='number' form='short' text-case='capitalize-first' suffix='.&#160;' strip-periods='true' prefix=' '/>
    <choose>

      <if type='article-journal'>
        <text variable='volume' form='short' text-case='capitalize-first' suffix='.&#160;' strip-periods='true' prefix=' '/>
        <number variable='number'  suffix='.&#160;'  prefix=' '/>
      </if>
      <else-if type='legal_case'>
        <text variable='volume' prefix=', '/>
	<text variable='container-title' prefix=' '/>
        <text variable='page' prefix=' '/>
      </else-if>
      <!-- integrating volume numbers in the form 'volume(numeric)/volumes(numeric)' -->
      <else-if type='bill book graphic legal_case motion_picture report song' match='any'>
        <group prefix=', '>
          <group>
            <text term='volume' form='short' text-case='capitalize-first' suffix='.&#160;' strip-periods='true'/>
            <number variable='volume' form='numeric' suffix='/'/>
          </group>
          <group>
            <number variable='number-of-volumes' form='numeric'/>
	    <text term='volume' form='short' suffix=', ' prefix=' ' plural='true'/>
          </group>
        </group>
      </else-if>
      <else-if type='chapter paper-conference' match='any'>
        <choose>
          <if variable='page' match='none'>
            <group prefix=', '>
              <text term='volume' form='short' text-case='capitalize-first' suffix='.&#160;' strip-periods='true'/>
              <number variable='volume' form='numeric'/>
            </group>
          </if>
        </choose>
      </else-if>
    </choose>
  </macro>
  <macro name='volume_locators'>
    <choose>
      <if type='article-journal'>
	<text variable='volume'  text-case='capitalize-first' font-style='italic'  prefix='&#160;' />
      </if>
      <else-if type='legal_case'>
        <text variable='volume' prefix=', '/>
        <text variable='container-title' prefix=' '/>
        <text variable='page' prefix=' '/>
      </else-if>
      <else-if type='song'>
        <text variable='volume' prefix=' (track ' suffix=')'/>
        <text variable='container-title' prefix=' '/>
        <text variable='page' prefix=' '/>
      </else-if>
      <!-- integrating volume numbers in the form 'volume(numeric)/volumes(numeric)' -->
      <else-if type='bill book graphic legal_case motion_picture report entry-encyclopedia' match='any'>
        <group prefix=' '>
          <group>
	    <!-- <text term='volume' form='short' suffix='.&#160;' strip-periods='true'/> -->
            <number variable='volume' form='numeric' suffix='/' font-style='italic'/>
          </group>
          <group>
            <number variable='number-of-volumes' form='numeric' font-style='italic'/>
	    <text term='volume' form='short' suffix=')' prefix=' (' plural='true'/>
          </group>
        </group>
      </else-if>
      <else-if type='chapter paper-conference' match='any'>
        <choose>
          <if variable='page' match='none'>
            <group prefix=', '>
              <text term='volume' form='short' text-case='capitalize-first' suffix='.&#160;' strip-periods='true'/>
              <number variable='volume' form='numeric'/>
            </group>
          </if>
        </choose>
      </else-if>
    </choose>
    <text variable='issue' font-style='italic' prefix=' ' suffix=''/>
  </macro>

  <macro name='locators-chapter'>
    <choose>
      <if type='chapter paper-conference' match='any'>
        <choose>
          <if variable='page'>
            <group prefix=', '>
              <text variable='volume' suffix=','/>
            </group>
          </if>
        </choose>
      </if>
    </choose>
  </macro>
  <macro name='locators-article'>
    <choose>
      <if type='article-newspaper'>
        <group prefix=', ' delimiter=', '>
          <group>
            <text variable='edition' suffix=' '/>
            <text term='edition' prefix=' '/>
          </group>
          <group>
            <text term='section' form='short' suffix='. ' strip-periods='true'/>
            <text variable='section'/>
          </group>
        </group>
      </if>
      <!-- <else-if type='article-journal'>
	   <text variable='page' prefix=', '/>
	   </else-if> -->
    </choose>
  </macro>
  <macro name='point-locators'>
    <choose>
      <if variable='locator'>
        <choose>
          <if locator='page' match='none'>
            <choose>
              <if type='bill book graphic legal_case motion_picture report song' match='any'>
                <choose>
                  <if variable='volume'>
                    <group>
                      <text term='volume' form='short' text-case='lowercase' suffix='.&#160;' strip-periods='true'/>
                      <number variable='volume' prefix='v. ' form='numeric'/>
                      <label variable='locator' form='short' prefix=', p.&#8239;' suffix=' '/>
                    </group>
                  </if>
                  <else>
                    <label variable='locator' form='short' prefix=', p.&#8239;' suffix=' '/>
                  </else>
                </choose>
              </if>
            </choose>
          </if>
          <else-if type='bill book graphic legal_case motion_picture report song' match='any'>
            <number variable='volume' form='numeric' prefix='v. ' suffix=', '/>
          </else-if>
        </choose>
        <text variable='locator' prefix='p.&#8239;' />
      </if>
    </choose>
  </macro>
  <macro name='container-title'>
    <choose>
      <if type='chapter paper-conference' match='any'>
	<!-- <text macro='container-prefix' suffix=' '/> -->
      </if>
    </choose>
    <choose>
      <if type='legal_case' match='none'>
        <text variable='container-title' font-style='italic'/>
      </if>
    </choose>
  </macro>
  <macro name='publisher'>
    <group delimiter=', '>
      <text variable='publisher'/>
    </group>
  </macro>
  <macro name='day-month'>
    <date variable='issued'>
      <date-part name='month'/>
      <date-part name='day' prefix=' '/>
    </date>
  </macro>
  <macro name='collection-title'>
    <text variable='collection-title' font-style='italic'/>
    <text variable='collection-number' prefix=' '/>
  </macro>
  <macro name='event'>
    <group>
      <text term='presented at' suffix=' '/>
      <text variable='event'/>
    </group>
  </macro>
  <macro name='description'>
    <choose>
      <if type='interview'>
        <group delimiter=', '>
          <text macro='interviewer'/>
          <text variable='medium'/>
        </group>
      </if>
      <else>
        <text variable='medium' prefix=', '/>
      </else>
    </choose>
    <choose>
      <if variable='title' match='none'/>
      <!-- <else-if type='thesis'/> -->
      <else>
        <text variable='genre' text-case='capitalize-first' prefix=', '/>
      </else>
    </choose>
  </macro>
  <macro name='issue'>
    <choose>
      <if type='article-journal'>
        <text macro='day-month' prefix=' (' suffix=')'/>
      </if>
      <else-if type='legal_case'>
        <text variable='authority' prefix=', '/>
      </else-if>
      <else-if type='speech'>
        <group prefix=' ' delimiter=', '>
          <text macro='event'/>
          <text macro='day-month'/>
          <text variable='event-place'/>
        </group>
      </else-if>
      <else-if type='article-newspaper article-magazine' match='any'>
        <text macro='day-month' prefix=', '/>
      </else-if>
      <else>
        <group prefix=', ' delimiter=', '>
          <choose>
            <if type='thesis'>
              <text variable='genre' text-case='capitalize-first'/>
            </if>
          </choose>
          <text macro='publisher'/>
          <text macro='day-month'/>
        </group>
      </else>
    </choose>
  </macro>

  <citation et-al-min='4' et-al-use-first='1' disambiguate-add-year-suffix='true' disambiguate-add-names='true' disambiguate-add-givenname='true'>
    <sort>
      <key macro='contributors'/>
      <key variable='issued' sort='ascending'/>
    </sort>
    <layout prefix='[' suffix=']' delimiter='&#8239;; '>
      <group delimiter=', '>
        <group delimiter=', '>
          <text macro='contributors-short'/>
          <text macro='intext_date'/>
        </group>
        <text macro='point-locators'/>
      </group>
    </layout>
  </citation>
  <bibliography hanging-indent='true'  et-al-min='5' et-al-use-first='3' entry-spacing='0'>
    <sort>
      <key macro='contributors'/>
      <key variable='issued' sort='ascending'/>
    </sort>
    <layout suffix='.'>
      <choose>
        <if variable='author editor translator composer' match='none'>
	  <text macro='contributors' suffix=''/>
      	</if>
      </choose>
      <text macro='contributors' suffix='&#8239;: '/>
      <text macro='title'/>
      <text macro='description'/>
      <text macro='secondary-contributors' prefix=', '/>
      <text macro='container-title' prefix=', '/>
      <text macro='container-contributors'/>
      <!-- <text macro='locators-chapter'/> -->
      <text macro='edition' prefix=', '/>
      <!-- <text macro='locators'/> -->
      <text macro='collection-title' prefix=', '/>
      <text macro='volume_locators'/>
      <choose>
        <if variable='volume' match='none'>
	  <text macro='publisher' prefix=', '/>
	</if>
        <else>
	  <text macro='publisher' prefix=', '/>
        </else>
      </choose>
      <text macro='locators-article'/>
      <choose>
        <if variable='publisher-place' match='any'>
	  <text variable='publisher-place' prefix=' |' suffix=', '/>
	  <text macro='date' suffix='|'/>
	</if>
	<else-if variable='publisher-place' match='none'>
	  <text macro='date' prefix=' |' suffix='|'/>
        </else-if>
      </choose>
      <text macro='access' prefix=' [' suffix=']'/>
      <text variable='page' prefix=' p.&#8239;'/>
    </layout>
  </bibliography>
</style>
<<==== CSL ====<<

>>==== INPUT ====>>
[
  {
    "id": "ITEM-1",
    "title": "Book Title",
    "type": "book"
  },
  {
    "composer": [
      {
        "family": "Smith",
        "given": "Bob"
      }
    ],
    "id": "ITEM-2",
    "title": "Book-2 Title",
    "type": "book"
  }
]
<<==== INPUT ====<<



>>===== VERSION =====>>
1.0
<<===== VERSION =====<<

