This plugin will help you include the famous prismjs
code highlighter in your Jekyll app, using nothing but
liquid tags. Quick and simple solution.
First, include prism.js in your header.
Then save the code below and save it as prismjs.rb
in the folder _plugins
in your Jekyll root directory.
Quick example:
{{ "{% prism cpp " }}%}
int main() {}
{{ "{% endprism " }}%}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| # Purpose: Jekyll Plugin to prepare markdown for syntax highlighting with prism.js
# License: MIT
# Note: This script transforms code to escaped html entities before it puts it back, so Kramdown does not get confused.
# Author: Domeniko Gentner <contact@tuxstash.de>
require 'cgi'
module Jekyll
module Tags
class Prism < Liquid::Block
def initialize(tag_name, text, tokens)
@arg = text.strip
super
end
def render(context)
output = super(context)
output = CGI.escapeHTML(output);
"<pre class=\"language-#{@arg} line-numbers card-panel z-depth-3 \"><code>#{output}</code></pre>"
end
end
end
end
Liquid::Template.register_tag('prism', Jekyll::Tags::Prism)
|
comments
Characters: 0/1000
Come join the discussion and write something nice. You will have to confirm your comment by mail, so make sure it is legit and not a throwaway. Only the name part of it will be displayed, so don't worry about spam. If it does not show up after confirming it, it may be considered spam, but I curate them manually, so don't worry. Please read the privacy statement for more.