@citation-js/plugin-bibtex

中文文档
0.9.0发布于 2026/09/18MITTypeScriptESM + CJS近 30 天下载 31.8万

引用.js 的 BibTeX 格式插件

中文使用文档
文档目录15 节
  1. 安装
  2. 使用量
  3. 格式
  4. BibTeX 函数
  5. BibLaTeX 图像
  6. Bib.TXT 电话
  7. 配置
  8. 类型映射
  9. 所需类型
  10. 字段类型
  11. 统一码
  12. 格式化
  13. 其他命令
  14. 英语
  15. 替换字符串

@ 引用- js/ plugin- bibtex

引用.js的 BibTeX 格式插件.

NPM version NPM total downloads License Dependency status

安装

npm install @citation-js/plugin-bibtex

使用量

通过导入软件包注册 :

require('@citation-js/plugin-bibtex')

格式

此插件添加的格式和其他特性 .

BibTeX 函数

此插件添加输入和输出支持 BibTeX 函数, (中文(简体) ), 以文字形式和JSON代表形式。 输入类型称为 @bibtex/text 财务报告和审定财务报表 @bibtex/entry+object,输出格式为 bibtex。输出有格式 词典支持.

BibLaTeX 图像

此插件添加输入和输出支持 BibLaTeX 图像, (中文(简体) ), 以文字形式和JSON代表形式。 输入类型称为 @biblatex/text 财务报告和审定财务报表 @biblatex/entry+object,输出格式为 biblatex。输出有格式 词典支持.

Bib.TXT 电话

此插件添加输入和输出支持 Bib.TXT 电话, (中文(简体) ), bibTeX的简化和现代化版本。 输入类型称为 @bibtxt/text 财务报告和审定财务报表 @biblatex/entry+object,输出格式为 bibtxt。输出有格式 词典支持.

配置

配置如下:

