diff --git a/docs/source/tutorials/differences.md b/docs/source/tutorials/differences.md index b8b5d0ab5..cb98c08e3 100644 --- a/docs/source/tutorials/differences.md +++ b/docs/source/tutorials/differences.md @@ -24,6 +24,7 @@ Though we're trying to be compatible with the Ruby version, there are still some * Truthy and Falsy. All values except `undefined`, `null`, `false` are truthy, whereas in Ruby Liquid all except `nil` and `false` are truthy. See [#26][#26]. * Number. In JavaScript we cannot distinguish or convert between `float` and `integer`, see [#59][#59]. And when applied `size` filter, numbers always return 0, which is 8 for integer in ruby, cause they do not have a `length` property. +* Stringify: We've aligned string coercion for primitive types. While some differences remain; for example, in Shopify/liquid, `strip` returns the "inspected" string of an input array, whereas in LiquidJS, the `strip` filter simply stringifies the input array [#852][#852]. * [.to_liquid()](https://github.com/Shopify/liquid/wiki/Introduction-to-Drops) is replaced by `.toLiquid()` * [.to_s()](https://www.rubydoc.info/gems/liquid/Liquid/Drop) is replaced by JavaScript `.toString()` * Iteration order for objects. The iteration order of JavaScript objects, and thus LiquidJS objects, is a combination of the insertion order for string keys, and ascending order for number-like keys, while the iteration order of Ruby Hash is simply the insertion order. @@ -47,6 +48,7 @@ Though we're trying to be compatible with the Ruby version, there are still some [#236]: https://github.com/harttle/liquidjs/issues/236 [#414]: https://github.com/harttle/liquidjs/discussions/414 [#485]: https://github.com/harttle/liquidjs/discussions/485 +[#852]: https://github.com/harttle/liquidjs/discussions/852 [sort]: https://liquidjs.com/filters/sort.html [stable-sort]: https://v8.dev/features/stable-sort [plugins]: ./plugins.html#Plugin-List diff --git a/docs/source/zh-cn/tutorials/differences.md b/docs/source/zh-cn/tutorials/differences.md index f89b44278..9cdf3b22d 100644 --- a/docs/source/zh-cn/tutorials/differences.md +++ b/docs/source/zh-cn/tutorials/differences.md @@ -24,6 +24,7 @@ LiquidJS 一直很重视兼容于 Ruby 版本的 Liquid。Liquid 模板语言最 * 真和假。在 LiquidJS 中 `undefined`, `null`, `false` 是假,之外的都是真;在 Ruby 中 `nil` 和 `false` 是假,其他都是真。见 [#26][#26]。 * 数字。JavaScript 不区分浮点数和整数,因此缺失一部分整数算术,见 [#59][#59]。此外 `size` 过滤器作用于数字时总是返回零,而不是 Ruby 中的浮点数或整数的内存大小。 +* 输出字符串。基本类型的输出已经和 Shopify/liquid 对齐,但是仍然存在一些区别。比如在 Shopify/liquid 中 `strip` 会返回 inspect 字符串,但 LiquidJS `strip` 只是简单地把输入转换为字符串 [#852][#852]。 * Drop 中的 [.to_liquid()](https://github.com/Shopify/liquid/wiki/Introduction-to-Drops) 替换为 `.toLiquid()`。 * 数据的 [.to_s()](https://www.rubydoc.info/gems/liquid/Liquid/Drop) 替换为 `.toString()`。 * 对象的迭代顺序。JavaScript 对象的迭代顺序是插入顺序和数字键递增顺序的组合,但 Ruby Hash 中只是插入顺序(JavaScript 字面量 Object 和 Ruby 字面量 Hash 的插入顺序解释也不同)。 @@ -46,6 +47,7 @@ LiquidJS 一直很重视兼容于 Ruby 版本的 Liquid。Liquid 模板语言最 [#236]: https://github.com/harttle/liquidjs/issues/236 [#414]: https://github.com/harttle/liquidjs/discussions/414 [#485]: https://github.com/harttle/liquidjs/discussions/485 +[#852]: https://github.com/harttle/liquidjs/discussions/852 [sort]: https://liquidjs.com/filters/sort.html [stable-sort]: https://v8.dev/features/stable-sort [plugins]: ./plugins.html#插件列表