Post

Blog Management Tips - 1

Blog Management Tips - 1

markdown lexer

目前markdown的语法高亮使用的是jekyll自带的Rouge. 可以通过下列命令查看支持什么语言:

1
bundle exec ruby -e 'require "rouge"; Rouge::Lexer.all.sort_by(&:tag).each { |l| puts ([l.tag] + l.aliases).compact.uniq.join(",") }'

另外,可以在 _plugin目录下增加语法别名文件,下面就是把asm等内容都用nasm的解析规则来渲染高亮.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# rouge-lexer-aliases.rb

# frozen_string_literal: true 
require 'rouge'

module Rouge
  module Lexers
    unless ::Rouge::Lexer.find('asm')
      class AsmAlias < Nasm
        title 'Assembly'
        desc 'Alias for NASM-style assembly'
        tag 'asm'
        aliases 'assembly', 'x86asm', 'x86_64asm'
      end
    end

    unless ::Rouge::Lexer.find('nu')
      class NushellAlias < Shell
        title 'Nushell'
        desc 'Alias that reuses shell highlighting for Nushell code fences'
        tag 'nu'
        aliases 'nushell'
      end
    end
  end
end
This post is licensed under CC BY 4.0 by the author.