2013-07-19 8 views
16

私のブログではGitHub Pagesを使用していますが、Jekyllに問題があります。私のpost.htmlは次のようなブロックを持っています:ジキルの空白行を抑制する方法は?

{% for testpost in site.posts %} 
{%   four     %} 
{%   lines of    %} 
{%   processing    %} 
{%   goes here    %} 
{% endfor      %} 

中間の部分は関係ありません。重要な部分は、{% %}マークアップの外側にある行の終わりであり、したがってhtmlにレンダリングされます。これはループしているので、HTMLページの途中に約1000個の空白行を入れています。表示には影響しませんが、View/Sourceは面倒です。

余分な空白行を避ける方法はありますか?

答えて

4

空白を取り除くJekyll pluginがあります。

AucorによるJekyllプラグイン:望ましくない改行/空白を取り除き、重み属性でページをソートします。

Github repositoryから直接入手できます。したがって、基本的にコードは{% strip %}{% endstrip %}でラップします。これがあなたのニーズに合っていなくても、簡単にルビスクリプトを変更することができます。例えば

{% strip %} 
    {% for testpost in site.posts %} 
    {%   four     %} 
    {%   lines of    %} 
    {%   processing    %} 
    {%   goes here    %} 
    {% endfor      %} 
{% endstrip %} 

しかし、あなたはGitHubのページサーバ上でそれらを実行することはできません、ジキルプラグインの性質を覚えていてください。 Jekyll Doccumentationから

引用:

GitHubのページがジキルによって供給され、しかし、すべてのページのサイトはセキュリティ上の理由から、カスタムプラグインを無効にする--safeオプションを使用して生成されます。残念ながら、これは、GitHub Pagesにデプロイする場合、プラグインが動作しないことを意味します。

GitHubページを使用してサイトを公開することはできますが、サイトをローカルに変換し、生成された静的ファイルをJigyllソースファイルではなくGitHubリポジトリにプッシュする必要があります。

12

素敵な回避策は、私がhttps://github.com/plusjade/jekyll-bootstrap/blob/master/_includes/JB/setupで見つけた、そしてどのはgithubのページと互換性があること、あります。

ループをキャプチャ文に囲み、結果のvarにnilを代入するだけです。およそ

{{ page.content | escape | strip_newlines }} 
+2

* NB * - このアプローチは**液体**にのみ適用されます。これを行うと、キャプチャタグ間に生成された** html **コンテンツはすべて省略されます。 –

+0

これはかなり賢いです!どうもありがとう!! –

+0

これはどのように動作するのか分かりません。誰でも説明できますか? –

7

HTMLを圧縮するジキールレイアウト。概要:

  • 不要な空白を削除します。
  • はオプションの終了タグを削除します。
  • はオプションの開始タグを削除します。
  • はコメントを削除します。
  • は、空白文字を<pre>に保存します。
  • GitHub Pages compatible;
  • は開発環境を無視します。
  • 構成可能な影響を受ける要素。
  • プロファイルモード。
  • が自動的にテストされます。

http://jch.penibelst.de/

ます場合 - 何らかの理由では - ここにこれを使用したくないいくつかの回避策を説明素晴らしい記事、次のとおりです。Liquid v4以来 Compressing Liquid generated code - sylvain durand

+0

どうすれば 'header.html'などのインクルードでこれを行うことができますか? –

+4

「%キャプチャヘッダ%」{%include header.html%} {%endcapture%} {{ヘッダ| strip_newlines}} ' –

2

が実際にどのプラグインなしで動作し、この問題に対する新しい解決策があるどのように

{% capture cache %} 
    {% for p in site.posts %} 
     do stuff here 
    {% endfor %} 
{% endcapture %}{% assign cache = nil %} 
関連する問題