zotero / citeproc-rs

CSL processor in Rust.
https://cormacrelf.github.io/citeproc-wasm-demo/
Other
75 stars 11 forks source link

Bug report: name disambiguation in bibliography #149

Open zepinglee opened 2 years ago

zepinglee commented 2 years ago

The disambiguation process should be also applied to the names in ambiguous references.

2ab195a output:

Diff < left / right > :
 <div class="csl-bib-body">
 <div class="csl-entry">J Roe</div>
<<div class="csl-entry">J Doe</div>
<<div class="csl-entry">J Doe</div>
><div class="csl-entry">John Doe</div>
><div class="csl-entry">Jack Doe</div>
 </div>
>>===== MODE =====>>
bibliography
<<===== MODE =====<<

>>===== RESULT =====>>
<div class="csl-bib-body">
  <div class="csl-entry">J Roe</div>
  <div class="csl-entry">John Doe</div>
  <div class="csl-entry">Jack Doe</div>
</div>
<<===== RESULT =====<<

>>===== CSL =====>>
<style
      xmlns="http://purl.org/net/xbiblio/csl"
      class="note"
      version="1.0">
  <info>
    <id />
    <title />
    <updated>2009-08-10T04:49:00+09:00</updated>
  </info>
  <citation
         disambiguate-add-givenname="true"
         givenname-disambiguation-rule="by-cite">
    <layout delimiter="; ">
      <names variable="author">
        <name initialize-with="" />
      </names>
    </layout>
  </citation>
  <bibliography>
    <layout delimiter="; ">
      <names variable="author">
        <name initialize-with="" />
      </names>
    </layout>
  </bibliography>
</style>
<<===== CSL =====<<

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

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