Tillgängliga Liquid-filter
Flytande filter används för att ändra resultatet av strängar, tal, variabler och objekt. De är åtskilda från det värde som de som används till av ett |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Vissa filter accepterar parametrar. Filter kan också kombineras och tillämpas i ordning från vänster till höger.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
Nedanstående avsnitt beskriver olika filter.
Matrisfilter
Matrisfilter används för att arbeta med matriser.
batch
Delar upp en matris i flera matriser av en viss storlek.
Kod
{% assign batches = entityview.records | batch: 2 %}
{% for batch in batches %}
<ul>
{% for item in batch %}
<li>{{ item.fullname }}</li>
{% endfor %}
</ul>
{% endfor %}
Utgående
<ul>
<li>John Smith</li>
<li>Dave Thomas</li>
</ul>
<ul>
<li>Jake Johnson</li>
<li>Jack Robinson</li>
</ul>
concat
Sammanfogar två matriser till en ny matris.
Om ett enstaka objekt anges som en parameter returnerar concat en ny matris som består av den ursprungliga matrisen med det angivna objektet som sista element.
Kod
Group #1: {{ group1 | join: ', ' }}
Group #2: {{ group2 | join: ', ' }}
Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}
Utgående
Group #1: John, Pete, Hannah
Group #2: Joan, Bill
Group #1 + Group #2: John, Pete, Hannah, Joan, Bill
förutom
Markera alla objekt i en matris där ett visst attribut inte har ett givet värde. (Detta är det inverterade värdet av där.)
Kod
{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Output
Jack Robinson
Första
Returnerar det första elementet i en matris.
"första" kan också användas med en särskild punktmarkering i de fall där den ska användas i en tagg.
Kod
{% assign words = This is a run of text | split: %}
{{ words | first }}
{% if words.first == This %}
The first word is This.
{% endif %}
Utgående
This
The first word is This.
gruppera_efter
Gruppera element i en matris efter ett visst attribut.
Kod
{% assign groups = entityview.records | group_by: 'address1_city' %}
{% for group in groups %}
{{ group.key }}:
{% for item in group.items %}
{{ item.fullname }}
{% endfor %}
{% endfor %}
Utgående
Redmond:
John Smith
Dave Thomas
Jake Johnson
New York:
Jack Robinson
anslut
Ansluter elementen i en matris till tecknet som skickas som parameter. Resultatet är en enda sträng.
Kod
{% assign words = This is a run of text | split: %}
{{ words | join: , }}
Utgående
This, is, a, run, of, text
senaste
Returnerar det sista elementet i en matris.
"sista" kan också användas med en särskild punktmarkering i de fall där den ska användas i en tagg.
Code
{% assign words = This is a run of text | split: -%}
{{ words | last }}
{% if words.last == text -%}
The last word is text.
{% endif -%}
Output
text
The last word is text.
order_by
Returnerar element i en matris som beställts av ett visst attribut i elementen i matrisen.
Du kan också ange "desc" som en andra parameter om du vill sortera elementen i fallande ordning i stället för stigande.
Kod
{{ entityview.records | order_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'fullname', 'desc' | join: ', ' }}
Output
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
slumpmässig
Returnerar ett slumpmässigt valt objekt från matrisen.
Kod
{{ group1 | join: ', ' }}
{{ group1 | random }}
Output
John, Pete, Hannah
Pete
välj
Väljer värdet för ett visst attribut för varje element i en matris och returnerar dessa värden som en matris.
Kod
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Utgående
Redmond, New York
blanda
Tillämpas till en matris, som returnerar en ny matris med samma objekt i slumpmässig ordning.
Kod
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Utgående
John, Pete, Hannah
Hannah, John, Pete
storlek
Returnerar antalet objekt i en matris.
"storlek" kan också användas med en särskild punktmarkering i de fall där den ska användas i en tagg.
Kod
{% assign words = This is a run of text | split: -%}
{{ words | size }}
{% if words.size == 6 -%}
The text contains 6 words.
{% endif -%}
Utgående
6
The text contains 6 words.
hoppa över
Hoppar över ett givet antal objekt i en matris och returnerar resten.
Kod
{% assign words = This is a run of text | split: %}
{{ words | skip: 3 | join: ', ' }}
Utgående
run, of, text
ta
Tar ett givet antal objekt från matrisen och returnerar de tagna objekten.
Kod
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Output
This, is, a
then_by
Lägger till extra efterföljande ordning till en matris som redan har ordnats order_by.
Du kan också ange "desc" som en andra parameter om du vill sortera elementen i fallande ordning i stället för stigande.
Kod
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}
Utgående
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
där
Markera alla objekt i en matris där ett visst attribut har ett givet värde.
Kod
{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Utgående
John Smith
Dave Thomas
Jake Johnson
Datumfilter
Datumfilter kan användas för datumberäkning eller för att konvertera DatumTid-värdet till olika format.
datum
Formaterar ett DatumTid-värde med en .NET-formatsträng.
Standardformatsträngar för datum och tid
Anpassade formatsträngar för datum och tid
Code
{{ now | date: 'g' }}
{{ now | date: 'MMMM dd, yyyy' }}
Output
5/7/2018 7:20 AM
May 07, 2018
date_add_days
Lägger till det angivna antalet av kompletta eller delade dagar till DatumTid-värdet. Parametern kan vara positiv eller negativ.
Code
{{ now }}
{{ now | date_add_days: 1 }}
{{ now | date_add_days: -2.5 }}
Output
5/7/2018 7:20:46 AM
5/8/2018 7:20:46 AM
5/4/2018 7:20:46 PM
date_add_hours
Lägger till det angivna antalet av kompletta eller delade timmar till DatumTid-värdet. Parametern kan vara positiv eller negativ.
Code
{{ now }}
{{ now | date_add_hours: 1 }}
{{ now | date_add_hours: -2.5 }}
Output
5/7/2018 7:20:46 AM
5/7/2018 8:20:46 AM
5/7/2018 4:50:46 AM
date_add_minutes
Lägger till det angivna antalet av kompletta eller delade minuter till DatumTid-värdet. Parametern kan vara positiv eller negativ.
Code
{{ now }}
{{ now | date_add_minutes: 10 }}
{{ now | date_add_minutes: -2.5 }}
Output
5/7/2018 7:20:46 AM
5/7/2018 7:30:46 AM
5/7/2018 7:18:16 AM
date_add_months
Lägger till det angivna antalet av kompletta eller delade månader till DatumTid-värdet. Parametern kan vara positiv eller negativ.
Code
{{ now }}
{{ now | date_add_months: 1 }}
{{ now | date_add_months: -2 }}
Output
5/7/2018 7:20:46 AM
6/7/2018 7:20:46 AM
3/7/2018 7:20:46 AM
date_add_seconds
Lägger till det angivna antalet av kompletta eller delade sekunder till DatumTid-värdet. Parametern kan vara positiv eller negativ.
Code
{{ now }}
{{ now | date_add_seconds: 10 }}
{{ now | date_add_seconds: -1.25 }}
Output
5/7/2018 7:20:46 AM
5/7/2018 7:20:56 AM
5/7/2018 7:20:45 AM
date_add_years
Lägger till det angivna antalet av kompletta eller delade år till DatumTid-värdet. Parametern kan vara positiv eller negativ.
Code
{{ now }}
{{ now | date_add_years: 1 }}
{{ now | date_add_years: -2 }}
Output
5/7/2018 7:20:46 AM
5/7/2019 7:20:46 AM
5/7/2016 7:20:46 AM
date_to_iso8601
Formaterar ett DatumTid-värde enligt ISO 8601-standard. Detta är användbart när du skapar Atom-flöden eller HTML-<tids>element.
Code
{{ now | date_to_iso8601 }}
Output
2018-05-07T07:20:46Z
date_to_rfc822
Formaterar ett DatumTid-värde enligt RFC 822-standard. Detta är användbart när du skapar RSS-flöden.
Kod
{{ now | date_to_rfc822 }}
Output
Mon, 07 May 2018 07:20:46 Z
Undantagsfilter
Undantagssekvenser ger ett sätt att inkludera specialtecken i strängar utan att komma i konflikt med den vanliga tolkningen av dessa tecken av programmeringsspråket eller formatet.
I följande undantagsfilter ersätts strängtecken med undantagssekvenser eller så tas ogiltiga strängtecken bort beroende på måltypen.
ESC
HTML-undantar en sträng.
Kod
{{ '<p>test</p>' | escape }}
Output
<p>test</p>
html_safe_escape
Förser en viss HTML-sträng med en säker HTML-kod.
Kod
{{ '<img src="images/myimage.jpg" onerror="alert(1);">' | html_safe_escape }}
Output
<img src="images/myimage.jpg">
url_escape
URL undantar en sträng för att inkluderas i en URL.
Code
{{ 'This & that//' | url_escape }}
Output
This+%26+that%2F%2F
xml_escape
XML undantar en sträng för att inkluderas i XML-utdata.
Kod
{{ '<p>test</p>' | xml_escape }}
Output
<p>test</p>
Listfilter
Listfilter används för att arbeta med vissa entitetslista-attributvärden, samt för att hjälpa till med att skapa listvyer.
current_sort
Med hänsyn till ett slags uttryck returneras den aktuella sorteringsordningen för ett visst attribut.
Code
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Output
DESC
metafilter
Tolkar ett entitylist filter_definition JSON-värde till gruppobjekt för filteralternativ.
metafilter kan anges med aktuell attributfiltreringsfrågan och aktuell entitetslista (tillval), vilket gör att returnerade filterobjekt kan flaggas som antingen valda eller icke valda.
Code
{% 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
Med hänsyn till en sorteringsriktning, returneras en motsatt sorteringsriktning.
Kod
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Utgående
DESC
ASC
Matematikfilter
Matematikfilter låter dig utföra matematiska beräkningar på nummer.
Precis som med alla filter kan matematikfilter vara kedjade och tillämpas i ordning från vänster till höger.
Kod
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Utgående
5
ceil
Avrundar ett värde upp till närmsta heltal.
Code
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Output
5
5
divided_by
Dividerar ett tal med ett annat.
Code
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Output
5
3
3.333333
floor
Avrundar ett värde ned till närmsta heltal.
Kod
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Utgående
4
4
minus
Subtraherar ett tal från ett annat.
Kod
<!-- entityview.page = 11 -->
{{ entityview.page | minus: 1 }}
{{ 10 | minus: 1.1 }}
{{ 10.1 | minus: 1 }}
Utgående
10
9
9.1
modul
Dividerar ett tal med ett annat tal och returnerar resten.
Kod
{{ 12 | modulo: 5 }}
Utgående
2
plus
Lägger till ett tal med ett annat tal.
Kod
<!-- entityview.page = 11 -->
{{ entityview.page | plus: 1 }}
{{ 10 | plus: 1.1 }}
{{ 10.1 | plus: 1 }}
Utgående
12
11
11.1
avrunda
Avrundar värdet till närmaste heltal eller angivet antal decimaler.
Kod
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Utgående
5
4
4.56
gånger
Multiplicerar ett tal med ett annat.
Code
{{ 10 | times: 2 }}
{{ 10 | times: 2.2 }}
{{ 10.1 | times: 2 }}
Utdata
20
20
20.2
Strängfilter
Strängfilter ändrar strängar.
append
Lägger till en sträng i slutet av en annan sträng.
Kod
{{ 'filename' | append: '.js' }}
Output
filename.js
versaler
gör alla ord i en sträng till versal.
Kod
{{ 'capitalize me' | capitalize }}
Output
Capitalize Me
gemener
Konverterar en sträng till gemener.
Kod
{{ 'MIxed Case TExt' | downcase }}
Output
mixed case text
newline_to_br
Infogar en <br />-radbrytningstagg i HTML-taggen vid varje radbrytning i en sträng.
Kod
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Utgående
A<br />
B<br />
C<br />
lägg till
Lägger till en sträng i början av en annan sträng.
Kod
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Utgående
Dr. Jane Johnson
ta bort
Ta bort alla förekomster av en delsträng från en sträng.
Code
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Output
Hello, . How are you, ?
remove_first
Tar bort alla första förekomster av en delsträng från en sträng.
Kod
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Utgående
Hello, . How are you, Dave?
ersätt
Ersätter alla förekomster av en sträng med en delsträng.
Code
{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}
Output
Hello, John. How are you, John?
replace_first
Ersätter de första förekomsterna av en sträng med en delsträng.
Kod
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Utgående
Hello, John. How are you, Dave?
dela
Dela-filtret behandlar delsträng som en parameter. Delsträngen används som avgränsare för att dela upp en sträng i en matris.
Code
{% 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: ', ' }}
Output
First word: This
First word: This
Second word: is
Last word: filter
All words: This, is, a, demo, of, the, split, filter
strip_html
Drar av all HTML-kod från en sträng.
Code
<p>Hello</p>
Output
Hello
strip_newlines
Drar av alla radbrytningar från en sträng.
Code
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Output
ABC
text_to_html
Formaterar en vanlig textsträng som enkel HTML. Text är HTML-kodad, textblock separerade med en tom rad kommer att omslutas i punkt-taggar <p>, enstaka radbrytningar ersätts med <br>, och URL-adresser konverteras till hyperlänkar.
Kod
{{ note.notetext | text_to_html }}
Output
<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>
trunkera
Trunkerar en sträng till ett visst antal tecken. Tre punkter (...) läggs till strängen och ingår i teckenberäkning.
Code
{{ 'This is a long run of text.' | truncate: 10 }}
Output
This is...
truncate_words
Trunkerar en sträng till ett visst antal ord. Tre punkter (...) läggs till den trunkerade strängen.
Kod
{{ 'This is a long run of text.' | truncate_words: 3 }}
Output
This is a...
versal
Konverterar en sträng till versaler.
Kod
{{ 'MIxed Case TExt' | upcase }}
Output
MIXED CASE TEXT
Typfilter
Typfilter låter dig konvertera värden av en viss typ till andra typer.
boolesk
Försök att konvertera ett strängvärde till ett booleskt värde. Om värdet är redan ett booleskt värde, returneras det oförändrat. Om värdet inte kan konverteras till ett booleskt värde kommer "null" att returneras.
Det här filtret accepterar också "på", "aktiverad" eller "ja" som "true", och "av", "avaktiverad" och "nej" som "false".
Code
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Utgående
true
false
true
false
decimal
Försök att konvertera ett strängvärde till ett decimalnummer. Om värdet är redan ett decimalnummer, returneras det oförändrat. Om värdet inte kan konverteras till ett decimalnummer kommer "null" att returneras.
Kod
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Utgående
10.1
3.14
3.14
heltal
Försöker att konvertera ett strängvärde till ett heltal. Om värdet är redan ett heltal, returneras det oförändrat. Om värdet inte kan konverteras till ett heltal kommer "null" att returneras.
Kod
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Output
10
10
2
string
Försök att konvertera ett värde till dess strängrepresentation. Om värdet redan är ett strängvärde, returneras det oförändrat. Om värdet är "null", kommer "null" att returneras.
URL-filter
URL-filter låter dig skapa eller extrahera delar av URL-adresser.
add_query
Lägger till en frågesträngparameter till en URL. Om parametern redan finns i URL-adressen, kommer parametervärdet att uppdateras.
Om filtret används till en fullständig absolut URL, blir resultatet en uppdaterad absolut URL. Om den används på en sökväg, blir resultatet en uppdaterad sökväg.
Kod
{{ 'https://example.com/path?page=1' | add_query: 'foo', 'bar' }}
{{ '/path?page=1' | add_query: 'page', 2 }}
Output
https://example.com/path?page=1&foo=bar
/path?page=2
bas
Hämtar en bas-URL från en viss URL.
Kod
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Utgående
https://example.com
värd
Hämtar värddelen av en URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Output
example.com
sökväg
Hämtar sökvägsdelen av en URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | path }}
{{ '/path?foo=bar&page=2' | path }}
Output
/path
/path
path_and_query
Hämtar sökväg- och frågedelen av en URL.
Code
{{ 'https://example.com/path?foo=bar&page=2' | path_and_query }}
{{ '/path?foo=bar&page=2' | path_and_query }}
Output
/path?foo=bar&page=2
/path?foo=bar&page=2
port
Hämtar portnumret för en URL.
Code
{{ '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 }}
Output
80
443
9000
remove_query
Tar bort en frågesträngparameter från en URL. Om parametern inte finns med i URL-adressen returneras URL oförändrat.
Om filtret används till en fullständig absolut URL, blir resultatet en uppdaterad absolut URL. Om den används på en sökväg, blir resultatet en uppdaterad sökväg.
Kod
{{ 'https://example.com/path?page=1' | remove_query: 'page' }}
{{ '/path?page=1' | remove_query: 'page' }}
Output
https://example.com/path
/path
schema
Hämtar schemadelen av en URL.
Kod
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
Utgående
http
https
Ytterligare filter
Dessa filter ger användbara allmänna funktioner.
standard
Returnerar ett standardvärde för alla variabler utan tilldelat värde (dvs. "null").
Kod
{{ snippets[Header] | default: 'My Website' }}
Output
<!-- If a snippet with the name Header returns null -->
My Website
file_size
Tillämpas på ett numeriskt värde som representerar ett antal byte, returnerar en formaterad filstorlek med en enhet i lämplig skala.
Alternativt kan en precisionsparameter skickas, om du vill styra antalet decimaler i resultatet. Standardprecision är 1.
Kod
{{ 10000000 | file_size }}
{{ 2050 | file_size: 0 }}
{{ entity.notes.first.filesize | file_size: 2 }}
Output
9.5 MB
2 KB
207.14 KB
h
Ger en HTML-representation av ett attribut. Exempelvis visas en HTML-representation av FetchXML-frågans XML-attribut.
Kod
{{ samplequery.xml | h }}
Output
<fetch mapping="logical" count="5000" page="1" returntotalrecordcount="true"> <entity name="contact"> <attribute name="fullname" /> </entity> </fetch>
has_role
Tillämpas på en användare, returnerar "true" om användaren tillhör en viss roll. Returnerar annars "false".
Kod
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
liquid
Återger en sträng som preliminär kod. Den här koden har åtkomst till den aktuella preliminära körningskontexten (variabler, etc.).
Kommentar
Det här filtret bör användas med försiktighet och bör i allmänhet endast användas för värden som är under exklusiv kontroll av webbplats innehållsförfattare eller andra användare som är betrodda att skriva preliminär kod.
Code
{{ page.adx_copy | liquid }}