Fork Me on GitHub

csl-validator.js

CSL validator in JavaScript using rnv and emscripten

Download this project as a .zip file Download this project as a tar.gz file
<?xml version="1.0" encoding="utf-8"?> <style xmlns="http://purl.org/net/xbiblio/csl" class="note" version="1.0" demote-non-dropping-particle="sort-only"> <info> <title>Chicago Manual of Style (note)</title> <id>http://www.zotero.org/styles/chicago-note-bibliography</id> <link href="http://www.zotero.org/styles/chicago-note-bibliography" rel="self"/> <link href="http://www.chicagomanualofstyle.org/tools_citationguide.html" rel="documentation"/> <author> <name>Julian Onions</name> <email>julian.onions@gmail.com</email> </author> <contributor> <name>Simon Kornblith</name> <email>simon@simonster.com</email> </contributor> <contributor> <name>Elena Razlogova</name> <email>elena.razlogova@gmail.com</email> </contributor> <summary>Chicago format with short notes and full bibliography</summary> <category field="generic-base"/> <category citation-format="note"/> <updated>2012-04-03T13:46:03+00:00</updated> <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> <macro name="secondary-contributors"> <choose> <if type="chapter paper-conference" match="none"> <group delimiter=". "> <choose> <if variable="author"> <names variable="editor" delimiter=". "> <label form="verb" text-case="capitalize-first" suffix=" "/> <name and="text" delimiter=", "/> </names> </if> </choose> <choose> <if variable="author editor" match="any"> <names variable="translator" delimiter=". "> <label form="verb" text-case="capitalize-first" suffix=" "/> <name and="text" delimiter=", "/> </names> </if> </choose> </group> </if> </choose> </macro> <macro name="container-contributors"> <choose> <if type="chapter paper-conference" match="any"> <group delimiter=", "> <choose> <if variable="author"> <names variable="editor" delimiter=", "> <label form="verb" text-case="lowercase" suffix=" "/> <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" delimiter=", "> <label form="verb" text-case="lowercase" suffix=" "/> <name and="text" delimiter=", "/> </names> </if> </choose> </group> </if> </choose> </macro> <macro name="editor"> <names variable="editor"> <name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/> <label form="short" prefix=", " suffix="." strip-periods="true"/> </names> </macro> <macro name="translator"> <names variable="translator"> <name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/> <label form="verb-short" prefix=", " suffix="." strip-periods="true"/> </names> </macro> <macro name="recipient-note"> <names variable="recipient" delimiter=", "> <label form="verb" prefix=" " text-case="lowercase" suffix=" "/> <name and="text" delimiter=", "/> </names> </macro> <macro name="recipient"> <choose> <if type="personal_communication"> <choose> <if variable="genre"> <text variable="genre" text-case="capitalize-first"/> </if> <else> <text term="letter" text-case="capitalize-first"/> </else> </choose> </if> </choose> <text macro="recipient-note" prefix=" "/> </macro> <macro name="contributors"> <names variable="author"> <name name-as-sort-order="first" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/> <substitute> <text macro="editor"/> <text macro="translator"/> </substitute> </names> <text macro="recipient" prefix=". "/> </macro> <macro name="recipient-short"> <names variable="recipient"> <label form="verb" prefix=" " text-case="lowercase" suffix=" "/> <name form="short" and="text" delimiter=", "/> </names> </macro> <macro name="contributors-short"> <names variable="author"> <name form="short" and="text" delimiter=", "/> <substitute> <names variable="editor"/> <names variable="translator"/> </substitute> </names> <text macro="recipient-short"/> </macro> <macro name="contributors-sort"> <names variable="author"> <name name-as-sort-order="all" and="text" sort-separator=", " delimiter=", " delimiter-precedes-last="always"/> <label form="verb-short" prefix=", " suffix="." strip-periods="true"/> <substitute> <names variable="editor"/> <names variable="translator"/> </substitute> </names> </macro> <macro name="interviewer"> <names variable="interviewer" delimiter=", "> <label form="verb" prefix=" " text-case="capitalize-first" suffix=" "/> <name and="text" delimiter=", "/> </names> </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> <else-if type="bill book graphic legal_case motion_picture report song" match="any"> <text variable="title" text-case="title" font-style="italic"/> </else-if> <else> <text variable="title" text-case="title" quotes="true"/> </else> </choose> </macro> <macro name="title-short"> <choose> <if variable="title" match="none"> <choose> <if type="interview"> <text term="interview" text-case="lowercase"/> </if> <else-if type="manuscript speech" match="any"> <text variable="genre" form="short"/> </else-if> <else-if type="personal_communication"> <text macro="issued"/> </else-if> </choose> </if> <else-if type="bill book graphic legal_case motion_picture report song" match="any"> <text variable="title" text-case="title" form="short" font-style="italic"/> </else-if> <else> <text variable="title" text-case="title" form="short" quotes="true"/> </else> </choose> </macro> <macro name="description"> <group delimiter=", "> <group delimiter=". "> <text macro="interviewer"/> <text variable="medium" text-case="capitalize-first"/> </group> <choose> <if variable="title" match="none"/> <else-if type="thesis speech" match="any"/> <else> <text variable="genre" text-case="capitalize-first"/> </else> </choose> </group> </macro> <macro name="container-title"> <choose> <if type="chapter paper-conference" match="any"> <text term="in" text-case="capitalize-first" suffix=" "/> </if> </choose> <choose> <if type="legal_case" match="none"> <text variable="container-title" text-case="title" font-style="italic"/> </if> </choose> </macro> <macro name="edition"> <choose> <if type="bill book graphic legal_case motion_picture report song chapter paper-conference" match="any"> <choose> <if is-numeric="edition"> <group delimiter=" "> <number variable="edition" form="ordinal"/> <text term="edition" form="short" suffix="." strip-periods="true"/> </group> </if> <else> <text variable="edition" text-case="capitalize-first" suffix="."/> </else> </choose> </if> </choose> </macro> <macro name="collection-title"> <text variable="collection-title" text-case="title"/> <text variable="collection-number" prefix=" "/> </macro> <macro name="locators"> <choose> <if type="article-journal"> <text variable="volume" prefix=" "/> <group prefix=", "> <text term="issue" form="short" suffix=". " strip-periods="true"/> <number variable="issue"/> </group> </if> <else-if type="legal_case"> <text variable="volume" prefix=", "/> <text variable="container-title" prefix=" "/> <text variable="page" prefix=" "/> </else-if> <else-if type="bill book graphic legal_case motion_picture report song" match="any"> <group prefix=". " delimiter=". "> <group> <text term="volume" form="short" text-case="capitalize-first" suffix=". " strip-periods="true"/> <number variable="volume" form="numeric"/> </group> <group> <number variable="number-of-volumes" form="numeric"/> <text term="volume" form="short" prefix=" " suffix="." plural="true" strip-periods="true"/> </group> <text macro="edition"/> </group> </else-if> <else-if type="chapter paper-conference" match="any"> <group prefix=". " delimiter=". "> <choose> <if variable="page" match="none"> <group> <text term="volume" form="short" text-case="capitalize-first" suffix=". " strip-periods="true"/> <number variable="volume" form="numeric"/> </group> </if> </choose> <text macro="edition"/> </group> </else-if> </choose> </macro> <macro name="locators-newspaper"> <choose> <if type="article-newspaper"> <group 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> </choose> </macro> <macro name="event"> <group> <text term="presented at" suffix=" "/> <text variable="event"/> </group> </macro> <macro name="publisher"> <choose> <if type="thesis"> <text variable="publisher"/> </if> <else> <group delimiter=": "> <text variable="publisher-place"/> <text variable="publisher"/> </group> </else> </choose> </macro> <macro name="issued"> <choose> <if variable="issued"> <choose> <if type="graphic report" match="any"> <date variable="issued"> <date-part name="month" suffix=" "/> <date-part name="day" suffix=", "/> <date-part name="year"/> </date> </if> <else-if type="legal_case"> <text variable="authority" suffix=" "/> <date variable="issued"> <date-part name="year"/> </date> </else-if> <else-if type="bill book graphic legal_case motion_picture report song thesis chapter paper-conference" match="any"> <date variable="issued"> <date-part name="year"/> </date> </else-if> <else> <date variable="issued"> <date-part name="month" suffix=" "/> <date-part name="day" suffix=", "/> <date-part name="year"/> </date> </else> </choose> </if> <else> <text term="no date" form="short"/> </else> </choose> </macro> <macro name="locators-chapter"> <choose> <if type="chapter paper-conference" match="any"> <choose> <if variable="page"> <text variable="volume" suffix=":"/> <text variable="page"/> </if> </choose> </if> </choose> </macro> <macro name="locators-journal"> <choose> <if type="article-journal"> <text variable="page" prefix=": "/> </if> </choose> </macro> <macro name="point-locators-subsequent"> <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=". " strip-periods="true"/> <number variable="volume" form="numeric"/> <label variable="locator" form="short" prefix=", " suffix=" "/> </group> </if> <else> <label variable="locator" form="short" 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" suffix=":"/> </else-if> </choose> <text variable="locator"/> </if> </choose> </macro> <macro name="archive"> <choose> <if type="thesis"> <group delimiter=" "> <text variable="archive"/> <text variable="archive_location" prefix="(" suffix=")"/> </group> </if> <else> <group delimiter=". "> <text variable="archive_location" text-case="capitalize-first"/> <text variable="archive"/> <text variable="archive-place"/> </group> </else> </choose> </macro> <macro name="issue"> <choose> <if type="article-journal legal_case" match="any"> <text macro="issued" prefix=" (" suffix=")"/> </if> <else-if type="speech"> <choose> <if variable="title" match="none"/> <else> <text variable="genre" text-case="capitalize-first" prefix=". "/> </else> </choose> <text macro="event" prefix=" "/> <text variable="event-place" prefix=", "/> <text macro="issued" prefix=", "/> </else-if> <else-if variable="publisher-place publisher" match="any"> <group prefix=". " delimiter=", "> <choose> <if type="thesis"> <text variable="genre" text-case="capitalize-first"/> </if> </choose> <text macro="publisher"/> <text macro="issued"/> </group> </else-if> <else> <text macro="issued" prefix=", "/> </else> </choose> </macro> <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-journal article-magazine article-newspaper chapter paper-conference" match="none"> <text macro="archive"/> </else-if> </choose> <choose> <if type="legal_case" match="none"> <text variable="URL"/> </if> </choose> </group> </macro> <macro name="sort-key"> <text macro="contributors-sort" suffix=" "/> <text variable="title" suffix=" "/> <text variable="genre"/> </macro> <citation et-al-min="4" et-al-use-first="1" disambiguate-add-names="true"> <layout prefix="" suffix="." delimiter="; "> <choose> <if position="ibid-with-locator"> <group delimiter=", "> <text term="ibid" text-case="capitalize-first"/> <text macro="point-locators-subsequent"/> </group> </if> <else-if position="ibid"> <text term="ibid" text-case="capitalize-first"/> </else-if> <else> <group delimiter=", "> <text macro="contributors-short"/> <text macro="title-short"/> <text macro="point-locators-subsequent"/> </group> </else> </choose> </layout> </citation> <bibliography hanging-indent="true" et-al-min="11" et-al-use-first="7" subsequent-author-substitute="———" entry-spacing="0"> <sort> <key macro="sort-key"/> <key variable="issued"/> </sort> <layout suffix="."> <group delimiter=". "> <text macro="contributors"/> <text macro="title"/> <text macro="description"/> <text macro="secondary-contributors"/> <group delimiter=", "> <text macro="container-title"/> <text macro="container-contributors"/> <text macro="locators-chapter"/> </group> </group> <text macro="locators"/> <text macro="collection-title" prefix=". "/> <text macro="issue"/> <text macro="locators-newspaper" prefix=", "/> <text macro="locators-journal"/> <text macro="access" prefix=". "/> </layout> </bibliography> </style>