2017-06-22 20 views
0

Grav CMSを使用して、twigテンプレートからプロトコル(http:またはhttps :)なしでURLを出力する必要があります。Grav CMS用のTwigテンプレートでURLからプロトコルをトリミングする方法

これを行うにはどのような方法が最適ですか?

Twigは、正規表現を使用するMATCH function for comparisonsと、正規表現を使用しないREPLACE functionを提供します。

したがって、次のような文の場合、私は複雑をやって立ち往生していそうです:

`

{% if url starts with 'https:' %} 
     {{ url|replace('https:') }} 
    {% else %} 

     {% if url starts with 'http:' %} 
      {{ url|replace('http:') }} 
     {% else %} 
      {{ url }} 
     {% endif %} 

`

はこの偉業を行うためのより良い方法はありますか?このコードをマクロに入れると、マクロをどのように利用できますか?ここでは、完全なマクロです:

`

{% macro fixUrl(url) %} 
    {% if url %} 
     {% if url starts with 'https:' %} 
      {{ url|replace('https:') }} 
     {% else %} 

      {% if url starts with 'http:' %} 
       {{ url|replace('http:') }} 
      {% else %} 
       {{ url }} 
      {% endif %} 
     {% endif %} 
    {% endif %} 

{% endmacro %} 

`

は、そして私のようなマクロを呼び出す:私はこのマクロを呼び出すときに、私は空の文字列を取得しています<meta property="og:url" content="{{ self.fixUrl(page.url()) }}" />

答えて

1

Grav CMSがregex_replace機能を提供することを発見しました。

私の解決策は次のとおりです。 <meta property="og:url" content="{{ page.url()|regex_replace('/^https?:/', '') }}" />

関連する問題