geissler/

converter

一个小型库,用于将不同的文献引用格式相互转换

dev-master 2017-08-20 16:41 UTC

This package is not auto-updated.

Last update: 2020-01-10 14:58:13 UTC


README

Build Status

一个小型库,用于将不同文献标准(如 BibTeX、CSL 等)的输入数据相互转换。目前支持 BibTeXCSLRIS

安装

通过 composer

composer.json 中添加 require 键并运行 composer install。

    "require" : {
        "geissler/converter": "dev-master"
    }

其他

请确保您使用的是兼容 PSR-2 的自动加载器。

用法

将一种标准转换为另一种标准

    // include the composer autoloader
    require __DIR__ . '/vendor/autoload.php';

    use Geissler\Converter\Converter;
    use Geissler\Converter\Standard\RIS\RIS;
    use Geissler\Converter\Standard\BibTeX\BibTeX;
    use Geissler\Converter\Standard\CSL\CSL;

    $converter  =   new Converter();

    // your input RIS data
    $data = 'TY  - JOUR
             TI  - Die Grundlage der allgemeinen Relativitätstheorie
             AU  - Einstein, Albert
             PY  - 1916
             SP  - 769
             EP  - 822
             JO  - Annalen der Physik
             VL  - 49
             ER  - ';

    // convert to bibTeX
    $bibTeX =   $converter->convert(new RIS($data), new BibTeX());

    /**
     * $bibTeX has know the following value:
     *
     * @article{article,
     *      author = {Einstein, Albert},
     *      year = {1916},
     *      pages = {769-822},
     *      title = {Die Grundlage der allgemeinen Relativitätstheorie},
     *      volume = {49}
     * }
     */

     // or convert bibTeX to csl
     $csl   =   $converter->convert(new BibTeX($bibTeX), new CSL());

     /**
      * $csl has know the following value (a UTF-8 encoded json string):
      *
      * [
      *     {
      *         "type":"article",
      *         "author":[{
      *             "family":"Einstein",
      *             "given":"Albert"
      *         }],
      *         "issued":[{
      *             "year":"1916"
      *         }],
      *         "page":"769-822",
      *         "page-first":"769",
      *         "citation-label":"article",
      *         "title":"Die Grundlage der allgemeinen Relativit\u00e4tstheorie"
      *     }
      * ]
      */

添加标准

实现一个新的标准相当简单

  1. 复制文件夹 src/Geissler/Converter/Standard/Template 的副本
  2. 将名称更改为新标准。
  3. 也将 Template.php 文件重命名为标准的名称
  4. Creator.phpParser.phpTemplate.php 文件中将每个 Template 替换为新标准的名称。
  5. Creator.php 中实现 createretrieve 方法
  6. Parser.php 中实现 parseretrieve 方法
  7. 别忘了编写您的 PHPUnit 测试,并遵循 PSR-2 编码标准