7

Jekyll ブログを作成していますが、パーマリンクの問題に遭遇しました。

私のブログ投稿へのパーマリンクは、_config.yml で次のように設定されています。

permalink: /:page/:categories/:title

ブログ投稿に移動すると、次のように出力されます。

http://localhost:4000/blog/travel/netherlands-trip-prequesites/

サイトにいくつかの静的ページがあります: ブログ、旅行

変数は次のpage.urlURL を出力します。/blog/travel/netherlands-trip-prequesites

ナビゲーション バーが現在のページを強調表示するために使用するコード (「アクティブな」クラスを与える):

          {% assign url = page.url|remove:'index.html' %}
          {% for nav in site.navigation %}
            {% if nav.href == url %}
              <li class="active"><a href="{{nav.href}}">{{nav.name}}</a></li>
            {% else %}
              <li><a href="{{nav.href}}">{{nav.name}}</a></li>
            {% endif %}
          {%endfor%}

静的ページに移動するときはうまく機能しますが、ブログ投稿をクリックすると、正しい静的ページが強調表示されません。(例: URL を使用してブログ投稿/blog/smth/titleに移動すると、ナビゲーションで "ブログ" が自動的に強調表示されます。移動する/travel/smth/titleと、"旅行" が強調表示されます)

私がやりたいのは、 page.urlの出力を最初の部分にまで削除することです。たとえば、次の出力を削除したいと思います

/blog/travel/netherlands-trip-prequesites

至るまで

/blog/

なんで?したがって、それを使用して、それが属している静的ページを確認し、それに応じて強調表示できます。

4

4 に答える 4

4

私は3つのフィルターでそれを解決することができました:

{{ page.url | replace:'/',' ' | truncatewords: 1 | remove:'...' }}

page.urloutputs: /page/cat/title、次にreplaceスラッシュを削除しますpage cat titletruncatewords文字列を 1 単語に切り詰めて、次のように生成しますpage...(何らかの理由で、残りの単語の後に 3 つのドットが挿入されます)。このすべての後、これらのドットを削除する必要があったremoveのは、最終的な文字列page.

これが誰かに役立つことを願っています。

于 2013-07-10T09:57:06.407 に答える