@ callimacus/thamyr- 液体
无头 Callimacus 为 Shopify Liquid主题运行时间(在线商店2.0).
运行时间拥有运输,圆寿命周期,区块调度,错误控制, 商业管道(货币、URL、本地的AJAX推车)。 主题拥有 每一个元素,每个类名,所有的CSS, 和所有的客户化副本。 这个 运行时间没有产生自己的DOM 和船只没有CSS.
主题使用( 无构建步骤)
装入自定义的浏览器捆绑——它自动挂载每个
[data-callimacus] 元素和重装 shopify:section:load数字 :
<script src="https://cdn.jsdelivr.net/npm/@callimacus/thamyr-liquid@4/dist/browser/callimacus-runtime.min.js" defer></script>
飘来飘去 @4 接取次要并自动补丁释放. 如果你喜欢
完整度超过自动更新, 刻出精确的版本并添加
分资源
(单位:千美元)integrity="sha384-…" crossorigin="anonymous") - jsdelivr 显示散列在
文件列表 。 或者全部跳过 CDN: 将文件下载到您的主题
作为 assets/callimacus-runtime.min.js 装入
{{ 'callimacus-runtime.min.js' | asset_url }} ——第一方托管,无
外部脚本( 主题存储列表主题需要) .
从自己的文件中注册您的渲染器—— 每个块类型一个条目 :
window.callimacusRenderers = window.callimacusRenderers || [];
window.callimacusRenderers.push({
type: 'custom:giftGuide',
render(block, ctx) {
const picks = ctx.picks(block);
if (!picks.length) return null;
const grid = document.createElement('ul');
grid.className = 'gift-guide__grid'; // your class, your CSS
for (const item of picks) grid.append(card(item, ctx));
return grid;
},
});
完整的走行部——上标、区段设置、制造器合同、,
编辑 ctx 帮助者——住在
(原始内容存档于2018-09-21). docs.callimacus.ai。 。 。 .
无消息的回合
店前寄来的不是每封都是打字的问题 山上的把柄
要素(element.callimacus)搭载了TypeScript SDK的来电,使用相同的
名称和选项,由同样的帮助者构建:
ask(text)- 一个打字的问题.sendInteraction(id, {value, payload, block})- 一种互动 在其配置文档中宣布的项目:点击、查看产品.openLanding(value?)——项目自定义登陆:一回合无消息.
山提供页面语言和访客故事;通过 language
或者说 storyId 为了一个电话而推翻他们 每一回合都一样
data-callimacus-state,同样的事件,一个接一个.
片段以一发开口
<div data-callimacus data-client-id="…"
data-interaction="productDetail"
data-interaction-value="{{ product.title | escape }}"
data-interaction-payload='{{ product_payload | json | escape }}'>
data-interaction (可选) data-interaction-value 和一个 JSON 对象在
data-interaction-payload发送已宣布的交互; data-landing 打开
自定义着陆( e)data-landing="pdp" 发送 pdp 作为其价值); data-prompt
问个问题。 数个名字,第一个顺序胜出,警告.
建议
element.callimacus.suggest(prefix) 解决 {suggestions}页:1
项目在空或短前缀上的启动问题,自动完成
访问者类型 — TypeScript SDK's suggest。它不会打开圆形,也不会改变
状态,所以它可以运行在一个旁;在上架还没有时它首先连接.
无连接, 超时( N)timeoutMs, 默认为 4 s) 或错误 全部解析
没有建议。 只有在项目转弯时才回来
打开(Thamyr QQ配置 QQ建议).
input.addEventListener('input', async () => {
const {suggestions} = await root.callimacus.suggest(input.value);
renderChips(suggestions); // yours
});
没有回合的目录查看
有些答案是简单的目录检查,而不是回合: 没什么可编曲的,
没什么可以生成的. ctx.similar(item, {topK}) 财务报告和审定财务报表 ctx.related(item) - 那个
类型脚本 SDK skesis.similar 编号 : skesis.related - 阅读目录
直接在几百毫秒内 手件变回形状
ctx.picks,所以同一个出牌器绘制它们:
const others = await ctx.similar(item, {topK: 12});
const sameModel = others.filter(other => other.fields.title === item.fields.title);
ctx.related(item) 解决 {related, siblingColors, usedFallback}数字 :
项目中提及的内容,提及的内容,以及当
目录将它们链接起来。 两者都取出一个物品或其编号,并读取目录
将店面的路由名称本地化(/it-it/ 读取 it-IT, (中文(简体) ), /it/ 读取
it,页根 data-language; 通过 locale 来选择另一个.
他们否认真理 CallimacusError —— 说 lookup_unreachable 请求时
失败或时间已耗尽( e)timeoutMs(默认为10 s), server_<status>
当Callimacus拒绝的时候.
屏幕上的内容
data-ui-observer 在挂载元素上,每一回合都随身携带
访问者可以看到——所看到的目录项目和块——认知
流动和屏幕上的条件读取。 默认关闭.
标出每个产品元素的全ID, data-product-id="${item.id}"
(单位:千美元)shopify:product:gid://…,从没有手柄或数字 shopify id 。 虽然
中,运行时标记每个块的根元素
data-block-id ——块自有的id——除非出厂者设置了出厂.
观察者阅读 [data-product-id] 在页面上。 如果主题本身
标记已经使用该属性, 给观察者一个自己的选择 :
data-ui-observer="[data-callimacus-product]"。 。 。 .
一会各页
每个 ask {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}所以后续行动是..
在他们身后交谈 不过每一次导航时 都会重新装入一个存储头条
一个新山打开一个新故事——除非它所保存的主题名称:
data-story-id在挂载元素上是它的第一回合继续. 空谓无相. 服务器已不存在的故事被新故事所取代.callimacus:story(嘘声,细节){storyId}当服务器时起火 打开一个故事.element.callimacus.storyId读取当前文本.
Liquid 无法读取浏览器存储, 所以有几行内含脚本 结束了。 在挂载元素后和被推迟的运行时间前放置:
<script>
(function () {
var key = 'callimacus:story';
var kept;
try { kept = sessionStorage.getItem(key); } catch (error) {}
document.querySelectorAll('[data-callimacus]').forEach(function (element) {
if (kept && !element.dataset.storyId) element.dataset.storyId = kept;
});
document.addEventListener('callimacus:story', function (event) {
try { sessionStorage.setItem(key, event.detail.storyId); } catch (error) {}
});
})();
</script>
重新开始——"新对话"按钮——打电话
element.callimacus.resetStory() 并忘记 保存的id
(单位:千美元)sessionStorage.removeItem('callimacus:story'):下一轮打开了一个新的
报道并宣布 旧事如出一辙.
sessionStorage 将对话范围放大到标签; localStorage 将保留
它通过访问。 两者均可投掷(私人窗口、被屏蔽的存储),因此
try:没有他们的经验仍然有用,每页一个故事.
看到SDK的警告
SDK的伐木机关闭了 所以访客控制台保持安静 打开页面
?callimacus_debug 在其 URL 中,或运行 localStorage.setItem('callimacus:debug', '1')
在控制台中重新装入,浏览器捆绑打开记录器 warn
当它开始。 块一回合没有显示, 因为它的一个内容失败
然后记录 Block "saga" was not shown: its content "guide" failed (shortfall).
原因保留服务器侧 : callimacus thamyr probe 显示它.
localStorage.removeItem('callimacus:debug') 又关了 什么都没有
主题更改.
Bundler 用户
无害环境管理条目在没有自动挂载副作用的情况下输出相同的运行时间:
import {mountAll} from '@callimacus/thamyr-liquid';
mountAll(document);
它让伐木工一个人: 打电话 enableLoggerIfRequested() 从
@callimacus/thamyr-core 在此之前 mountAll 上面的开关.
许可证
专有——只允许Callimacus客户使用. 见 利比里亚。 。 。 .