Liquid、JavaScriptなどに関する質問
アプリケーションに liquid gem を組み込み、ユーザーが Liquid テンプレートを使えるようにしたいと考えています。
導入前の検証で Liquid の言語仕様なのか liquid gem の実装不備なのか判断がつかない振る舞いに遭遇したため質問させてください。
以下は読みましたが、角カッコを使う際の引用符および引用符の中の文字がどう解釈されるのかが分かりませんでした。
https://shopify.dev/docs/api/liquid/basics#referencing-handles
Referencing handles についてより詳細な Web ドキュメントがあれば、その URL を教えてください。
(十分な情報が手元になく、ライブラリの問題なのか、Liquid の仕様なのか、判断が難しい状況で困っています)
以下、本題です。
1. item["item['key']"] は item のキー item['key'] を指定する記述であっているか
liquid gem の最新リリース版では引用符で囲んでも変数として処理されます。
(最初に item['key'] の値を取得してしまう)
一方で、liquid gem の master ブランチでは引用符で囲んだ場合は文字列キーitem['key'] として扱われます。
Liquid の仕様として正しい振る舞いは後者であるという認識で正しいでしょうか?
2. Referencing handles においてバックスラッシュエスケープはあるのか
例えば item["keys[\"aaa\"]"] のように、引用符で囲まれた中で引用符を使うためにバックスラッシュエスケープが可能な仕様でしょうか?
3. item["var]"] は変数 item のキー var] を指定する記述ではないのか
引用符で囲んだとき、角カッコは特別扱いされるものでしょうか。
liquid gem の master ブランチを使っても、文字列キー var] ではなく変数 var として解釈されます。
これは Liquid の仕様でしょうか、liquid gem の実装不備でしょうか。
(おそらく、liquid gem の実装不備ではないかと考えていますが)
require 'liquid' puts Liquid::Template.parse('{{ item["var]"] }}', error_mode: :strict).render!( { 'var' => 'item-key', 'item' => { 'item-key' => 'item-value', }, }, { strict_variables: true }, ) __END__ item-value
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 7, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 30, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024