const { plugins } = require('@citation-js/core')
const config = plugins.config.get('@bibtex')
财产值 [默认]说明
config.parse.stricttrue, [false[ . ]如果为真, 则检查所需的字段 .
config.parse.sentenceCase'always', (中文(简体) ), 'english', ['never'[ . ]解析时将标题转换为句子大小写 .
config.format.useIdAsLabeltrue, [false[ . ]使用条目ID作为标签而不是生成标签 .
config.format.checkLabel[true[, false从提供的标签( 或ID) 中删除不安全字符 .
config.format.asciiOnly[true[, false逃避或去除非ASCII字符.

类型映射

BibLaTeX 或 BibTeX 和 CSL-JSON 之间的条目类型映射可以通过 config.types.biblatex 财务报告和审定财务报表 config.types.bibtex在这两种情况下,Bib(La)TeX 地图在 source 字段中的反向映射 target 字段.

config.types.biblatex.source.inproceedings = 'paper-conference'
config.types.biblatex.target['paper-conference'] = 'inproceedings'

所需类型

BibLaTeX 和 BibTeX 每种类型需要的字段列表 下级 config.required.biblatex 财务报告和审定财务报表 config.required.bibtex 页:1 单位 列表包含所需字段的字符串和组合的数组 bibLaTeX的年份或日期 : (见a/cn.9/wg.iii/wp.83,附件).

config.required.biblatex.book = [
  'title',
  ['author', 'editor'],
  'publisher',
  ['year', 'date']
]

字段类型

字段类型(既用于 BibLaTeX 也用于 BibTeX) 可以通过 config.constants.fieldTypes。 。 。 . 这将一个对象映射 Bib( La) TeX 字段名称返回包含一个数组 字段类型和一个值类型。 前者是 field, (中文(简体) ), list (单位:千美元)" and "- 有限, 或者说 separated (comma-delimited) (中文(简体) ). 至于后者:

数值类型说明
literal普通文本或数字内容
title喜欢 literal 但可能会受到以下因素的影响: config.parse.sentenceCase
name个人或组织名称
dateEDTF 第1级日期
verbatim未更改文本( 不扩展命令等)
uri与 verbatim 但如果需要, URL 会被编码
其他项目没有特殊的行为,对待像 literal
// Add `daturl` for dat:// URLs
config.constants.fieldTypes.daturl = ['field', 'uri']
// Do not treat `publisher` as a list
config.constants.fieldTypes.publisher = ['field', 'literal']

统一码

  • config.constants.diacritics 地图命令( e)\"(去二极论)
  • config.constants.commands 地图命令( e)\textinterrobangdown)到一般unicode字符(⸘(中文(简体) )
  • config.constants.ligatures 映射非命令字符序列( n)---, (中文(简体) ), ~其替换(emdash, no-break space等)
  • config.constants.ligaturePattern 是一个 RegExp ,它能识别上面所映射的连接
  • config.constants.mathScripts 地图上标和下标( 属性) ^ 财务报告和审定财务报表 _ (分别为)
config.constants.diacritics['"'] = '\u0308'
config.constants.commands.textinterrobangdown = '⸘'
config.constants.ligatures = {
  '---': '\u2014',
  '~': '\u00A0'
}
config.constants.ligaturePattern = /---|~/g // Don't forget the (g)lobal flag
config.constants.mathScripts = {
  '^': { '1': '¹' },
  '_': { '1': '₁' }
}

格式化

  • config.constants.formattingEnvs 用于格式化的地图环境命令
  • config.constants.formattingCommands 将正则命令映射到格式化
  • config.constants.mathScriptFormatting 地图 ^ 财务报告和审定财务报表 _ 到 resp 上下标
  • config.constants.formatting 映射到 HTML (尽管 RTF 或 Markdown 可以替换)
config.constants.formattingEnvs.bf = 'bold'
config.constants.formattingCommands.textbf = 'bold'
config.constants.mathScriptFormatting['^'] = 'superscript'
config.constants.formatting = {
  bold: ['<b>', '</b>'],
  superscript: ['<sup>', '</sup>']
}

其他命令

对象 config.constants.argumentCommands 将命令名称映射到函数 处理他们。 这不包括上面使用的命令. 粗略的参数是 根据函数的参数数自动解析。 没有 支持可选参数(即平方括号中的参数).

config.constants.argumentCommands.href = function (url, displayText) {
  // Note: <a> tags are not supported by CSL so watch out if you use this
  return `<a href="${url}">${displayText}</a>`
}

// You can also use it to replace commands that produce text
config.constants.argumentCommands.LaTeX = () => 'LaTeX'

英语

数组 config.constants.sentenceCaseLanguages 影响哪一种语言 有资格在 config.parse.sentenceCase 设置为 'english'。 。 。 . 所有条目均应为小写.

config.constants.sentenceCaseLanguages = [
  'english',
  'en-us',
  'en-gb'
]

替换字符串

对象 config.constants.defaultStrings 确定定义的字符串 默认.

config.constants.defaultStrings.larsgw = "Willighagen, Lars G"

版本与发布记录

@citation-js/plugin-bibtex 共发布 59 个版本,首次发布于 2018/12/07;过去 12 个月发布了 4 个版本。

版本发布日期距今
0.9.0latest2026/09/181 个月前
0.8.22026/07/133 个月前
0.8.12026/07/064 个月前
0.8.02026/07/064 个月前
0.7.212025/10/201.1 年前
0.7.182025/01/281.8 年前

关于 @citation-js/plugin-bibtex 的常见问题

@citation-js/plugin-bibtex 是什么?

引用.js 的 BibTeX 格式插件

如何安装 @citation-js/plugin-bibtex?

在项目目录运行 npm install @citation-js/plugin-bibtex,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@citation-js/core(^0.9.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@citation-js/plugin-bibtex 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@citation-js/plugin-bibtex 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@citation-js/plugin-bibtex 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@citation-js/plugin-bibtex 可以商用吗?

@citation-js/plugin-bibtex 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@citation-js/plugin-bibtex 的下载量有多少?

根据 npm 官方下载统计,@citation-js/plugin-bibtex 在 2026/10/10 – 2026/11/08 这 30 天内被下载 317,601 次,日均约 10,587 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@citation-js/plugin-bibtex 还在维护吗?

最新版本 0.9.0 发布于 2026/09/18(1 个月前);至今共发布 59 个版本,其中过去 12 个月发布了 4 个;首次发布于 2018/12/07。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。