2016-11-10 3 views
1

webappを作成する必要なしに、BCで液体を使用するより効率的なhreflangタグを作成する方法があるのだろうかと思いました。Liquid in Business触媒のみを使用してhreflangタグを作成する

私はこの方法で試してみましたが、何らかの理由で動作しません。

{% capture pagURL -%}{module_pageaddress}{% endcapture -%} 
{% if pagURL contains "http://us." -%} 
<link rel="alternate" href="{{ pagURL}}" hreflang="en-us" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://us', 'http://www' }}" hreflang="en-uk" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://us', 'http://au' }}" hreflang="en-au" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://us', 'http://eu' }}" hreflang="en" /> 
{% elsif pagURL contains "http://au." -%} 
<link rel="alternate" href="{{ pagURL}}" hreflang="en-au" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://au', 'http://www' }}" hreflang="en-uk" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://au', 'http://us' }}" hreflang="en-us" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://au', 'http://eu' }}" hreflang="en" /> 
{% elsif pagURL contains "http://eu." -%} 
<link rel="alternate" href="{{ pagURL}}" hreflang="en" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://eu', 'http://us' }}" hreflang="en-us" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://eu', 'http://au' }}" hreflang="en-au" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://eu', 'http://www' }}" hreflang="en-uk" /> 
{% elseif pagURL contains "http://www." -%} 
<link rel="alternate" href="{{ pagURL}}" hreflang="en-uk" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://www', 'http://us' }}" hreflang="en-us" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://www', 'http://au' }}" hreflang="en-au" /> 
<link rel="alternate" href="{{ pagURL | replace: 'http://www', 'http://eu' }}" hreflang="en" /> 
{% else -%} 
{% endif -%} 

奇妙な部分は、次の同じページで動作します。

{% capture pagURL -%}{module_pageaddress}{% endcapture -%} 
{{ pagURL}}<br> 
{{ pagURL | replace: 'http://www', 'http://us' }}<br> 
{{ pagURL | replace: 'http://www', 'http://au' }}<br> 
{{ pagURL | replace: 'http://www', 'http://eu' }}<br> 

そして、これがまた

{{ pagURL | replace: 'http://www', 'http://us' | prepend: '<link rel="alternate" href="' | append: '" hreflang="en-us" />' }} 

もちろんの良いコード短い動作します。

+0

実際には、ホームページを除くすべてのページで完全に動作します。 – Daut

+0

ただの質問: "pagURL"と "elsif"に "e"がないという理由がありますか? – Luke

+0

'' pagURL ''は変数で、 ''キャプチャ ''で宣言されています。 '' elsif ''は、液体の "else if"を書く正しい方法です。 – Daut

答えて

2

オハイオ州ダウト、あなたはこれを愛するつもりです! ; p

this issueのソリューションで作業する場合、同様の障害に遭遇しました。 (私は以下で説明する)。

私が知る限り、BCはURLと変数に関してLiquidのレンダリングに関していくつかの問題があります。私は実際にサーバー側の処理の点でLiquidの機能や内容を理解していませんが、BCのように機能するようには見えません。例えば

、私たちはあなたのコードを取ると、その最低限必要なものに戻ってそれを取り除く場合:

この動作しません<head>または<body>に挿入されたかどうか):

{% capture pagURL -%} 
     {module_pageaddress} 
    {% endcapture -%}  

    <link rel="alternate" href="{{pagURL}}" hreflang="en-us"> 

<link rel="alternate" href="{{pagURL}}" hreflang="en-us">{{pagURL}}はレンダリングされるリテラルテキストです。


{% capture pagURL -%} 
     {module_pageaddress} 
    {% endcapture -%}  

    {% assign test = '<link rel="alternate" href="' | append: {{pagURL}} | append: '" hreflang="en-us">' -%} 

    {{test}} 
は、私はに走った問題に上記の比較:

は、しかし、これは動作しません。

これは動作しません:

{module_pageaddress collection="page" template=""} 
    {module_siteUrl collection="site" template=""} 

    {% assign fullUrl = "http://{{site.siteUrl}}/" -%} 

    {% if page.pageUrl == {{fullUrl}} -%} 

     // We are on the home page 

    {% else -%} 

     // We are not on the home page 

    {% endif -%} 

ここでの問題は、変数の宣言内部{{site.siteUrl}}です。問題が何であるか分かりませんが、ちょうどジャンドルを処理できません。

しかし、これは動作しません:この作品

{module_pageaddress collection="page" template=""} 
    {module_siteUrl collection="site" template=""} 

    {% assign fullUrl = 'http://' | append: {{site.siteUrl}} | append: '/' -%} 

    {% if page.pageUrl == {{fullUrl}} -%} 

     // We are on the home page 

    {% else -%} 

     // We are not on the home page 

    {% endif -%} 

そして最終的に戻ってあなたの例になって、(皮肉にも)を:

{% capture pagURL -%} 
     {module_pageaddress} 
    {% endcapture -%} 

    <a href="{{pagURL}}">test</a> 

囲碁姿を。

BCには、ページのどこにでも含まれている頭部要素をつかんで頭に挿入する自動方法があることは間違いありません。

<link rel="alternate" href="{{pagURL}}" hreflang="en-us">のような場合に問題が発生するのだろうかと思います。それは私が遭遇した問題を説明するものではありません。

BCのLiquidの実装にはまだ大きな問題があると思います。

+0

Hey Luke、あなたが言うことはすべて真実だと私はあなたの助けに感謝しますが、私のコードはまだ30行です:D。これは素晴らしい答えですが、私の質問はそれをいかに短くするかです。 – Daut

+1

完全に - 私はそれを逃したことはありません申し訳ありませんが、私は私の答えでそれを忘れてしまった。結局のところ、私の目標はリンクタグを実際に動かす方法を見つけることになりました。この段階では、短縮しようとする前に元のセットアップ全体をどのように動作させるかを検討しています。すべてのリンクタグ(またはリンクタグの一部)を変数に変換すると、コード全体が短くなる可能性があります。 – Luke

関連する問題