Juris-M / citeproc-js

A JavaScript implementation of the Citation Style Language (CSL) https://citeproc-js.readthedocs.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unexpected delimiter preceding last literal name

zepinglee opened this issue · comments

In the following fixture, the delimiter-precedes-last is set always globally and the delimiter of <name> is empty. This may seem odd but it makes sense in Chinese. The output is correct for names with separate name parts but citeproc-js produces an extra comma for literal names.

      + expected - actual

      -John Doe和Jane Roe; John Doe, 和Jane Roe
      +John Doe和Jane Roe; John Doe和Jane Roe
>>===== MODE =====>>
citation
<<===== MODE =====<<


>>===== RESULT =====>>
John Doe和Jane Roe; John Doe和Jane Roe
<<===== RESULT =====<<


>>===== CSL =====>>
<style
    xmlns="http://purl.org/net/xbiblio/csl"
    class="note"
    version="1.0"
    delimiter-precedes-last="always"
    default-locale="zh-CN">
  <info>
    <id/>
    <title/>
    <updated>2022-08-07T03:28:57+00:00</updated>
  </info>
  <citation>
    <layout delimiter="; ">
      <names variable="author">
        <name delimiter="" and="text"/>
      </names>
    </layout>
  </citation>
</style>
<<===== CSL =====<<


>>===== INPUT =====>>
[
    {
        "id": "ITEM-1",
        "type": "book",
        "author": [
            {
                "family": "Doe",
                "given": "John"
            },
            {
                "family": "Roe",
                "given": "Jane"
            }
        ]
    },
    {
        "id": "ITEM-2",
        "type": "book",
        "author": [
            {
                "literal": "John Doe"
            },
            {
                "literal": "Jane Roe"
            }
        ]
    }
]
<<===== INPUT =====<<


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