我使用R bookdown
包来创建一个gitbook。最近我发现在渲染的gitbook中的代码块下面有一条丑陋的暗条纹(见下面的版画屏幕)。它出现时highlight
设置为espresso
。当人们试图阅读这本书并且看起来没有吸引力时,像这样的条纹会分散注意力。
我可以通过使用RStudio创建一个新的bookdown项目来重现结果(很可能是与minimal bookdown example相同的项目),文件_output.yml
的内容替换为两行:
bookdown::gitbook:
highlight: espresso
答案 0 :(得分:5)
问题来自pandoc 2.x
的使用
我复制了错误here,您可以看到与gitbook
here相同的pandoc 1.19.x
。
我写了一封说明来解释我的debugging worflow。
在这两个版本中,HTML
来源非常接近(我自愿省略div
和行{} {{}}}。
<div class="sourceCode">
<pre class="sourceCode r">
<code class="sourceCode r">
<span class="kw">install.packages</span>(<span class="st">"bookdown"</span>)
<span class="co"># or the development version</span>
<span class="co"># devtools::install_github("rstudio/bookdown")</span>
</code>
</pre>
</div>
您遇到的问题是gitbook
主题与espresso
突出显示之间的冲突造成的。
首先,暗条纹是espresso
的“真实”背景颜色(请参阅@Yihui Xie dislikes):background-color
突出显示的espresso
设置为{{1} } #2a211c
(它是硬编码的here)。
内置pandoc
突出显示为espresso
(黑色,就像浓咖啡):
pandoc v2.x
code span.kw {
color: #43a8ed;
font-weight: bold;
}
code span.st {
color: #049b0a;
}
code span.co {
color: #0066ff;
font-weight: bold;
font-style: italic;
}
div.sourceCode {
color: #bdae9d;
background-color: #2a211c;
}
div.sourceCode {
overflow: auto;
}
div.sourceCode {
margin: 1em 0;
}
pre.sourceCode {
margin: 0;
}
<div class="sourceCode">
<pre class="sourceCode r">
<code class="sourceCode r">
<span class="kw">install.packages</span>(<span class="st">"bookdown"</span>)
<span class="co"># or the development version</span>
<span class="co"># devtools::install_github("rstudio/bookdown")</span>
</code>
</pre>
</div>
与pandoc v1.19.x
元素设置background-color
而不是pre
略有不同(重要)。
其次,div.sourceCode
主题仅针对gitbook
元素取代 pre
的深色背景颜色,并带有浅灰色背景(espresso
)和定义底部边距(与Hex Gray97
CSS相反)here:
pandoc
此底部边距显示封闭的.book .book-body .page-wrapper .page-inner section.normal pre {
overflow: auto;
word-wrap: normal;
margin: 0 0 1.275em;
padding: .85em 1em;
background: #f7f7f7;
}
元素的背景颜色:
div
中的,封闭的pandoc 1.19.x
没有div
规则(背景颜色应用于background-color
元素)。所以,没有黑条纹。
在pre
中,背景颜色设置为pandoc 2.x
级别。有一条黑色条纹。
从您的问题中,我了解到您希望div
突出显示没有“丑陋”的黑暗伴侣。换句话说,你想要一个“白咖啡”突出显示。
所以,有两个选项:
espresso
突出显示这是一个品味问题。
第一个解决方案:摆脱底部边缘
将这些行保存在扩展名为espresso
的文件中(例如.css
):
fix.css
在修改.book .book-body .page-wrapper .page-inner section.normal pre {
margin-bottom: 0!important;
}
的小册子中加入此CSS文件:
_output.yml
第二个解决方案:用bookdown::gitbook:
highlight: espresso
css: fix.css
覆盖espresso
背景颜色
在这种情况下,您可以在Hex Gray97
中包含这些行:
fix.css
由于不建议使用div.sourceCode {
background-color: #f7f7f7!important;
}
规则,您可以更优雅的方式获得相同的结果: important
,您可以自定义突出显示主题 。
see this file, line #9, column #31963定义了pandoc 2.x
主题(whitecoffee
主题,背景为espresso
。)
将Hex Gray97
文件保存在项目的根级别并修改whitecoffee.theme
文件:
_output.yml