Del via


Tilgjengelige Liquid-filtre

Liquid-filtre brukes til å endre resultatet av strenger, tall, variabler og objekter. De er atskilt fra verdien som de som brukes av med en |.

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

Noen filtre godtar parametere. Filtre kan også kombineres, og de brukes i rekkefølge fra venstre mot høyre.

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

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

Delen nedenfor beskriver ulike filtre.

Matrisefiltre

Matrisefiltre brukes til å arbeide med matriser.

batch

Deler en matrise opp i flere matriser av en gitt størrelse.

Kode

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

{% for batch in batches %}

<ul>

{% for item in batch %}

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

{% endfor %}

</ul>

{% endfor %}

Utdata

<ul>

<li>John Smith</li>

<li>Dave Thomas</li>

</ul>

<ul>

<li>Jake Johnson</li>

<li>Jack Robinson</li>

</ul>

concat

Setter sammen to matriser til én enkelt ny matrise.

Når ett enkelt element er angitt som parameter, returnerer concat en ny matrise som består av den opprinnelige matrisen, med det angitte elementet som det siste elementet.

Kode

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

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

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

Utdata

Group #1: John, Pete, Hannah

Group #2: Joan, Bill

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

except

Velg alle objektene i en matrise der et angitt attributt ikke har en angitt verdi. (Dette er motsatte av where.)

Kode

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

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Utdata

Jack Robinson

Første

Returnerer det første elementet i en matrise.

first kan også brukes med en spesiell punktnotasjon, i tilfeller der det skal brukes i en kode.

Kode

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

{{ words | first }}

{% if words.first == This %}

The first word is This.

{% endif %}

Utdata

This

The first word is This.

group_by

Grupper elementene i en matrise etter et angitt attributt.

Kode

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

{% for group in groups %}

{{ group.key }}:

{% for item in group.items %}

{{ item.fullname }}

{% endfor %}

{% endfor %}

Utdata

Redmond:

John Smith

Dave Thomas

Jake Johnson

New York:

Jack Robinson

join

Kobler sammen elementene i en matrise med tegn som er sendt som parameteren. Resultatet er én enkelt streng.

Kode

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

{{ words | join: ,  }}

Utdata

This, is, a, run, of, text

Siste

Returnerer det siste elementet i en matrise.

last kan også brukes med en spesiell punktnotasjon, i tilfeller der det skal brukes i en kode.

Kode

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

{{ words | last }}

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

The last word is text.

{% endif -%}

Utdata

text

The last word is text.

order_by

Returnerer elementene i en matrise sortert etter et angitt attributt for elementene i matrisen.

Du kan også angi desc som andre parameter for å sortere elementer i synkende rekkefølge i stedet for stigende.

Kode

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

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

Utdata

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

tilfeldig

Returnerer et tilfeldig valgt element i matrisen.

Kode

{{ group1 | join: ', ' }}

{{ group1 | random }}

Utdata

John, Pete, Hannah

Pete

select

Velger verdien for et angitt attributt for hvert element i en matrise, og returnerer disse verdiene som en matrise.

Kode

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

Utdata

Redmond, New York

shuffle

Brukes til en matrise, returnerer den nye matrisen med de samme elementene i tilfeldig rekkefølge.

Kode

{{ group1 | join: ', ' }}

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

Utdata

John, Pete, Hannah

Hannah, John, Pete

size

Returnerer antall elementer i en matrise.

size kan også brukes med en spesiell punktnotasjon, i tilfeller der det skal brukes i en kode.

Kode

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

{{ words | size }}

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

The text contains 6 words.

{% endif -%}

Utdata

6

The text contains 6 words.

skip

Hopper over et gitt antall elementer i en matrise, og returnerer resten.

Kode

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

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

Utdata

run, of, text

take

Tar et gitt antall elementer fra matrise, og returnerer de brukte elementene.

Kode

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

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

Utdata


This, is, a

then_by

Legger til flere påfølgende sorteringer for en matrise som allerede er sortert etter order_by.

Du kan også angi desc som andre parameter for å sortere elementer i synkende rekkefølge i stedet for stigende.

Kode

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

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

Utdata

Dave Thomas, Jack Robinson, Jake Johnson, John Smith

John Smith, Jake Johnson, Jack Robinson, Dave Thomas

der

Velg alle objektene i en matrise der et angitt attributt har en angitt verdi.

Kode

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

{% for item in redmond %}

{{ item.fullname }}

{% endfor %}

Utdata

John Smith

Dave Thomas

Jake Johnson

Datofiltre

Datofiltre kan brukes for datoaritmetikk eller for å konvertere dato-/klokkeslettverdier til forskjellige formater.

dato

Formaterer en dato-/klokkeslettverdi ved hjelp av en .NET-formatstreng.

