生成 HTML 时在 Pandoc 中按年份组织引用

Organizing references by year in Pandoc when generating HTML

我对 Pandoc 比较陌生,我正在尝试用我的出版物生成一个 HTML 文件以放在我的网站上。我希望首先按年份对出版物列表进行编号和组织,最新的排在最前面,最早的排在最后。

我可以使用正确的 csl 文件得到正确的编号,但我无法得到年份排序。问题是我不是我所有出版物的第一作者,所以最终发生的是它们先按字母顺序排列,然后按日期排列,这不是我想要的。

使用 biblatex 和选项 sorting=ydnt(年份(降序)、名称、标题)生成 PDF 时,我可以获得我想要的结果,但由于 Pandoc 不使用 biblatex生成对 HTML 的引用列表,我不能在这里使用这种策略。

我能看到如何解决这个问题的唯一方法是在 Zotero style repo 中获得一种可以满足我需要的引用样式,但我一直找不到。所以我试图修改一个来做到这一点,但没有成功。

教了一种改变排序方式的方法,所以我想手动改变英国皇家学会会刊B风格的排序方式。具体来说我正在改变

    <sort>
      <key variable="citation-number"/>
    </sort>

    <sort>
      <key macro="issued" sort="descending"/>
      <key macro="author"/>
    </sort>

但这不起作用(可能是因为这只改变了文本引用的排序,而不是参考列表)。我已经尝试了一些其他的方法,但找不到有效的方法!

我猜这无关紧要,但我使用的是 Pandoc 2.7.3citeproc 版本 0.16.2 和我 运行 所在的文件是:

---
bibliography: selectedpubs.bib
nocite: '@*'
linestretch: 1.5
fontsize: 12pt
output:
  html:
    output: pubpage.html
    filter: pandoc-citeproc
    csl: prsb2.csl
...

文件 prsb2.csl 就是 Proceedings of the Royal Society B csl。

你的想法是对的,但是误解了链接的线程。您不想更改引文的排序键,而是希望向参考书目添加排序,即

<bibliography second-field-align="flush" et-al-min="11" et-al-use-first="10">
   <sort>
      <key macro="issued" sort="descending"/>
      <key macro="author"/>
    </sort>
<layout>

除了修改样式,您还可以使用存储库中已存在的 APA-CV 样式