首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >标记的HTML脚本正在创建额外的空间

标记的HTML脚本正在创建额外的空间
EN

Stack Overflow用户
提问于 2021-01-13 01:20:26
回答 1查看 34关注 0票数 2

我一直在尝试在Shopify上为我的所有产品实现一个自动标签。它的工作原理是,创建的标签从产品设计中提取信息。如果说明书上写着“预定前2-3周内装运”。或“预购船2021年1月”它将拉动在“船舶”或“船只”一词之后出现的任何东西。因此,标签显示为:

weeks

  • preorder**January 2021

**2-3

标签用于在整个站点插入估计的运送时间。

现在的问题是,有些标签在"preorder**“之后有一个空格,我们需要确保没有空格。对如何修复有什么想法吗?它所基于的主体HTML是如果它包含“预购。装运”。以下是我们的当前代码:

代码语言:javascript
运行
复制
   {% assign body = product.body_html | strip_html | newline_to_br %}
   {% assign keywords = "Pre-order. Ships" %}

  b{% assign tags = '' %}
 {% if body contains keywords %}
    {% assign lines = body | split: "<br />" %}
        {% for line in lines %}
       {% if line contains keywords %}
           {% assign tokens = line | split: keywords %}
        {% if tokens.size == 2 %}
            {% assign inner_tokens = tokens[1] | split: "." %}
            {% if inner_tokens.size >= 1 %}
                {% assign value = inner_tokens[0] | replace: "in", "" | escape_once | replace: "&nbsp;", "" %}
                {% assign tag = "preorder**" | append:value | replace_first: " ", "" %}
                {% assign tags = tags | append: tag | append: ',' %}
            {% endif %}
        {% endif %}
    {% endif %}
{% endfor %}
 {% endif %}
 {{ tags }}
EN

回答 1

Stack Overflow用户

发布于 2021-01-13 01:45:05

问题

这个问题之所以发生,是因为“船”比“船”多一个空间。

解决方案

您需要删除"in“之后的空格。

您可以通过修改replace操作符来轻松地完成这一任务。

代码

replace: "in", ""变成replace: "in ", "" (注意空格)。

您的代码变成:

代码语言:javascript
运行
复制
   {% assign body = product.body_html | strip_html | newline_to_br %}
   {% assign keywords = "Pre-order. Ships" %}

  b{% assign tags = '' %}
 {% if body contains keywords %}
    {% assign lines = body | split: "<br />" %}
        {% for line in lines %}
       {% if line contains keywords %}
           {% assign tokens = line | split: keywords %}
        {% if tokens.size == 2 %}
            {% assign inner_tokens = tokens[1] | split: "." %}
            {% if inner_tokens.size >= 1 %}
                {% assign value = inner_tokens[0] | replace: "in ", "" | escape_once | replace: "&nbsp;", "" %}
                {% assign tag = "preorder**" | append:value | replace_first: " ", "" %}
                {% assign tags = tags | append: tag | append: ',' %}
            {% endif %}
        {% endif %}
    {% endif %}
{% endfor %}
 {% endif %}
 {{ tags }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65694400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档