geissler / converter
一个小型库,用于将不同的文献引用格式相互转换
dev-master
2017-08-20 16:41 UTC
Requires
- php: >=5.3.0
- technosophos/libris: dev-master
This package is not auto-updated.
Last update: 2020-01-10 14:58:13 UTC
README
一个小型库,用于将不同文献标准(如 BibTeX、CSL 等)的输入数据相互转换。目前支持 BibTeX、CSL 和 RIS。
安装
通过 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" * } * ] */
添加标准
实现一个新的标准相当简单
- 复制文件夹 src/Geissler/Converter/Standard/Template 的副本
- 将名称更改为新标准。
- 也将 Template.php 文件重命名为标准的名称
- 在 Creator.php、Parser.php 和 Template.php 文件中将每个 Template 替换为新标准的名称。
- 在 Creator.php 中实现 create 和 retrieve 方法
- 在 Parser.php 中实现 parse 和 retrieve 方法
- 别忘了编写您的 PHPUnit 测试,并遵循 PSR-2 编码标准