Standard formatstrenger for dato og klokkeslett

Egendefinerte formatstrenger for dato og klokkeslett

Kode

{{ now | date: 'g' }}

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

Utdata

5/7/2018 7:20 AM

May 07, 2018

date_add_days

Legger til det angitte antallet hele og delvise dager i dato-/klokkeslettverdien. Parameteren kan være positiv eller negativ.

Kode

{{ now }}

{{ now | date_add_days: 1 }}

{{ now | date_add_days: -2.5 }}

Utdata

5/7/2018 7:20:46 AM

5/8/2018 7:20:46 AM

5/4/2018 7:20:46 PM

date_add_hours

Legger til det angitte antallet hele og delvise timer i dato-/klokkeslettverdien. Parameteren kan være positiv eller negativ.

Kode

{{ now }}

{{ now | date_add_hours: 1 }}

{{ now | date_add_hours: -2.5 }}

Utdata

5/7/2018 7:20:46 AM

5/7/2018 8:20:46 AM

5/7/2018 4:50:46 AM

date_add_minutes

Legger til det angitte antallet hele og delvise minutter i dato-/klokkeslettverdien. Parameteren kan være positiv eller negativ.

Kode

{{ now }}

{{ now | date_add_minutes: 10 }}

{{ now | date_add_minutes: -2.5 }}

Utdata

5/7/2018 7:20:46 AM

5/7/2018 7:30:46 AM

5/7/2018 7:18:16 AM

date_add_months

Legger til det angitte antallet hele og delvise måneder i dato-/klokkeslettverdien. Parameteren kan være positiv eller negativ.

Kode

{{ now }}

{{ now | date_add_months: 1 }}

{{ now | date_add_months: -2 }}

Utdata

5/7/2018 7:20:46 AM

6/7/2018 7:20:46 AM

3/7/2018 7:20:46 AM

date_add_seconds

Legger til det angitte antallet hele og delvise sekunder i dato-/klokkeslettverdien. Parameteren kan være positiv eller negativ.

Kode

{{ now }}

{{ now | date_add_seconds: 10 }}

{{ now | date_add_seconds: -1.25 }}

Utdata

5/7/2018 7:20:46 AM

5/7/2018 7:20:56 AM

5/7/2018 7:20:45 AM

date_add_years

Legger til det angitte antallet hele og delvise år i dato-/klokkeslettverdien. Parameteren kan være positiv eller negativ.

Kode

{{ now }}

{{ now | date_add_years: 1 }}

{{ now | date_add_years: -2 }}

Utdata

5/7/2018 7:20:46 AM

5/7/2019 7:20:46 AM

5/7/2016 7:20:46 AM

date_to_iso8601

Formater en dato-/klokkeslettverdi i henhold til ISO 8601-standarden. Nyttig når du oppretter Atom-feeder eller HTML5-elementet <time>.

Kode

{{ now | date_to_iso8601 }}

Utdata

2018-05-07T07:20:46Z

date_to_rfc822

Formater en dato-/klokkeslettverdi i henhold til RFC 822-standarden. Nyttig når du oppretter RSS-feeder.

Kode

{{ now | date_to_rfc822 }}

Utdata

Mon, 07 May 2018 07:20:46 Z

Escape-filtre

Med escape-sekvenser kan du inkludere spesialtegn i strenger uten at de er i konflikt med vanlig tegnkonfigurering i programmeringsspråket eller formatet.

Escape-filtrene nedenfor erstatter strengtegn med escape-sekvenser, eller fjerner ugyldige strengtegn basert på måltypen.

escape

HTML-escapekode for en streng.

Kode

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

Utdata

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

html_safe_escape

Konverterer en gitt HTML-streng til et sikkert HTML-fragment.

Kode

{{ '<img src="images/myimage.jpg" onerror="alert(1);">' | html_safe_escape }}

Utdata

<img src="images/myimage.jpg">

url_escape

URI-escapetegn for en streng, for å bli inkludert i en nettadresse.

Kode

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

Utdata

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

xml_escape

XML-escapetegn for en streng, for å bli inkludert i XML-utdata.

Kode

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

Utdata

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

Listefiltre

Listefiltre brukes til å arbeide med bestemte entitylist-attributtverdier, og til å opprette visninger for lister.

current_sort

Returnerer gjeldende sorteringsretning for et angitt attributt for angitt sorteringsuttrykk.

Kode

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

Utdata

DESC

metafilters

Analyserer en JSON-verdi av typen entitylist-filter_definition til gruppeobjekter for filteralternativ.

metafilters kan angis med gjeldende filterspørring for attributt og gjeldende entitylist, slik at de returnerte filterobjektene flagges som valgt eller ikke valgt.

Kode

