Citoid/在您的wiki启用Citoid
Citoid是一个自动填充的引文生成器,能够根据URL或一些学术参考标识符(如DOI、PMID、PMCID和ISBN)从在线资源自动创建引文模板。 目前该功能可在VisualEditor和2017 wikitext編輯器中使用。 Citoid使用Zotero转换器将页面链接转换为详细信息。

第一步:启用引用模板工具
Citoid服务通过可视化编辑器的引文工具实现。
大多数大型维基百科和许多小型项目已默认启用此功能。
若引文工具已启用,则“引证”菜单中除“基本”和“复用”外,还会显示一个或多个本地引文模板。
若未启用,需先按照引文工具定义章节的步骤进行配置。
每个引文模板都需要正常的模板数据才能工作。
第二步:配置Citoid
必须通过特殊的模板数据映射和Citoid专用消息来配置Citoid扩展。 请严格按顺序完成这两个步骤!
第二步a:检查wiki是否具备引文模板
若本地wiki已有引文模板,继续第二步b。 若没有,需先创建或导入模板。
第二步b:为每个引文模板创建“citoid”映射值

由于Citoid对每种文档类型有专用字段名(例如期刊名称在Citoid中称为publicationTitle,而在w:Template:Cite journal中称为journal),需在模板数据中点击“添加新映射”为每个引文模板添加名为“citoid”的特殊映射。
If you prefer using wikitext, edit <templatedata /> (usually inside a /doc or /TemplateData subpage) and add the citoid mapping in the maps object:
{
"description": "…",
"params": {…},
"paramOrder": […],
"maps": {
"citoid": {
…,
"publicationTitle": "journal",
…
}
},
"format": "{{_ |_=_}}"
}
此特殊映射建立了Citoid字段与模板字段的对应关系。
映射必须命名为citoid以便Citoid扩展识别。
maps对象中允许无限数量的具有唯一键的映射。
请注意,模板数据映射仅在编辑模式可见,不会显示在模板数据表格中。
若近期从英文维基百科复制了模板数据,可能已包含Citoid映射。
但若模板数据较旧,可能未包含。
与Citoid扩展兼容的最新映射对象可在英文维基百科找到:
- w:Template:Cite news/doc
- w:Template:Cite journal/doc
- w:Template:Cite web/doc
- w:Template:Cite book/TemplateData
- w:Template:Citation/doc
第二步c:配置特殊MediaWiki消息
您需要在内置的MediaWiki:名字空间配置特殊消息MediaWiki:Citoid-template-type-map.json。
该消息将34种原生Citoid类型(artwork、book、journalArticle、tvBroadcast、website等)映射到相应模板(Cite web、Cite book、Cite journal等)。
应为每种Citoid类型匹配本地引文模板。若未匹配任何模板,Citoid将无法工作。匹配不完美总比完全不匹配要好。 例如,若您的wiki没有专门引用DVD包装内页的模板,可考虑使用书籍或视频模板。 对于没有合适匹配的源类型,可考虑使用通用模板(如英文维基的Template:Citation)作为兜底方案。
示例消息可参考英文维基百科:w:MediaWiki:Citoid-template-type-map.json。
故障排除
工具栏未显示引用按钮

完成第二步c的MediaWiki消息配置后,原引用下拉菜单(File:VisualEditor_-_Cite_Pulldown.png)应被替换为工具栏中的Citoid服务按钮。 若未显示新按钮,可能是MediaWiki:Citoid-template-type-map.json存在问题。 若该页面不存在或JSON无效,Citoid将无法工作。此外,可能需要刷新JavaScript缓存。
我们无法为您生成引用。
若此错误频繁出现,可能是尝试插入的引文模板缺少映射数据。 Check your browser console as you will see a warning with the name of the template if this is the case. 即使模板有映射数据但未传递至MediaWiki API也会出现此问题。 若映射数据存在于模板文档的模板数据块中,可尝试对模板进行“空编辑”。 同时确保模板页面的空白模板数据不会覆盖文档页面的数据。 若仍无效,可能是映射本身存在问题。 注意若错误偶尔出现,可能是特定URL的引用问题。可通过API测试该URL,若同样失败则非配置问题。 To check this, try citing the url from the API. If it doesn't work there either, it is not a config issue.
Citoid无法识别我常用的网站,仅获取基础信息
Citoid服务在很大程度上依赖于Zotero社区的卓越贡献,因为每个网站都需要编写Zotero转换器。 所有Zotero转换器列表见https://github.com/zotero/translators。 目前Zotero对英文资源支持最佳。 我们需要您帮助改进其他网站的覆盖范围。 您可以自行编写Zotero转换器。 建议先参考类似网站的现有转换器,并阅读Citoid/创建Zotero转换器教程。
我的维基上的日期格式不同
完整日期信息(年月日)采用国际标准的ISO格式。 若社区不喜此显示方式,可编辑引文模板将ISO日期转换为本地语言的标准格式。 例如,您可以为模板添加逻辑,若检测到日期采用ISO yyyy-mm-dd格式,则将日期重新格式化,在页面上显示为dd/mm/yyyy格式。 但底层数据(源代码或可视化编辑器表单中的值)仍保持不变。
仅含年月的数据也采用ISO格式(YYYY-MM),但部分引文模板不接受此格式。 请参阅T132308。
许多语言wiki模板(如pl、it、en)不接受xx-XX式语言代码
相关任务参见T115326。 各维基的解决方案讨论见T97256。
参见
- Zotero教程
- Zotero翻译服务器——基于xpcshell的Zotero翻译服务器,及已弃用的nodejs版本zotero-node
- 各项目类型的有效字段名
- Zotero字段映射
- 研究:Citoid对维基媒体参考文献的支持
- https://www.zotero.org/support/dev/translators/testing
- Zotero开发者Sebastian Karcher的转换器编写教程(视频、幻灯片、链接)
- 支持Zotero转换器的网站列表
- 不同itemType的URL示例
- James Forrester talks Citoid and Zotero at m:WikiCite 2017