researchgate / converter
一个小型库,可以将不同的文献引用格式相互转换。源自 'geissler/converter'。
1.3.2
2023-11-06 12:44 UTC
Requires
- php: ^7.4 | ^8.0 | ^8.1 | ^8.2
- ext-json: *
- researchgate/libris: ^2.4.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- phpstan/phpstan: ^1.10.38
- phpunit/phpunit: ^9.3
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^5.15.0
README
源自 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" * } * ] */
添加一个标准
实现一个新的标准相当简单
- 创建 src/Geissler/Converter/Standard/Template 文件夹的副本
- 将名称改为新标准。
- 同时将 Template.php 文件重命名为标准的名称
- 在 Creator.php、Parser.php 和 Template.php 文件中将每个 Template 替换为新标准的名称。
- 在 Creator.php 中实现 create 和 retrieve 方法
- 在 Parser.php 中实现 parse 和 retrieve 方法
- 别忘了编写您的 PHPUnit 测试并遵循 PSR-12 编码标准