语法高亮在 Jekyll 的 MD 文件中不起作用?

Nor*_*han 2 jekyll

使用 kramdown 解析器和 rouge gem 的语法高亮器似乎在 Jekyll 中不起作用。报价也不会突出显示和格式化。

降价文件:

```javascript
function order(words){
  var array = words.split(' ');
  var result = array.slice();

  for (word in array) {
    for (var i = 0; i < array[word].length; i++) {
       if (!isNaN(array[word][i])) {
         result[array[word][i] - 1] = array[word]
       }
     }
   }return result.join(' ');  
}
```
Run Code Online (Sandbox Code Playgroud)

下面列出了我的配置文件。

配置文件:

# Build settings
markdown: kramdown
highlighter: rouge
theme: minima
gems:
  - jekyll-feed

include: ['_pages']
exclude:
  - Gemfile
  - Gemfile.lock
  - vendor
#sass
sass:
  style: compressed
Run Code Online (Sandbox Code Playgroud)

yai*_*tou 5

您的 Markdown 文件语法很好,您不需要更改它(请查看下面的评论)

要使代码突出显示工作,您需要检查两件事:

  1. 荧光笔降价处理器中的配置是否正确_config.yml
  2. 生成的 html 文件可以访问 CSS 高亮语法样式规则

1.荧光笔和markdown处理器配置

从 jekyll 3.0 开始,Kramdown 作为 Markdown 引擎,Rouge 作为语法高亮器。是默认的 jekyll 设置,也是github pages支持的唯一设置。

因此,您可以删除它们的相关设置,或将其显式设置 _config.yml如下:

# Conversion
markdown:    kramdown
highlighter: rouge

# Markdown Processors
kramdown:
  input: GFM
  auto_ids: true
  syntax_highlighter: rouge
Run Code Online (Sandbox Code Playgroud)

2.代码高亮样式:

生成的 html 文件应该可以访问CSS 代码突出显示规则,这取决于您正在使用的主题。

一种方法是在主 css 文件中定义代码高亮样式规则,然后将该文件包含在默认布局的 html 头中。

定义 CSS 代码高亮规则

确保主 CSS 文件(位于/assets/css,通常命名为main.scssstyle.scss)定义了一些代码高亮 CSS 规则,或者在那里明确定义,或者通过导入包含 CSS 规则的文件(scss、sass 或更少)。

为了快速检查,我在这个repo 中放置了一些 scss 代码高亮主题

  • 克隆sass-code-highlight repo
  • sass-code-highlight文件夹中的SASS目录下(默认为:_sass
  • 将代码突出显示导入主 css 文件

assets/css/main.scss添加以下内容:

    @import "sass-code-highlight/monokai"; // 'monokai' as example
Run Code Online (Sandbox Code Playgroud)

在 HTML HEAD 中包含 Main CSS

您需要在默认布局中使用 sinppet ( _layouts/default.html)

<head>
  <!-- head stuff-->

  <!-- CSS -->
  <link rel="stylesheet" type="text/css" href="{{site.baseurl}}/assets/css/main.css"> <!-- IMPORTANT -->
</head>
Run Code Online (Sandbox Code Playgroud)

直接或通过将head.html位于_includes目录中的文件包含在其中,如下所示:

<!DOCTYPE html>
<html lang="en">
  {% include head.html %} <!--  <- include the head -->
  <body>
  {{ content }}
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

注意:确保css path有效。