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
<p>test</p>
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
<p>test</p>
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 }}