Jekyll minima主题站点代码块无背景未正常渲染问题排查
解决方案
问题来自两方面:一是你从RStudio导出的md文件存在嵌套代码块格式问题,导致Jekyll的Markdown解析器无法正确识别代码块标签;二是minima主题默认代码块样式非常精简,没有配置高亮背景和边框,达不到Stack Overflow的显示效果。按以下步骤操作即可修复:
- 修正Markdown文件格式
你当前贴出的源码存在外层嵌套内层代码块的问题,Kramdown解析时会把代码块识别成普通缩进文本,删掉所有多余的外层包裹,让每个代码块独立存在即可,正确格式示例:
## View datasets Next, I viewed the head of these data sets ```r glimpse(sleep_data) ``` ``` ## Rows: 419 ## Columns: 10 ## $ Id <dbl> 1503960366, 1503960366, 1503960366, 1503960366, 150… ## $ SleepDay <chr> "Tuesday, April 12, 2016", "Wednesday, April 13, 20… ## $ TotalSleepRecords <int> 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … ## $ TotalMinutesAsleep <dbl> 327, 384, 412, 340, 700, 304, 360, 325, 361, 430, 2… ## $ TotalTimeInBed <dbl> 346, 407, 442, 367, 712, 320, 377, 364, 384, 449, 3… ## $ Total.hours.asleep <int> 5, 6, 7, 6, 12, 5, 6, 5, 6, 7, 5, 4, 6, 6, 7, 6, 5,… ## $ Total.hours.in.bed <int> 6, 7, 7, 6, 12, 5, 6, 6, 6, 7, 5, 5, 7, 6, 7, 7, 5,… ## $ subtraction <int> 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, … ## $ differenceminutes <int> 19, 23, 30, 27, 12, 16, 17, 39, 23, 19, 46, 29, 27,… ## $ X <chr> "", "", "", "", "", "", "", "", "", "", "", "", "",… ``` ```r glimpse(weightLog_data) ``` ``` ## Rows: 67 ## Columns: 8 ## $ Id <dbl> 1503960366, 1503960366, 1927972279, 2873212765, 2873212… ## $ Date <chr> "5/2/2016 23:59", "5/3/2016 23:59", "4/13/2016 1:08", "… ## $ WeightKg <dbl> 52.6, 52.6, 133.5, 56.7, 57.3, 72.4, 72.3, 69.7, 70.3, … ## $ WeightPounds <dbl> 115.9631, 115.9631, 294.3171, 125.0021, 126.3249, 159.6… ## $ Fat <int> 22, NA, NA, NA, NA, 25, NA, NA, NA, NA, NA, NA, NA, NA,… ## $ BMI <dbl> 22.65, 22.65, 47.54, 21.45, 21.69, 27.45, 27.38, 27.25,… ## $ IsManualReport <lgl> TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, … ## $ LogId <dbl> 1.46e+12, 1.46e+12, 1.46e+12, 1.46e+12, 1.46e+12, 1.46e… ```
- 修正Jekyll配置
打开站点根目录的_config.yml,确认以下配置项存在且正确,配置完成后必须重启本地Jekyll服务(配置文件改动不支持热重载):markdown: kramdown highlighter: rouge kramdown: input: GFM syntax_highlighter: rouge - 添加Stack Overflow风格代码块样式
在站点assets/css/目录下新建style.scss文件,写入以下内容覆盖默认样式:--- --- @import "{{ site.theme }}"; /* 行内代码样式 */ code { background: #f0f0f0; border-radius: 3px; padding: 2px 5px; font-family: Consolas, Monaco, "Courier New", monospace; font-size: 90%; } /* 代码块容器样式,对齐SO风格 */ pre { background: #f6f6f6; border: 1px solid #e1e4e8; border-radius: 3px; padding: 13px 16px; overflow-x: auto; line-height: 1.45; } pre code { background: transparent; padding: 0; } /* R输出块做浅色区分 */ pre:not([class]) { background: #f8f8f8; color: #24292f; } - 可选:配置语法高亮配色
如果需要代码关键字、变量名也和SO一样有配色区分,在站点根目录执行命令生成SO风格的高亮CSS:rougify style stackoverflow > assets/css/syntax.css
再在刚才创建的style.scss末尾加一行导入即可:@import "syntax";
问题页面参考截图
操作完成后刷新页面,就能看到带浅灰背景、细边框、支持横向滚动的代码块效果,和Stack Overflow显示效果一致。
内容的提问来源于stack exchange,提问作者Stackstudent_09
相关产品推荐
相关产品推荐

