Zendesk 模板中的子字符串?

Substrings in Zendesk Templates?

我正在使用 Zendesk 构建一个非常简陋的论坛,找不到太多或任何关于其变量/标记如何工作​​的信息。我想在用户帖子旁边显示部分名称而不是全名。

理想情况下,我可以转换这个名字的姓氏首字母。所以 "John Smith" 会显示为 "John S."。

这是在帮助中心的整个论坛/社区中出现的代码块。现在我只能通过帮助中心访问代码,但可能有一个主题导出/导入我还没有找到,它暴露了他们拥有的更多伪 Handlebars 实现。我假设只有代理/管理员才能查看 author.url 但在这两种情况下我都需要缩短该用户名。

{{#if author.url}}
<a href="{{author.url}}" target="_zendesk_lotus">
  {{author.name}}
</a>
{{else}}
{{author.name}}
{{/if}}

看起来有 "display names",但这些仅适用于代理和管理员,而不适用于个人用户(并不是说我们想要手动更新我们的 3k+ 用户来设置显示名称)。

tl;dr 用户的姓名由我们的软件在创建帐户时使用完整的名字和姓氏自动生成。我们想将这些名称在论坛/社区中的显示方式更改为名字、姓氏首字母:

David Smith => David S

我能找到的最接近的可用函数是摘录函数,但它只是将字符串截断为字符限制:https://developer.zendesk.com/apps/docs/help-center-templates/helpers#excerpt-helper

我可以想出一个解决方案,在页面加载时通过客户端 javascript 执行此操作,但我宁愿不采用该方法。也许我必须创建一个自定义应用程序或其他东西才能将单独的功能添加到主题代码中?如有任何建议或帮助,我们将不胜感激!

很抱歉传递坏消息,但在我看来这是不可能的;我调查了以下内容以得出我的答案

在服务器端

用户对象的 Zendesk API 条目在名称方面不是原子的(参见 https://developer.zendesk.com/apps/docs/help-center-templates/objects#user-object)。我还查看了 Zendesk 的 'Global Helpers'、'Shared Helpers' 和 'Advanced Helpers'(即您提到的 'excerpt' 助手),但没有做我们想要的。

在客户端

  1. 首先,JavaScript可以保证完整 第二个名字确实被截断为仅显示第一个字母 目的,它不能保证完整的第二个名字可以 出于隐私目的,防止窥视。我提到这个 因为如果你住在欧盟国家,GDPR 法规就会生效 或 2018 年 5 月 25 日左右。

  2. 因为 CSS3 没有 'first-word' 伪选择器,这可能排除了使用 CSS 的直接方法。也许 bidi-direction 和 text-indent hack 可以工作,但我觉得考虑到关注点 1) 所涉及的工作量太大,如果你真的必须继续使用客户端解决方案 JavaScript 会是你最好的选择(参见