Razpoložljivi filtri Liquid

Filtri Liquid se uporabljajo za spreminjanje izhoda nizov, števil, spremenljivk in predmetov. Od vrednosti, za katero se uporabljajo, so ločeni z |.

{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->

Nekateri filtri sprejemajo parametre. Filtre je mogoče tudi združevati, uporabijo pa se v vrstnem redu od leve proti desni.

{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->

{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->

V spodnjem razdelku so opisani različni filtri.

Filtri polj

Filtri polj se uporabljajo za delo s polji.

razdeli v pakete

Razdeli polje v več polj določene velikosti.

Koda

{% assign batches = entityview.records | batch: 2 %}

{% for batch in batches %}

<ul>

{% for item in batch %}

<li>{{ item.fullname }}</li>

{% endfor %}

</ul>

{% endfor %}

Rezultat

<ul>

<li>John Smith</li>

<li>Dave Thomas</li>

</ul>

<ul>

<li>Jake Johnson</li>

<li>Jack Robinson</li>

</ul>

združi

Združi več polj v eno novo polje.

S podanim enim elementom kot parametrom »združi« vrne novo polje, ki je sestavljeno iz prvotnega polja, s podanim elementom kot zadnjim elementom.

Koda

Group #1: {{ group1 | join: ', ' }}

Group #2: {{ group2 | join: ', ' }}

Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}

Group #1 + Leslie: {{ group1 | concat: 'Leslie' | join: ', ' }}

Rezultat

Group #1: John, Pete, Hannah

Group #2: Joan, Bill

Group #1 + Group #2: John, Pete, Hannah, Joan, Bill

Group #1 + Leslie: John, Pete, Hannah, Leslie

razen

Izbere vse predmete v polju, kjer dani atribut nima dane vrednosti. (To je obratno od where.)

Koda

{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Rezultat

Jack Robinson

Prvi

Vrne prvi element polja.

V primerih, ko mora biti možnost »first« uporabljena znotraj oznake, se lahko uporabi tudi s posebnim zapisom s piko.

Koda

{% assign words = "This is a run of text" | split: " " %}

{{ words | first }}

{% if words.first == "This" %}

The first word is "This".

{% endif %}

Rezultat

This

The first word is "This".

group_by

Združi elemente v polju v skupine po danem atributu.

Koda

{% assign groups = entityview.records | group_by: 'address1_city' %}

{% for group in groups %}

{{ group.key }}:

{% for item in group.items %}

{{ item.fullname }}

{% endfor %}

{% endfor %}

Rezultat

Redmond:

John Smith

Dave Thomas

Jake Johnson

New York:

Jack Robinson

pridruži

Pridruži elemente polja znaku, posredovanemu kot parameter. Rezultat je en niz.

Koda

{% assign words = "This is a run of text" | split: " " %}

{{ words | join: ", " }}

Rezultat

This, is, a, run, of, text

Zadnja

Vrne zadnji element polja.

V primerih, ko mora biti možnost »last« uporabljena znotraj oznake, se lahko uporabi tudi s posebnim zapisom s piko.

Koda

{% assign words = "This is a run of text" | split: " " -%}

{{ words | last }}

{% if words.last == "text" -%}

The last word is "text".

{% endif -%}

Rezultat

text

The last word is "text".

order_by

Vrne elemente polja, razvrščene po danem atributu elementov polja.

Po želji lahko vnesete »desc« kot drugi parameter za razvrstitev elementov v padajočem zaporedju namesto v naraščajočem.

Koda

{{ entityview.records | order_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}

Rezultat

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

naključno

Vrne en naključno izbran element iz polja.

Koda

{{ group1 | join: ', ' }}

{{ group1 | random }}

Rezultat

John, Pete, Hannah

Pete

izberi

Izbere vrednost danega atributa za vsak element v polju in vrne te vrednosti kot polje.

Koda

{{ entityview.records | select: 'address1_city' | join: ', ' }}

Rezultat

Redmond, New York

pomešaj

Uveljavljeno za polje, vrne novo polje z enakimi elementi, v naključnem zaporedju.

Koda

{{ group1 | join: ', ' }}

{{ group1 | shuffle | join: ', ' }}

Rezultat

John, Pete, Hannah

Hannah, John, Pete

velikost

Vrne število elementov v polju.

V primerih, ko mora biti možnost »size« uporabljena znotraj oznake, se lahko uporabi tudi s posebnim zapisom s piko.

Koda

{% assign words = "This is a run of text" | split: " " -%}

{{ words | size }}

{% if words.size == 6 -%}

The text contains 6 words.

{% endif -%}

Rezultat

6

The text contains 6 words.

preskoči

Preskoči določeno število predmetov v polju in vrne ostale.

Koda

{% assign words = "This is a run of text" | split: " " %}

{{ words | skip: 3 | join: ', ' }}

Rezultat

run, of, text

vzemi

Vzame določeno število elementov iz polja in vrne vzete predmete.

Koda

{% assign words = "This is a run of text" | split: " " %}

{{ words | take: 3 | join: ', ' }}

Rezultat


This, is, a

then_by

Doda dodatna nadaljnja razvrščanja v polje, že razvrščeno po order_by.

Po želji lahko vnesete »desc« kot drugi parameter za razvrstitev elementov v padajočem zaporedju namesto v naraščajočem.

Koda

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}

{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}

Rezultat

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

kje

Izbere vse predmete v polju, kjer ima dani atribut dano vrednost.

Koda

{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Rezultat

John Smith

Dave Thomas

Jake Johnson

Filtri datumov

Filtri datumov se lahko uporabijo za aritmetiko datuma ali pretvarjanje vrednosti DateTime v različne oblike zapisa.

date

Oblikuje vrednost DateTime na podlagi niza z obliko zapisa .NET.

Standardni nizi z obliko zapisa datuma in ure

Prilagojeni nizi z obliko zapisa datuma in ure

Koda

{{ now | date: 'g' }}

{{ now | date: 'MMMM dd, yyyy' }}

Rezultat

5/7/2018 7:20 AM

May 07, 2018

date_add_days

Vrednosti DateTime doda določeno število polnih dni in dni po delih. Vrednost parametra je lahko pozitivna ali negativna.

Koda

{{ now }}

{{ now | date_add_days: 1 }}

{{ now | date_add_days: -2.5 }}

Rezultat

5/7/2018 7:20:46 AM

5/8/2018 7:20:46 AM

5/4/2018 7:20:46 PM

date_add_hours

Vrednosti DateTime doda določeno število polnih ur in ur po delih. Vrednost parametra je lahko pozitivna ali negativna.

Koda

{{ now }}

{{ now | date_add_hours: 1 }}

{{ now | date_add_hours: -2.5 }}

Rezultat

5/7/2018 7:20:46 AM

5/7/2018 8:20:46 AM

5/7/2018 4:50:46 AM

date_add_minutes

Vrednosti DateTime doda določeno število polnih minut in minut po delih. Vrednost parametra je lahko pozitivna ali negativna.

Koda

{{ now }}

{{ now | date_add_minutes: 10 }}

{{ now | date_add_minutes: -2.5 }}

Rezultat

5/7/2018 7:20:46 AM

5/7/2018 7:30:46 AM

5/7/2018 7:18:16 AM

date_add_months

Vrednosti DateTime doda določeno število polnih mesecev in mesecev po delih. Vrednost parametra je lahko pozitivna ali negativna.

Koda

{{ now }}

{{ now | date_add_months: 1 }}

{{ now | date_add_months: -2 }}

Rezultat

5/7/2018 7:20:46 AM

6/7/2018 7:20:46 AM

3/7/2018 7:20:46 AM

date_add_seconds

Vrednosti DateTime doda določeno število polnih sekund in sekund po delih. Vrednost parametra je lahko pozitivna ali negativna.

Koda

{{ now }}

{{ now | date_add_seconds: 10 }}

{{ now | date_add_seconds: -1.25 }}

Rezultat

5/7/2018 7:20:46 AM

5/7/2018 7:20:56 AM

5/7/2018 7:20:45 AM

date_add_years

Vrednosti DateTime doda določeno število polnih let. Vrednost parametra je lahko pozitivna ali negativna.

Koda

{{ now }}

{{ now | date_add_years: 1 }}

{{ now | date_add_years: -2 }}

Rezultat

5/7/2018 7:20:46 AM

5/7/2019 7:20:46 AM

5/7/2016 7:20:46 AM

date_to_iso8601

Oblikuje vrednost DateTime glede na standard ISO 8601. Uporabno pri ustvarjanju virov Atom ali elementa <časa> HTML5.

Koda

{{ now | date_to_iso8601 }}

Rezultat

2018-05-07T07:20:46Z

date_to_rfc822

Oblikuje vrednost DateTime glede na standard RFC 822. Uporabno pri ustvarjanju možnosti Viri RSS.

Koda

{{ now | date_to_rfc822 }}

Rezultat

Mon, 07 May 2018 07:20:46 Z

Filtri seznama entitet

Filtri seznama entitet se uporabljajo za delo z določenimi vrednostmi atributov entitylist in kot pomoč pri ustvarjanju pogledov seznama entitet.

current_sort

Na podlagi izraza razvrščanja vrne trenutno smer razvrščanja za dani atribut.

Koda

{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}

Rezultat

DESC

metafilters

Razčleni vrednost JSON entitylist filter_definition v predmete skupine možnosti filtra.

Možnost »metafilters« lahko izbirno zagotovite s trenutno poizvedbo filtra atributa in trenutno možnostjo entitylist, da so lahko vrnjeni predmeti filtra označeni kot izbrani ali neizbrani.

Koda

{% assign filters = entitylist | metafilters: params.mf, entityview %}
{% if filters.size > 0 %}
  <ul id="entitylist-filters">
    {% for filter in filters %}
      <li class="entitylist-filter-option-group">
        {% if filter.selection_mode == 'Single' %}
          {% assign type = 'radio' %}
        {% else %}
          {% assign type = 'checkbox' %}
        {% endif %}
        <h4 class="entitylist-filter-option-group-label"
          data-filter-id="{{ filter.id | h }}">
          {{ filter.label | h }}
        </h4>
        <ul>
          {% for option in filter.options %}
            <li class="entitylist-filter-option">
              {% if option.type == 'text' %}
                <div class="input-group entitylist-filter-option-text">
                  <span class="input-group-addon">
                    <span class="fa fa-filter" aria-hidden="true"></span>
                  </span>
                  <input class="form-control"
                    type="text"
                    name="{{ filter.id | h }}"
                    value="{{ option.text | h }}" />
                </div>
              {% else %}
                <div class="{{ type | h }}">
                  <label>
                    <input
                      type="{{ type | h }}"
                      name="{{ filter.id | h }}"
                      value="{{ option.id | h }}"
                      {% if option.checked %}
                        checked="checked"
                        data-checked="true"{% endif %}
                      />
                    {{ option.label | h }}
                  </label>
                </div>
              {% endif %}
            </li>
          {% endfor %}
        </ul>
      </li>
    {% endfor %}
  </ul>
  <button class="btn btn-default" data-serialized-query="mf" data-target="#entitylist-filters">Apply Filters</button>
{% endif %}

reverse_sort

Na podlagi smeri razvrščanja vrne nasprotno smer razvrščanja.

Koda

<!-- Sort direction is not case-sensitive -->

{{ 'ASC' | reverse_sort }}

{{ 'desc' | reverse_sort }}

Rezultat

DESC

ASC

Matematični filtri

Matematični filtri vam omogočajo, da izvajate matematične operacije s številkami.

Kot vsi drugi filtri se lahko tudi matematični filtri uporabljajo v nizu, uporabijo pa se v vrstnem redu od leve proti desni.

Koda

{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}

Rezultat

5

ceil

Zaokroži vrednost navzgor na najbližje celo število.

Koda

{{ 4.6 | ceil }}

{{ 4.3 | ceil }}

Rezultat

5

5

divided_by

Deli število z drugim številom.

Koda

{{ 10 | divided_by: 2 }}

{{ 10 | divided_by: 3 }}

{{ 10.0 | divided_by: 3 }}

Rezultat

5

3

3.333333

floor

Zaokroži vrednost navzdol na najbližje celo število.

Koda

{{ 4.6 | floor }}

{{ 4.3 | floor }}

Rezultat

4

4

minus

Odšteje število od drugega števila.

Koda

<!-- entityview.page = 11 -->

{{ entityview.page | minus: 1 }}

{{ 10 | minus: 1.1 }}

{{ 10.1 | minus: 1 }}

Rezultat

10

9

9.1

modulo

Deli število z drugim številom in vrne ostanek.

Koda

{{ 12 | modulo: 5 }}

Rezultat

2

plus

Številu prišteje drugo število.

Koda

<!-- entityview.page = 11 -->

{{ entityview.page | plus: 1 }}

{{ 10 | plus: 1.1 }}

{{ 10.1 | plus: 1 }}

Rezultat

12

11

11.1

round

Zaokroži vrednost na najbližje celo število ali na določeno število decimalnih mest.

Koda

{{ 4.6 | round }}

{{ 4.3 | round }}

{{ 4.5612 | round: 2 }}

Rezultat

5

4

4.56

times

Množi število z drugim številom.

Koda

{{ 10 | times: 2 }}

{{ 10 | times: 2.2 }}

{{ 10.1 | times: 2 }}

Izhod

20

20

20.2

Filtri nizov

Filtri nizov upravljajo nize.

append

Doda niz na konec drugega niza.

Koda

{{ 'filename' | append: '.js' }}

Rezultat

filename.js

capitalize

Prvo besedo v nizu zapiše z veliko začetnico.

Koda

{{ 'capitalize me' | capitalize }}

Rezultat

Capitalize Me

downcase

Pretvori niz v male črke.

Koda

{{ 'MIxed Case TExt' | downcase }}

Rezultat

mixed case text

escape

HTML – izhod iz niza.

Koda

{{ '<p>test</p>' | escape }}

Rezultat

&lt;p&gt;test&lt;/p&gt;

newline_to_br

Vstavi oznako HTML preloma vrstice <br /> pri vsakem prelomu vrstice v nizu.

Koda

{% capture text %}

A

B

C

{% endcapture %}

{{ text | newline_to_br }}

Rezultat

A<br />

B<br />

C<br />

prepend

Doda niz na začetek drugega niza.

Koda

{{ 'Jane Johnson' | prepend: 'Dr. ' }}

Rezultat

Dr. Jane Johnson

remove

Iz niza odstrani vse primerke podniza.

Koda

{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}

Rezultat

Hello, . How are you, ?

remove_first

Iz niza odstrani prvi primerek podniza.

Koda

{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}

Rezultat

Hello, . How are you, Dave?

replace

Zamenja vse primerke niza s podnizom.

Koda

{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}

Rezultat

Hello, John. How are you, John?

replace_first

Zamenja prvi primerek niza s podnizom.

Koda

{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}

Rezultat

Hello, John. How are you, Dave?

split

Filter »split« prevzame podniz kot parameter. Podniz se uporablja kot ločilo za razdelitev niza v polje.

Koda

{% assign words = "This is a demo of the split filter" | split: ' ' %}

First word: {{ words.first }}

First word: {{ words[0] }}

Second word: {{ words[1] }}

Last word: {{ words.last }}

All words: {{ words | join: ', ' }}

Rezultat

First word: This

First word: This

Second word: is

Last word: filter

All words: This, is, a, demo, of, the, split, filter

strip_html

Iz niza odstrani vse oznake HTML.

Koda

<p>Hello</p>

Rezultat

Hello

strip_newlines

Iz niza odstrani vse prelome vrstic.

Koda

{% capture text %}

A

B

C

{% endcapture %}

{{ text | strip_newlines }}

Rezultat

ABC

text_to_html

Niz z navadnim besedilom oblikuje kot preprost HTML. Celotno besedilo bo HTML-kodirano, besedilni sklopi, ločeni s prazno vrstico, bodo obdani z oznakami odstavka <p>, prelomi posameznih vrstic bodo zamenjani z oznako <br> in URL-ji bodo pretvorjeni v hiperpovezave.

Koda

{{ note.notetext | text_to_html }}

Rezultat

<p>This is the first paragraph of notetext. It contains a URL: <a href="http://example.com/" rel="nofollow">http://example.com</a></p>

<p>This is a second paragraph.</p>

truncate

Prireže niz na določeno število znakov. Nizu se dodajo tri pike (...), ki se vključijo v štetje znakov.

Koda

{{ 'This is a long run of text.' | truncate: 10 }}

Rezultat

This is...

truncate_words

Prireže niz na določeno število besed. Prirezanemu nizu se dodajo tri pike (...).

Koda

{{ 'This is a long run of text.' | truncate_words: 3 }}

Rezultat

This is a...

upcase

Pretvori niz v velike črke.

Koda

{{ 'MIxed Case TExt' | upcase }}

Rezultat

MIXED CASE TEXT

url_escape

Izhod URI-ja v nizu za vključitev v URL.

Koda

{{ 'This & that//' | url_escape }}

Rezultat

This+%26+that%2F%2F

xml_escape

Izhod XML-ja v nizu za vključitev v rezultat XML.

Koda

{{ '<p>test</p>' | xml_escape }}

Rezultat

&lt;p&gt;test&lt;/p&gt;

Filtri vrst

Filtri vrst omogočajo pretvarjanje vrednosti ene vrste v druge vrste.

boolean

Poskuša pretvoriti vrednost niza v logično vrednost. Če je vrednost že logična vrednost, bo vrnjena nespremenjena. Če vrednosti ni mogoče pretvoriti v logično vrednost, bo vrnjeno »null«.

Ta filter sprejme tudi »vklop«, »omogočeno« ali »da« kot »true«, in »izklop«, »onemogočeno« in »ne« kot »false«.

Koda

{{ true | boolean }}

{{ 'false' | boolean }}

{{ 'enabled' | boolean }}

{{ settings['something/enabled'] | boolean | default: false }}

Rezultat

true

false

true

false

decimal

Poskuša pretvoriti vrednost niza v decimalno število. Če je vrednost že decimalno število, bo vrnjena nespremenjena. Če vrednosti ni mogoče pretvoriti v decimalno število, bo vrnjeno »null«.

Koda

{{ 10.1 | decimal }}

{{ '3.14' | decimal }}

{{ 'text' | decimal | default: 3.14 }}

Rezultat

10.1

3.14

3.14

integer

Poskuša pretvoriti vrednost niza v celoštevilsko vrednost. Če je vrednost že celoštevilska vrednost, bo vrnjena nespremenjena. Če vrednosti ni mogoče pretvoriti v celo število, bo vrnjeno »null«.

Koda

{{ 10 | integer }}

{{ '10' | integer }}

{{ '10.1' | integer }}

{{ 'text' | integer | default: 2 }}

Rezultat

10

10


2

string

Poskuša pretvoriti vrednost v ponazoritev niza. Če je vrednost že niz, bo vrnjena nespremenjena. Če je vrednost »null«, bo vrnjeno »null«.

Filtri URL

Filtri URL vam omogočajo, da izgradite ali izvlečete dele URL-jev.

add_query

Doda parameter niza poizvedbe v URL. Če parameter že obstaja v URL-ju, bo vrednost parametra posodobljena.

Če ta filter uporabite na polnem absolutnem URL-ju, posodobljen absoluten URL. Če ga uporabite na poti, bo pot posodobljena.

Koda

{{ 'http://example.com/path?page=1' | add_query: 'foo', 'bar' }}

{{ '/path?page=1' | add_query: 'page', 2 }}

Rezultat

http://example.com/path?page=1&foo=bar

/path?page=2

base

Pridobi osnovni URL danega URL-ja.

Koda

{{ 'http://example.com/path?foo=bar&page=2' | base }}

Rezultat

http://example.com

host

Pridobi del URL-ja, ki se nanaša na gostitelja.

Koda

{{ 'http://example.com/path?foo=bar&page=2' | host }}

Rezultat

example.com

path

Pridobi del URL-ja, ki se nanaša na pot.

Koda

{{ 'http://example.com/path?foo=bar&page=2' | path }}

{{ '/path?foo=bar&page=2' | path }}

Rezultat

/path

/path

path_and_query

Pridobi del URL-ja, ki se nanaša na pot in poizvedbo.

Koda

{{ 'http://example.com/path?foo=bar&page=2' | path_and_query }}

{{ '/path?foo=bar&page=2' | path_and_query }}

Rezultat

/path?foo=bar&page=2

/path?foo=bar&page=2

port

Pridobi številko vrat URL-ja.

Koda

{{ 'http://example.com/path?foo=bar&page=2' | port }}

{{ 'https://example.com/path?foo=bar&page=2' | port }}

{{ 'https://example.com:9000/path?foo=bar&page=2' | port }}

Rezultat

80

443

9000

remove_query

Odstrani parameter niza poizvedbe iz URL-ja. Če parameter ne obstaja v URL-ju, bo vrnjen URL nespremenjen.

Če ta filter uporabite na polnem absolutnem URL-ju, posodobljen absoluten URL. Če ga uporabite na poti, bo pot posodobljena.

Koda

{{ 'http://example.com/path?page=1' | remove_query: 'page' }}

{{ '/path?page=1' | remove_query: 'page' }}

Rezultat

http://example.com/path

/path

scheme

Pridobi del URL-ja, ki se nanaša na shemo.

Koda

{{ 'http://example.com/path?foo=bar&page=2' | scheme }}

{{ 'https://example.com/path?foo=bar&page=2' | scheme }}

Rezultat

http

https

Dodatni filtri

Ti filtri omogočajo uporabne splošne funkcije.

default

Vrne privzeto vrednost za vse spremenljivke brez dodeljene vrednosti (npr. »null«).

Koda

{{ snippets["Header"] | default: 'My Website' }}

Rezultat

<!-- If a snippet with the name "Header" returns null -->

My Website

file_size

Uporablja se za številčno vrednost, ki predstavlja število bajtov, vrne oblikovano datoteko z enoto v ustreznem merilu.

Če želite nadzorovati število decimalnih mest v rezultatu, lahko uporabite parameter natančnosti. Privzeta natančnost je 1.

Koda

{{ 10000000 | file_size }}

{{ 2050 | file_size: 0 }}

{{ entity.notes.first.filesize | file_size: 2 }}

Rezultat

9.5 MB

2 KB

207.14 KB

has_role

Uporabljeno za uporabnika vrne vrednost »true«, če uporabnik pripada določeni vlogi. Vrne »false«, če to ne drži.

Koda

{% assign is_admin = user | has_role: 'Administrators' %}

{% if is_admin %}

User is an administrator.

{% endif %}

liquid

Niz upodobi kot kodo Liquid. Ta koda bo imela dostop do trenutnega konteksta izvajanja Liquid (spremenljivke, itd.).

Opomba

Ta filter je treba uporabljati previdno in na splošno le za vrednosti, ki so pod izključnim nadzorom avtorjev vsebine portala ali drugih uporabnikov, ki so zmožni pisati kodo Liquid.

Koda

{{ page.adx_copy | liquid }}

Glejte tudi

Dodajanje dinamične vsebine in ustvarjanje predlog po meri
Shranjevanje izvorne vsebine z uporabo spletnih predlog
Razlaga operatorjev Liquid Vrste Liquid
Predmeti Liquid
Oznake Liquid
Filtri Liquid