{% 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

Returnerer motsatt sorteringsretning for angitt sorteringsretning.

Kode

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

{{ 'ASC' | reverse_sort }}

{{ 'desc' | reverse_sort }}

Utdata

DESC

ASC

Matematikkfiltre

Matematikkfiltre lar deg utføre matematiske operasjoner på tall.

I likhet med alle filtre kan matematiske filtre være kjedet og brukes i rekkefølge fra venstre mot høyre.

Kode

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

Utdata

5

ceil

Avrunder en verdi oppover til nærmeste heltall.

Kode

{{ 4.6 | ceil }}

{{ 4.3 | ceil }}

Utdata

5

5

divided_by

Dividerer et tall med et annet tall.

Kode

{{ 10 | divided_by: 2 }}

{{ 10 | divided_by: 3 }}

{{ 10.0 | divided_by: 3 }}

Utdata

5

3

3.333333

floor

Avrunder en verdi nedover til nærmeste heltall.

Kode

{{ 4.6 | floor }}

{{ 4.3 | floor }}

Utdata

4

4

minus

Trekker et tall fra et annet tall.

Kode

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

{{ entityview.page | minus: 1 }}

{{ 10 | minus: 1.1 }}

{{ 10.1 | minus: 1 }}

Utdata

10

9

9.1

modulo

Dividerer et tall med et annet tall, og returnerer resten.

Kode

{{ 12 | modulo: 5 }}

Utdata

2

plus

Legger til et tall til et annet tall.

Kode

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

{{ entityview.page | plus: 1 }}

{{ 10 | plus: 1.1 }}

{{ 10.1 | plus: 1 }}

Utdata

12

11

11.1

round

Avrunder en verdi til nærmeste heltall eller angitt antall desimaler.

Kode

{{ 4.6 | round }}

{{ 4.3 | round }}

{{ 4.5612 | round: 2 }}

Utdata

5

4

4.56

times

Multipliserer et tall med et annet tall.

Kode

{{ 10 | times: 2 }}

{{ 10 | times: 2.2 }}

{{ 10.1 | times: 2 }}

Utdata

20

20

20.2

Strengfiltre

Strengfiltre manipulerer strenger.

tilføye

Legger til en streng på slutten av en annen streng.

Kode

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

Utdata

filename.js

capitalize

Bruker stor forbokstav i hvert ord i en streng.

Kode

{{ 'capitalize me' | capitalize }}

Utdata

Capitalize Me

downcase

Konverterer en streng til små bokstaver.

Kode

{{ 'MIxed Case TExt' | downcase }}

Utdata

mixed case text

newline_to_br

Setter inn HTML-linjeskiftkoden <br /> på hvert linjeskift i en streng.

Kode

{% capture text %}

A

B

C

{% endcapture %}

{{ text | newline_to_br }}

Utdata

A<br />

B<br />

C<br />

prepend

Legger til en streng i begynnelsen av en annen streng.

Kode

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

Utdata

Dr. Jane Johnson

remove

Fjerner alle forekomster av en delstreng fra en streng.

Kode

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

Utdata

Hello, . How are you, ?

remove_first

Fjerner den første forekomster av en delstreng fra en streng.

Kode

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

Utdata

Hello, . How are you, Dave?

replace

Erstatter alle forekomster av en streng med en delstreng.

Kode

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

Utdata

Hello, John. How are you, John?

replace_first

Erstatter den første forekomster av en streng med en delstreng.

Kode

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

Utdata

Hello, John. How are you, Dave?

split

split-filteret tar en delstreng som en parameter. Delstrengen brukes som et skilletegn for å dele opp en streng til en matrise.

Kode

{% 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: ', ' }}

Utdata

First word: This

First word: This

Second word: is

Last word: filter

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

strip_html

Fjerner alle HTML-koder fra en streng.

Kode

<p>Hello</p>

Utdata

Hello

strip_newlines

Fjerne alle linjeskift fra en streng.

Kode

{% capture text %}

A

B

C

{% endcapture %}

{{ text | strip_newlines }}

Utdata

ABC

text_to_html

Formaterer ren tekststreng som enkel HTML. Teksten er HTML-kodet, tekstblokker som er atskilt med en tom linje, vil brytes med avsnittskodene <p>, enkle linjeskift blir erstattet med <br> og nettadressene konverteres til hyperkoblinger.

Kode

{{ note.notetext | text_to_html }}

Utdata

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

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

truncate

Avkorter en streng til et angitt antall tegn. En ellipse (...) tilføyes strengen og inkluderes i antallet tegn.

Kode

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

Utdata

This is...

truncate_words

Avkorter en streng til et angitt antall ord. En ellipse (...) legges til den avkortede strengen.

Kode

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

Utdata

This is a...

upcase

Konverterer en streng til store bokstaver.

Kode

