如何在Citation-js的CSL-JSON输出中保留非标准字段
如何在Citation-js的CSL-JSON输出中保留非标准BibTeX字段
要保留confsite这类非标准字段,你需要给Citation-js的BibTeX插件添加自定义字段映射——因为插件默认只处理标准字段的转换,未注册的非标准字段会被自动忽略。
具体实现步骤
- 调用BibTeX插件的
addField方法,注册你的非标准字段映射规则,明确字段在BibTeX中的名称,以及如何转换到CSL-JSON结构中。 - 完成映射注册后,再用
new Cite()处理BibTeX内容,输出的CSL-JSON就会包含目标字段。
代码示例
const { Cite } = require('@citation-js/core'); const { plugin: bibtexPlugin } = require('@citation-js/plugin-bibtex'); // 注册自定义字段confsite的映射规则 bibtexPlugin.addField('confsite', { bibtex: 'confsite', // 对应BibTeX中的字段名 output: (value) => ({ confsite: value }) // 直接将字段值映射到CSL-JSON的confsite字段 }); // 测试用的BibTeX内容 const bibtexContent = ` @InProceedings{demo_paper, author = {Jane Smith}, title = {Demo Conference Paper}, booktitle = {Annual Demo Conference}, year = {2024}, url = {https://demo.com/paper-detail}, confsite = {https://demo.com/conference-home} } `; const citeInstance = new Cite(bibtexContent); // 输出包含confsite字段的CSL-JSON console.log(citeInstance.format('csl'));
原理说明
Citation-js的BibTeX插件内部维护了一套标准字段的映射表,只有在表中存在的字段才会被解析并转换到CSL-JSON中。通过addField方法扩展这个映射表,就能让插件识别并保留你的非标准字段。
内容的提问来源于stack exchange,提问作者SiliconValley
相关产品推荐
相关产品推荐

