researchgate/converter

一个小型库,可以将不同的文献引用格式相互转换。源自 'geissler/converter'。

1.3.2 2023-11-06 12:44 UTC

This package is auto-updated.

Last update: 2024-09-09 10:04:57 UTC


README

ci

源自 geissler/converter 感谢您的卓越贡献 🙏。

一个小型库,可以将不同文献标准(如 BibTeX、CSL 等)的输入数据相互转换。

支持的格式

安装

通过 composer

只需如下要求 researchgate/converter

$ composer require researchgate/converter

其他

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

用法

将一个标准转换到另一个标准

    // 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-12 编码标准