新年の最初のショットは、リラックスして楽しく、何年も前に書く予定だったいくつかの記事を完成させるためです。 Jekyll でコードをフォーマットするにはさまざまな方法があります。いくつかの実装方法を示します。
Jekyll はテンプレートやデータを HTML にコンパイルするツールとも言えますが、Github を使用するとサービスとも言えます (Jekyll サービスが構築され、コンパイルすることができます)。リアルタイムで)、半動的 Web ページを作成できます。これは、独自のサーバーを持っていない友人にとっては良い選択です。
一般的に、Github+Jekyll はブログやいくつかの説明的な Web ページを構築するために使用されます。
以前、WIN システムでのセットアップに関する記事を公開しました: [環境セットアップ] Windows での Ruby と Jekyll のインストール
Mac の場合と同様に、コマンドラインを使用します。
公式説明
{% highlight ruby %}def show @widget = Widget(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @widget } endend{% endhighlight %}
もちろん、コード強調表示プラグインが異なれば、必要なコンパイル コードも異なります。
実際、強調表示プラグインは HTML 内の特定のノードを検索し、特定の CSS を特定のノードに割り当てる JS であり、CSS の結果はコードに色を付けることなので、純粋にコードの強調表示とは何の関係もありません。 Jekyll さん、ここで話したいのは Jekyll+MD ファイル+CODE の方法です。
Pygments
インストール後、次のコマンドを実行します:
gem install pygments.rb
インストール後、Jekyll プロジェクトの
**_config.yml** ファイルを変更する必要があり、その中のハイライトを次のように変更します: markdown: kramdownhighlighter: pygments
コード
<head> <title>pygments</title> <link media="all" rel="stylesheet" type="text/css" href="../assets/pygments/pygments.css" /></head><body> {% highlight ruby %} def show @widget = Widget(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @widget } end end {% endhighlight %}</body>
実際には、これを取得する方法はたくさんあります:
最初のhttp://pygments.org/docs/styles/
Rouge
オープンソースプロジェクトのアドレス: https://github.com/jneen/rouge
まず Jekyll プロジェクトの
**_config.yml** ファイルを変更し、その中のハイライトを次のように変更します: markdown: kramdownhighlighter: rouge
コード
<head> <title>Rouge</title> <link media="all" rel="stylesheet" type="text/css" href="../assets/rouge/rouge.css" /> <style> pre{ background: rgba(0, 0, 0, 0.95); } </style></head><body> {% highlight ruby %} def show @widget = Widget(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @widget } end end {% endhighlight %}</body>
ここでは
rouge.css ファイルも必要です。このとき、コマンド ラインを使用して取得します。 rougify style monokai.sublime > rouge.css
Show
Highlight JS
Highlight は Rouge および Pygments と完全に互換性があるため、設定を変更する必要はありません。CSS および JS 参照を変更するだけで済みます。
ダウンロード アドレス: https://highlightjs.org/
コード
<head> <title>Highlight.js</title> <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.1.0/styles/default.min.css"> <script src="http://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.1.0/highlight.min.js"></script> <script type="text/javascript"> hljs.initHighlightingOnLoad(); </script></head><body> {% highlight ruby %} def show @widget = Widget(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @widget } end end {% endhighlight %}</body>
<pre class="brush:php;toolbar:false"><code class="html">...</code>
Show
多くのスタイルがあり、どれでも選択できます。
SyntaxHighlighter
公式アドレス: https://github.com/syntaxhighlighter/syntaxhighlighter
まずダウンロードし、次のコマンドを使用して自分でコンパイルします:
https://github.com/syntaxhighlighter/syntaxhighlighter/releases
https:/ /github.com/syntaxhighlighter/syntaxhighlighter/wiki/Building
コンパイル後は、もちろん、コマンドを使用していくつかの異なるスタイルから選択できます。コード
<head> <title>SyntaxHighlighter</title> <link media="all" rel="stylesheet" type="text/css" href="../assets/syntax/theme.css" /> <script type="text/javascript" src="../assets/syntax/syntaxhighlighter.js"></script></head><body> <pre class="brush: ruby"> def show @widget = Widget(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @widget } end end
prismjs 算是比较优良的作品了,生成代码不多余,颜色适用于大部分网站;主题有几种;支持的语言挺多;不过细节部分没有完善有些情况下样式显示不是很好,像XML代码不支持 xx.xx.xxx 的样式;目前谷歌的使用挺多。
主页与下载地址:http://prismjs.com/
Jekyll 并不能直接支持他,需要下载 prism.rb 插件来使用。下载后拷贝到项目“_plugins“ 文件夹中。
prismjs 中并不能直接使用 {% highlight %} 命令,而需要使用 {% prism %} 命令。
<head> <title>Prismjs</title> <link media="all" rel="stylesheet" type="text/css" href="../assets/prism/prism.css" /></head><body> {% prism ruby %} def show @widget = Widget(params[:id]) respond_to do |format| format.html # show.html.erb format.json { render json: @widget } end end {% endprism %} <script src="../assets/prism/prism.js" ></script></body>
目前这几种算是比较优秀的代码高亮了;各位看官就按照自己喜好使用就好。
全部的代码和文件都提交到了GITHUB上了,文件地址:
https://github.com/qiujuer/BeFoot/tree/master/blog/sample/Highlight
========================================================