Gitbook章节参考书目不按字母顺序排列
Posted
技术标签:
【中文标题】Gitbook章节参考书目不按字母顺序排列【英文标题】:Gitbook chapter bibliography not in alphabetical order 【发布时间】:2018-08-29 16:04:21 【问题描述】:我正在使用 bookdown 从 R markdown 文件(即 .Rmd
)创建 html gitbook,默认选项为 split_bib = TRUE
,从而在每章末尾生成参考书目,以及在本书的结尾。
书末参考书目按字母顺序排列,但章末参考书目不是。 (Here's an example)。
如何按字母顺序排列所有参考列表?
【问题讨论】:
你项目的仓库在线吗?你能指点我吗? github.com/ms609/Hy 【参考方案1】:$(function()
var elems = $('#refs').children('div').remove();
elems.sort(function (a, b)
return b.id > a.id ? -1 : 1;
);
$('#refs').append(elems);
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="refs" class="references">
<div id="ref-Goloboff2016">
<p>Goloboff, P. A., and S. A. Catalano. 2016: TNT version 1.5, including a full implementation of phylogenetic morphometrics. Cladistics 32:221–238.</p>
</div>
<div id="ref-Goloboff1999">
<p>Goloboff, P. 1999: Analyzing large data sets in reasonable times: solutions for composite optima. Cladistics 15:415–428.</p>
</div>
<div id="ref-Nixon1999">
<p>Nixon, K. C. 1999: The Parsimony Ratchet, a new method for rapid parsimony analysis. Cladistics 15:407–414.</p>
</div>
<div id="ref-Goloboff1997">
<p>Goloboff, P. A. 1997: Self-weighted optimization: tree searches and character state reconstructions under implied transformation costs. Cladistics 13:225–245.</p>
</div>
</div>
我的解决方案按#refs
中div
s 的id
排序。您没有指定是否要按姓氏升序和年份降序排序,这需要一些更复杂的东西。
【讨论】:
一个聪明的答案,当然!尚未标记为已接受,因为感觉就像一个先验解决方案也应该存在而不依赖于javascript? 您应该能够使用更精确的 CSS 选择器来仅对您想要排序的引用进行排序 - 或者您可以使用:not
伪选择器 developer.mozilla.org/en-US/docs/Web/CSS/:not
[恢复了意外删除的评论:] 我已经尝试过实现这一点(使用 include:after_body 预订选项),不幸的副作用是它弄乱了参考页面上的顺序,因为这些引用包含在缺少 ID 元素的 div 中。有没有一种优雅的方法来禁用参考页面上的脚本,而不是将其手动粘贴到所有其他页面中?
我最终修改了 elems.sort 函数以读取 return $(b).children('p').html() > $(a).children('p').html() ? -1 : 1;
,并将脚本包含在 _output.yml 的 bookdown::gitbook: includes: after_body
指令中链接的 html 文件中。然后按字母顺序对每一页和参考书目中的参考文献进行排序。以上是关于Gitbook章节参考书目不按字母顺序排列的主要内容,如果未能解决你的问题,请参考以下文章