Как я могу ограничить и отфильтровать коллекцию по значению ключа в теме jekyll? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь вывести один элемент из коллекции, где закреплено: "true".

Я пробовал Получение определенного предмета из коллекции в Jekyll Из коллекции _defense/dui.html


---
layout: right-sidebar
title: "Drug Offense"
crumbtitle: "drug-related crime"
permalink: "/practice-law/criminal-law/drug-offense.html"
sticky: true
twitter: "Working on this"

facebook: "Civil Litigation can cost you hundreds if not thousands of dollars if you are not adequately protecting your rights. Civil Litigation can be anything from traffic tickets, hurricane insurance claims to medical malpractice. Call or write for a free, no obligation review of your situation."

web: "An arrest for a drug offense can have significant consequences. Drug offense charges can range from possession to trafficking and can carry significant penalties, including minimum mandatory prison sentences.


The Prosecutor’s process of deciding what if any criminal charges to file can be a very critical stage in the case. This process happens very early in a case and as your lawyers, we can impact this decision.


**DO NOT** make a statement to law enforcement without consulting us first. Call Cagan & Cagan today for a free consultation."

На странице коллекции _practices/criminal-defense.html

    <!-- One -->
{% assign defenses = site.defense | where:"true", "page.sticky" | limit:1 %}
{% assign defense = defense[0] %}
{{ defense | inspect }}
    <section class="wrapper style4 container">
        <div class="row gtr-150">
            <div class="col-8 col-12-narrower">
                <!-- Content -->
                <div class="content">
                    <section>
                        <header>
                            <a href="#" class="image featured">
                                <h2>{{ defense.title }}</h2>
                            </a>
                        </header>
                        <p>{{ defense.web | markdownify }}</p>
                    </section>
                </div>
        </div>

Прямо сейчас я получаю нулевое значение. Я хочу первый элемент с липкой истиной и конец там.

1 Ответ

1 голос
/ 03 июля 2019

where Синтаксис фильтра: {% assign res = array | where: "key", "expected value" %}

но вы изменили порядок аргументов: {% assign res = hash | where: "expected value", "key" %}

см. Документацию по jekyll здесь

Итак, вы можете заменить

{% assign defenses = site.defense | where:"true", "page.sticky" | limit:1 %}
{% assign defense = defense[0] %}

от

{% assign defense = site.defense | where: "sticky", "true" | first %}

примечания:

Редактировать : если вы хотите получить некоторые элементы из постов, страниц или коллекции, в зависимости от основной переменной, вы можете сделать:

{% assign items = site.anycollection | where: "any_key", "string_value" %}

Вы можете затем распечатать что-нибудь из этого результирующего массива, используя цикл for и, в конечном итоге, limit и offset параметры .

{% for item in items limit:2 %}
  and so on ....
...