在液体中连接数组

2023-12-08

我试图在 Liquid/jekyll 中连接三个数组,但在最终数组(出版物)中我只得到第一个数组(论文)的元素

{% assign papers = (site.publications | where:"type","paper" | sort: 'date') | reverse %}
{% assign posters = (site.publications | where:"type","poster" | sort: 'date') | reverse %}
{% assign abstracts = (site.publications | where:"type","abstract" | sort: 'date') | reverse %}
{% assign publications = papers | concat: posters | concat: abstracts %}

我缺少什么?


新答案

Jekyll 现在使用 Liquid 4.x。所以我们可以使用concat筛选 !

旧答案

concat过滤器不是 jekyll 3.2.1 使用的当前 Liquid Gem (3.0.6) 的一部分。

它仅以液体 4 形式提供(https://github.com/Shopify/liquid/blob/v4.0.0.rc3/lib/liquid/standardfilters.rb#L218).

我可能会参与 Jekyll 4。

与此同时,这个插件可以完成这项工作:

=begin
  Jekyll filter to concatenate arrays
  Usage:
    {% assign result = array-1 | concatArray: array-2 %}
=end
module Jekyll
  module ConcatArrays

    # copied from https://github.com/Shopify/liquid/blob/v4.0.0.rc3/lib/liquid/standardfilters.rb
    def concat(input, array)
      unless array.respond_to?(:to_ary)
        raise ArgumentError.new("concat filter requires an array argument")
      end
      InputIterator.new(input).concat(array)
    end

   class InputIterator
      include Enumerable

      def initialize(input)
        @input = if input.is_a?(Array)
          input.flatten
        elsif input.is_a?(Hash)
          [input]
        elsif input.is_a?(Enumerable)
          input
        else
          Array(input)
        end
      end

      def concat(args)
        to_a.concat(args)
      end

      def each
        @input.each do |e|
          yield(e.respond_to?(:to_liquid) ? e.to_liquid : e)
        end
      end
    end

  end
end

Liquid::Template.register_filter(Jekyll::ConcatArrays)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在液体中连接数组 的相关文章

随机推荐

  • 获取通用枚举的描述属性

    我在尝试通用枚举方面遇到了一些困难 我读到事情没那么简单 我似乎找不到解决方案 我正在尝试创建一个通用函数 对于枚举类型将返回每个枚举值的描述 我想保持它的通用性 而不是为每个枚举类型重复这个方法 这是我到目前为止所拥有的 public s
  • 使用 SQL*Loader 控制文件将日期从一种格式转换为另一种格式

    infile 中的数据格式为MM DD YYYY我如何告诉控制文件将其加载到数据库中YYYYMM 当您在 INFILE 声明中指定列时 仅标识数据保存的格式 就像这样 load data infile whatever csv into t
  • 找不到入口模块:错误:无法解析“./src”

    我正在遵循使用 webpack 和 babel 设置 React 的教程 但出现错误 我尝试重新安装所有模块 但没有成功 我也匹配了我的配置代码仍然没有运气 电子邮件受保护 创建 C Users Gaurav Thakur Desktop
  • 在 Titan 中使用 order().by() 时索引不起作用

    泰坦文档说 混合索引支持原生且高效的排序 但是 order by 方法中使用的属性键必须事先添加到混合索引中 以支持本机结果排序 这在 order by 键与查询键不同的情况下很重要 如果属性键不是索引的一部分 则排序需要将所有结果加载到内
  • 从右侧将文本拆分为不同的列

    我在 Excel 的一个单元格中有一串字母数字文本 使用 v2016 文本类似于 ECN 6120 012 MMR 12195 201481 我使用了 搜索 查找 和 修剪 的变体将第一组 第二组 第三组和最后一组文本放入各个单元格中 我需
  • 任何 NFC 应用程序均未检测到 NFC B 型卡(例如:nfc taginfo)

    我正在开发 NEXSUS S 4 0 4 需要读取 typeB ISO 14443 卡的数据并显示卡上存储的一些信息 但是我的卡没有在我的应用程序或从 android market 下载的任何其他应用程序上检测到 例如 来自 NXP 的 N
  • 具有本地输入的 Python atof

    比如说 我有一个 德语 表达式 内容为10 401 40 in Mio EUR 我想在 Python 中将其转换为真正的浮点数 在本例中约为 100 亿 这是我到目前为止所拥有的 import re locale from locale i
  • 我是否应该使用 AutoFixture 来测试我的 Onion 的核心元素(它没有依赖项)?

    这个问题是我之前的问题的延续 如何使用OneTimeSetup 特别是其中一位回答者的回答 请看下面的代码 TestFixture public class MyFixture IProduct Product OneTimeSetUp p
  • 是否可以声明一个接受超类实例数组并返回最具体的子类类型的函数

    我正在为我的 Javascript 包编写 Typescript 声明文件 我的库有一个函数 它接受超类元素数组并返回超类 function x args SuperClass SuperClass 我想修改该方法的返回类型 以便它返回最具
  • SQLDependency 缓存不起作用

    我正在尝试使用SQLDependency Caching与我的查询通知ASP NET应用 我跟着设置 SQLDependency 缓存的步骤 我能够设置db成功地 但是 当我运行我的应用程序时 我收到以下错误 Cannot find the
  • 有没有办法使用泛型将 Maybe 构造函数应用于记录的每个字段?

    我有两种数据类型 第二个是第一个数据类型的副本 但每个字段上都有 Maybe data A a Int b String data B c Maybe Int d Maybe String 有没有办法制作一个函数 f A gt B g B
  • 如何用另一个视图的内容掩盖一个视图的图层?

    我有一个 UIImageView 和一个 UILabel 并且希望 UILabel 的内容掩盖 UIImageView 目标是文本与图像内容可见 但其他所有内容都是透明的 有没有一种简单的方法可以通过另一个视图的内容来掩盖一个视图 您可以使
  • 将信息从服务传递到活动(或片段)的最佳实践

    我正在运行一个Socket IO客户在我的Android应用程序 我在传递数据时遇到问题Service 处理套接字的连接 到其中之一Fragments 在我的一个Activities 我打开一个包含个人资料页面的片段 当配置文件片段打开时
  • 如何获取可用视频捕获设备的列表

    我正在使用 DirectShow Net 创建一个项目 该项目使用 Visual C 在 Windows 窗体中显示网络摄像头视图的预览 我想首先获取可用视频设备的集合 以便我可以在内置网络摄像头或 USB 网络摄像头之间进行选择 我见过几
  • Scala 模板设置变量

    我是 Scala 新手 Play 2 框架中的 Scala 模板 我想要执行以下操作 传递参数 isEdit 并根据此参数定义一个值 伪代码 variable myTitle if isEdit myTitle edit question
  • 将 DataFrame 拆分为多列组的字典

    我有一个像这样的数据框 df pd DataFrame Client A B C D E Revenue 100 120 50 40 30 FYoQ FY Q Q Q FY Quarter np nan 1 3 4 np nan Year
  • n 个向量的交集

    我是编程新手 最近遇到了一个问题 即查找已排序整数的 n 个向量 整数向量 的交集 我想出的方法的复杂度为 O n 2 并且我正在使用 std set intersect 函数 我想出的方法是使用两个向量 第一个向量对应于我拥有的第一个向量
  • 每次调用都在 WCF 中进行身份验证

    我以完全断开连接的方式从 Silverlight 应用程序使用大量 WCF 服务 我想确保我知道调用每个服务的用户 但我不知道是否有 标准方式 我想到了一种登录方法来获取令牌 然后在每次调用中传递用户名及其令牌 以确保他 她已登录并有权执行
  • 如果多个字符在方案中彼此相邻,则从列表中删除它们

    我必须制作一个 Dr Racket 程序 如果列表中的字母与其本身相同 则将其从列表中删除 例如 z z f a b b d d 将变为 z f a b d 我已经为此编写了代码 但它所做的只是从列表中删除第一个字母 有人可以帮忙吗 lan
  • 在液体中连接数组

    我试图在 Liquid jekyll 中连接三个数组 但在最终数组 出版物 中我只得到第一个数组 论文 的元素 assign papers site publications where type paper sort date rever