{{ 'MIxed Case TExt' | upcase }}

Utdata

MIXED CASE TEXT

Typefiltre

Typefiltre lar deg konvertere verdier av én type til andre typer.

boolean

Forsøk på å konvertere en strengverdi til en boolsk verdi. Hvis verdien allerede er en boolsk verdi, returneres den uendret. Hvis verdien ikke kan konverteres til en boolsk verdi, returneres null.

Dette filteret vil også godta on, enabled eller yes som sann, and off, disabled og no som usann.

Kode

{{ true | boolean }}

{{ 'false' | boolean }}

{{ 'enabled' | boolean }}

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

Utdata

true

false

true

false

desimal

Forsøk på å konvertere en strengverdi til et desimaltall. Hvis verdien allerede er et desimaltall, returneres den uendret. Hvis verdien ikke kan konverteres til et desimaltall, returneres null.

Kode

{{ 10.1 | decimal }}

{{ '3.14' | decimal }}

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

Utdata

10.1

3.14

3.14

integer

Forsøk på å konvertere en strengverdi til et heltall. Hvis verdien allerede er et heltall, returneres den uendret. Hvis verdien ikke kan konverteres til et heltall, returneres null.

Kode

{{ 10 | integer }}

{{ '10' | integer }}

{{ '10.1' | integer }}

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

Utdata

10

10

2

string

Forsøk på å konvertere en verdi til strengrepresentasjonen. Hvis verdien allerede er en streng, returneres den uendret. Hvis verdien er null, returneres null.

Nettadressefiltre

Nettadressefiltre gjør det mulig å bygge eller trekke ut deler av nettadresser.

add_query

Legger til en spørringsstrengparameter i en nettadresse. Hvis parameteren allerede finnes i nettadressen, oppdateres parameterverdien.

Hvis dette filteret brukes på en hel absolutt nettadresse, blir resultatet en oppdatert absolutt URL-nettadresse. Hvis det brukes på en bane, blir resultatet en oppdatert bane.

Kode

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

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

Utdata

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

/path?page=2

base

Henter den primære nettadressen for en bestemt nettadresse.

Kode

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

Utdata

https://example.com

host

Henter vertsdelen av en nettadresse.

Kode

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

Utdata

example.com

path

Henter banedelen av en nettadresse.

Kode

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

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

Utdata

/path

/path

path_and_query

Henter banedelen og spørringen for en nettadresse.

Kode

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

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

Utdata

/path?foo=bar&page=2

/path?foo=bar&page=2

port

Henter portnummeret for en nettadresse.

Kode

{{ 'https://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 }}

Utdata

80

443

9000

remove_query

Fjerner en spørringsstrengparameter fra en nettadresse. Hvis parameteren ikke finnes i nettadressen, returneres nettadressen uendret.

Hvis dette filteret brukes på en hel absolutt nettadresse, blir resultatet en oppdatert absolutt URL-nettadresse. Hvis det brukes på en bane, blir resultatet en oppdatert bane.

Kode

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

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

Utdata

https://example.com/path

/path

scheme

Henter skjemadelen av en nettadresse.

Kode

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

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

Utdata

http

https

Tilleggsfiltre

Disse filtrene inneholder nyttig generelle funksjoner.

default

Returnerer en standardverdi for alle variabler uten tilordnede verdi (det vil si null).

Kode

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

Utdata

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

My Website

file_size

Brukes på en tallverdi som representerer mange byte, returnerer en formatert filstørrelse med en enhet med riktig skala.

Det kan også sendes en presisjonsparameter for å kontrollere antall desimaler i resultatet. Standard presisjon er 1.

Kode

{{ 10000000 | file_size }}

{{ 2050 | file_size: 0 }}

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

Utdata

9.5 MB

2 KB

207.14 KB

t

Gir en HTML-representasjon av et attributt. Viser for eksempel en HTML-representasjon av FetchXML-spørringens XML-attributt.

Kode

{{ samplequery.xml | h }}

Utdata

<fetch mapping="logical" count="5000" page="1" returntotalrecordcount="true"> <entity name="contact"> <attribute name="fullname" /> </entity> </fetch>

has_role

Hvis den brukes på en bruker, returneres sann hvis brukeren tilhører den angitte rollen. Returnerer usann hvis ikke.

Kode

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

{% if is_admin %}

User is an administrator.

{% endif %}

liquid

Gjengir en streng som Liquid-kode. Denne koden vil ha tilgang til gjeldende Liquid-kjøringskontekst (variabler og så videre).

Merk

Dette filteret må brukes med forsiktighet og bør vanligvis bare brukes på verdier som utelukkende kontrolleres av nettstedets innholdsforfattere eller andre brukere som er klarert for å skrive Liquid-kode.

Kode

{{ page.adx_copy | liquid }}

Se også