标签: shopify

在visual studio代码中格式化Liquid(Shopify)代码

如何在Visual Studio中格式化.liquid(Shopify liquid)代码.通过设置语言作为HTML我可以做到但同时,我不能使用Shopify自动完成.当我切换到liquid.html然后我可以使用自动完成但我无法格式化代码.有没有什么办法可以在Visual Studio中使用另一种语言和格式代码作为另一种语言?

code-formatting liquid visual-studio shopify

10
推荐指数
1
解决办法
913
查看次数

Print_r等效于Liquid

在Liquid中,如何找出集合包含的所有值?有print_r功能还是类似?

下面的示例将返回项目标题,但我想知道项目还包含哪些其他变量.

item.title
Run Code Online (Sandbox Code Playgroud)

谢谢.

ruby-on-rails liquid shopify

9
推荐指数
1
解决办法
5878
查看次数

getaddrinfo:提供的nodename或servname,或者未知(SocketError)

我正在开发Shopify主题,我正在使用https://github.com/Shopify/shopify_theme将我的文件更新为Shopify.不幸的是,我无法让它工作......当我尝试上传/更新文件时,我得到一个错误,如...

.....ruby/1.9.1/net/http.rb:762:in `initialize': getaddrinfo: nodename nor servname provided, or not known (SocketError)
Run Code Online (Sandbox Code Playgroud)

我在尝试安装gem时已经看到了这个错误,显然这是MacOS的"典型"问题.我通过将路由器DNS更改为Google的路由器来解决问题(mac dns看起来行为不端).

不幸的是,在尝试使用我安装的gem(Shopify_theme)时会出现同样的问题.我对这个gem/rails世界很新,所以我真的不知道如何解决这个问题.

有什么好主意吗?

编辑: 我的坏,我实际上找到了解决方案.对不起这篇文章,至少我会解释我是如何修复它的.

我查看了这个shopify_theme gem的源文件,注意它在商店url之前加上"http://"(用"theme configure api_key password store_url"定义).因为我首先使用http://定义了store_url,所以会出现此错误.如果您收到相同的错误,请尝试编辑config.yml文件并删除"http://".

gem themes shopify getaddrinfo

9
推荐指数
1
解决办法
8380
查看次数

Shopify应用程序可以在商店主题内自动注入液体代码吗?

我正在构建一个Shopify应用程序,我有兴趣自动将液体内容添加到商店的主题中.

inject liquid shopify

9
推荐指数
1
解决办法
2726
查看次数

Shopify liquid:我如何有条件地在Shopify液体中包含片段?

我想在模板中包含一个代码段,但仅在代码段文件存在时才包含.有什么办法可以吗?

现在我只是使用:

{% include 'snippetName' %}
Run Code Online (Sandbox Code Playgroud)

但这会引发错误:

Liquid error: Could not find asset snippets/snippetName.liquid
Run Code Online (Sandbox Code Playgroud)

我需要这样一个功能的原因是因为我有一个后台进程,稍后会添加该代码段.

api include liquid code-snippets shopify

9
推荐指数
1
解决办法
5530
查看次数

在Shopify液体模板中使用vue.js

这应该是简单的,但尽管搜索我无法找到任何解决方案.如何在液体文件中使用vue模板标签?由于Vue和liquid都使用相同的花括号,我无法渲染任何视图数据:

<img src="{{ product.featured_image }}" />
Run Code Online (Sandbox Code Playgroud)

结果是:

<img src>
Run Code Online (Sandbox Code Playgroud)

我的父视图组件中有36个产品.

当我尝试使用自定义分隔符时:

new Vue({
  delimiters: ['@{{', '}}'],
Run Code Online (Sandbox Code Playgroud)

它不会用Vue解析:

  获取https://inkkas.com/collections/@ 404(未找到)

更新:我能够使用v-bind访问Vue数据:但我仍然需要能够使用分隔符.

liquid shopify vue.js

9
推荐指数
1
解决办法
3229
查看次数

Shopify如何使他们的液体模板安全(避免使用XSS)?

如果以不安全的方式使用Shopify,Shopify会自动转义值,但我没有在液体宝石中找到此功能.

例:

模板: <div data="{{ user_name }}">{{ user_name }}</div>

用户名: '" onclick="alert(\'XSS\')'

Shopify将其呈现为:

<div data="&quot; onclick=&quot;alert('XSS')&quot;">" onclick="alert('XSS')"</div>
Run Code Online (Sandbox Code Playgroud)

液体宝石呈现为:

<div data="" onclick="alert('XSS')">" onclick="alert('XSS')"</div>
Run Code Online (Sandbox Code Playgroud)

Ruby代码:

markup = '<div data="{{ user_name }}">{{ user_name }}</div>'
template = Liquid::Template.parse(markup)

template.render!('user_name' => '" onclick="alert(\'XSS\')')   
Run Code Online (Sandbox Code Playgroud)

Shopify如何做到这一点?

我知道escape液体中有过滤器,或者我可以在后端逃避值.但Shopify的解决方案看起来更安全:如果忘记对值进行编码并且代码看起来更清晰,则不会出现XSS漏洞:{{ value }}而不是{{ value | encode }}

谢谢

xss ruby-on-rails liquid shopify

9
推荐指数
1
解决办法
415
查看次数

使用 JavaScript 导入节点模块

对于这个简单的问题,我深表歉意,但我对 Web 开发和 JavaScript 还很陌生。

我想导入一个我使用 npm 安装的包,特别是 shopify-buy 按照这里的指南:https ://shopify.github.io/js-buy-sdk/

该包在我的 node_modules 文件夹中,我正在尝试使用 import Client from 'shopify-buy';

当我尝试在 Chrome 中加载所有内容时,导入行出现错误

Uncaught SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)

Firefox 错误有点不同: import declarations may only appear at top level

我究竟做错了什么?

编辑:

导入行是我的 JavaScript 文件中的第一行。我的 HTML 文件正确链接到 JS 文件(我认为)。

shopify.js

// Functions for SHOPIFY
import Client from 'shopify-buy';

const client = Client.buildClient({
    domain: 'xxxxx.myshopify.com',
    storefrontAccessToken: 'xxxxx'
});
Run Code Online (Sandbox Code Playgroud)

索引.html

<script src="javascript/shopify.js"></script>
Run Code Online (Sandbox Code Playgroud)

javascript node.js shopify npm

9
推荐指数
1
解决办法
2万
查看次数

Shopify - 通过多个变体ID检索多个变体细节

有没有办法在单个shopify调用中使用多个变体ID获取多个变体详细信息.实际上,我想获得使用shopify电话订购的所有产品变型的价格.

我知道使用id获取单个变体细节的方法

GET /admin/variants/#{variant_id}.json

/admin/variants/808950810.json

php variant shopify

9
推荐指数
1
解决办法
72
查看次数

是否可以使用具有嵌套属性的液体“where”数组过滤器?

我正在尝试使用块设置来过滤块数组。我可以使用以下语法按“类型”等属性进行过滤:

\n\n

{% assign example = section.blocks | where: "type", "photos" %}

\n\n

我需要做的是按块设置进行过滤,如下所示:

\n\n

{% assign example = section.blocks | where: settings.collection, collection.handle %}

\n\n

上面的例子默默地失败了。

\n\n

注意:目前我正在使用带有 for 循环和 if 语句的捕获来完成我需要的操作,然后使用 split \xe2\x80\x94 进行分配,但代码非常臃肿,并且执行所有这些操作都是为了一个简单的过滤操作看起来很荒谬。我发现自己总是感觉自己在与液体战斗,我想我希望它可能比我想象的更优雅一点。

\n

liquid shopify shopify-template

9
推荐指数
1
解决办法
8474
查看次数