[英]How to apply syntax highlighting for git-bash code in markdown(using jekyll theme) files?
[英]Syntax highlighting markdown code blocks in Jekyll (without using liquid tags)
似乎Jekyll中的語法突出顯示僅限於使用液體標簽和pygments,如下所示:
{% highlight bash %}
cd ~
{% endhighlight %}
但是我從wordpress導入了我現有的博客,它是用markdown編寫的(使用markdown代碼塊),我不想通過每個帖子來修復代碼塊。 此外,我想以純縮寫格式保留我的帖子,以防我再次需要切換博客平台。
我將我的Jekyll解析器切換到redcarpet
,希望我可以使用這個markdown語法:
```bash
cd ~
```
但它似乎沒有用。 它只是將它包裝在一個普通的code
塊中。 有任何想法嗎?
Markdown允許HTML,所以如果你不介意添加一些JS,你可以這樣做:
## A section
Here is some Ruby code.
<pre>
<code class="ruby">
puts "hello"
</code>
</pre>
然后你可以使用Highlight.js ( 這里的文檔)來添加基於該類的突出顯示。
它不是一個理想的解決方案,但它適用於任何Markdown解析器。
步驟1.安裝Redcarpet 。
gem install redcarpet
步驟2.像這樣更新_config.yaml
的構建設置。
# Build settings
#markdown: kramdown
markdown: redcarpet
在最新的jekyll支持代碼塊中,但如果使用舊版本,則需要進行破解。
下面怎么樣? 嘗試將以下文件添加為_plugin/triple-backtick.rb
module Jekyll
class MarkdownConverter
alias :old_convert :convert
def convert(content)
content.gsub!(/(?:^|\n)```(\w*)\n(.*\n)```\n/m) do |text|
cls = $1.empty? ? "prettyprint" : "prettyprint lang-#{$1}"
"<pre class=\"#{cls}\"><code>#{$2}</code></pre>"
end
old_convert(content)
end
end
end
Redcarpet默認集成到Jekyll中,代碼突出顯示將按預期運行。
對於較舊的Jekyll博客:
安裝redcarpet gem:
gem install redcarpet
更新_config.yaml
markdown: redcarpet
有關參考和更多信息,請參閱:
我已經描述了兩種替代解決方案,可以將正確格式化的代碼片段添加到您的Jekyll驅動站點。 http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html 。 他們不依賴於第三方插件並兼容免費的GitHub頁面托管。
所以我也遇到了這個問題,在敲了很多地方之后,我終於意識到在Jekyll的官方redcarpet2支持,這很簡單。 在_config.yml中寫下這個
# Conversion
markdown: redcarpet
highlighter: pygments
redcarpet:
extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]
確保你有pygments css文件,它包含在內。 這一步很重要。
您可以閱讀我的博客文章http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/了解詳情。
您還可以使用triple-tilde語法:
~~~ruby
class Base
def two
1 + 1
end
end
~~~
這是由Kramdown(傑基爾)支持的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.