个人 jekyll 博客自定义配置:代码高亮、公式表格渲染、图片居中阴影
版权声明:本文为 DLonng 原创文章,可以随意转载,但必须在明确位置注明出处!
之前基于 Jekyll 模板的博客图片不能居中也没阴影效果、数学公式和表格也不能渲染、文字排版看起来也不太舒服,代码高亮不是很明显,所以今天找了点代码,简单配置了下,一并解决!
一、 图片居中加阴影
第一种方式是在 md 文档内部用居中的标签,这样图片就居中显示了:
<div align="center">
<img src="img_url"/>
</div>
不过这样需要对每个图片都操作一遍,太麻烦了,所以我直接在博客的主题样式文件 style.css
中加上了图片居中和添加阴影的效果,看起来比较美观:
.markdown-body img {
/* 图片居中 */
clear: both;
margin: 0 auto;
display: block;
/* 添加图片阴影 */
box-shadow:0px 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset;
webkit-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset;
moz-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset;
o-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0 0 40px rgba(0,0,0,0.1) inset;
}
这是居中加阴影的效果,还不错吧。
二、渲染数学公式
写机器学习博客的时候,需要大量使用公式,所以渲染公式很有必要,我在 include/head.html
中加上以下代码:
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
inlineMath: [['$','$']]
}
});
</script>
这是公式渲染效果,也还可以:
\[h_{\theta} \left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+{\theta_{3}}{x_{3}}\]三、渲染表格
写博客的时候突然发现表格也没法渲染,所以又到网上找了些代码,然后写到 style.css
文件中:
table {
padding: 0;
width: 100%;
}
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0;
}
table tr:nth-child(2n) {
background-color: #f8f8f8;
}
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
}
table tr td {
border: 1px solid #cccccc;
text-align: left;
margin: 0;
padding: 6px 13px;
}
table tr th :first-child, table tr td :first-child {
margin-top: 0;
}
table tr th :last-child, table tr td :last-child {
margin-bottom: 0;
}
这样就能渲染表格了,还可以不是很丑:
正规方程 | 梯度下降 |
---|---|
不需要 | 需要选择学习率 $\alpha$ |
一次运算得出 | 需要多次迭代 |
特征数量 < 10000 可以接受 | 特征数量较大也能适用 |
只适用于线性回归模型 | 适用于各种模型 |
四、调整文字排版
正文部分字间距太小了,看起来很累,行间距也挺小,而且两端也没有对齐,也在 style.css
中统一调整下,添加如下代码:
.markdown-body {
/* 字间距 1 */
letter-spacing: 1px;
/* 行间距 1.6 */
line-height: 1.6;
/* 文字两端对齐 */
text-align: justify;
}
五、代码高亮
之前的代码高亮不太显眼,这次换成 sublime 风格了,就是上面的代码风格,在网上找了下配置步骤:
5.1 安装 rouge
我的博客好像默认装过了,就没执行这步:
gem install kramdown
gem install rouge
5.2 配置 _config.yml
emmm…,这一步我测试加不加都行,可能我的 jekyll 刚升级过,默认支持这些,如果你的不行的话,就加上试试:
highlighter: rouge
markdown: kramdown
kramdown:
input: GFM
syntax_highlighter: rouge
5.3 生成 rouge css 风格文件
使用下面的命令生成需要的 css 文件,其实我就执行了这一行代码,可能前面的东西我之前都装过了:
# css 主题 生成的文件名
rougify style monokai.sublime > syntax_monokai.css
支持的 css 主题可以使用 help
命令查看:
rougify help style
然后将生成好的 css 文件拷贝到博客的 style
样式目录下,再到 include/head.html
文件头部引用这个新的 css 文件就行了:
<link href='https://dlonng.com/stylesheets/syntax_monokai.css' rel='stylesheet' type='text/css' />
当然你的目录名称可能跟我的不一样,但是基本都差不多的,找到 style
目录和 head.html
文件基本就对了,现在码字看起来就舒服多了 ^_^。
本文原创首发于微信公号「登龙」,分享机器学习、算法编程、Python、机器人技术等原创文章,扫码即可关注!
DLonng at 03/29/20