Filtri Liquid disponibili
I filtri Liquid vengono utilizzati per modificare l'output delle stringhe, i numeri, le variabili e gli oggetti. Sono separati dal valore a cui sono applicati da un |.
{{ 'hal 9000' | upcase }} <!-- Output: HAL 9000 -->
Alcuni filtri accettano i parametri. I filtri possono inoltre essere combinati e sono applicati in ordine da sinistra a destra.
{{ 2 | times: 2 | minus: 1 }} <!-- Output: 3 -->
{{ "Hello, " | append: user.firstname }} <!-- Output: Hello, Dave -->
La sezione seguente descrive vari filtri.
Filtri di matrice
I filtri di matrice sono utilizzati per lavorare con le matrici.
batch
Divide una matrice in più matrici di una dimensione specificata.
Codice
{% assign batches = entityview.records | batch: 2 %}
{% for batch in batches %}
<ul>
{% for item in batch %}
<li>{{ item.fullname }}</li>
{% endfor %}
</ul>
{% endfor %}
Output
<ul>
<li>John Smith</li>
<li>Dave Thomas</li>
</ul>
<ul>
<li>Jake Johnson</li>
<li>Jack Robinson</li>
</ul>
concat
Concatena due matrici in un'unica nuova matrice.
Dato un singolo elemento come parametro, concat restituisce una nuova matrice costituita dalla matrice originale, con l'elemento specificato come ultimo elemento.
Codice
Group #1: {{ group1 | join: ', ' }}
Group #2: {{ group2 | join: ', ' }}
Group #1 + Group #2: {{ group1 | concat: group2 | join: ', ' }}
Output
Group #1: John, Pete, Hannah
Group #2: Joan, Bill
Group #1 + Group #2: John, Pete, Hannah, Joan, Bill
except
Seleziona tutti gli oggetti in una matrice in cui un attributo specificato non ha un valore specificato. È l'inverso di where.
Codice
{% assign redmond = entityview.records | except: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Output
Jack Robinson
primo
Restituisce il primo elemento di una matrice.
first può anche essere utilizzato con una speciale annotazione con punto, quando deve essere utilizzato in un tag.
Codice
{% assign words = This is a run of text | split: %}
{{ words | first }}
{% if words.first == This %}
The first word is This.
{% endif %}
Output
This
The first word is This.
group_by
Raggruppare gli elementi in una matrice per mezzo di un attributo specificato.
Codice
{% assign groups = entityview.records | group_by: 'address1_city' %}
{% for group in groups %}
{{ group.key }}:
{% for item in group.items %}
{{ item.fullname }}
{% endfor %}
{% endfor %}
Output
Redmond:
John Smith
Dave Thomas
Jake Johnson
New York:
Jack Robinson
join
Unisce gli elementi di una matrice con il carattere passato come parametro. Il risultato è una singola stringa.
Codice
{% assign words = This is a run of text | split: %}
{{ words | join: , }}
Output
This, is, a, run, of, text
ultimo
Restituisce l'ultimo elemento di una matrice.
last può anche essere utilizzato con una speciale annotazione con punto, quando deve essere utilizzato in un tag.
Codice
{% 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.
ordina per
Restituisce elementi di una matrice ordinati da un attributo specificato degli elementi della matrice.
Facoltativamente, si può indicare desc come secondo parametro per ordinare gli elementi in ordine decrescente, anziché ascendente.
Codice
{{ 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
random
Restituisce un elemento selezionato in modo casuale dalla matrice.
Codice
{{ group1 | join: ', ' }}
{{ group1 | random }}
Output
John, Pete, Hannah
Pete
select
Seleziona il valore di un attributo specificato per ogni elemento in una matrice e restituisce questi valori come matrice.
Codice
{{ entityview.records | select: 'address1_city' | join: ', ' }}
Output
Redmond, New York
shuffle
Applicato a una matrice, restituisce una nuova matrice con gli stessi elementi, in ordine casuale.
Codice
{{ group1 | join: ', ' }}
{{ group1 | shuffle | join: ', ' }}
Output
John, Pete, Hannah
Hannah, John, Pete
size
Restituisce il numero di elementi di una matrice.
size può anche essere utilizzato con una speciale annotazione con punto, quando deve essere utilizzato in un tag.
Codice
{% assign words = This is a run of text | split: -%}
{{ words | size }}
{% if words.size == 6 -%}
The text contains 6 words.
{% endif -%}
Output
6
The text contains 6 words.
skip
Ignora un numero specificato di elementi in una matrice e restituisce il resto.
Codice
{% assign words = This is a run of text | split: %}
{{ words | skip: 3 | join: ', ' }}
Output
run, of, text
take
Seleziona un numero specificato di elementi dalla matrice, restituendo gli elementi selezionati.
Codice
{% assign words = This is a run of text | split: %}
{{ words | take: 3 | join: ', ' }}
Output
This, is, a
then_by
Aggiunge l'ordinamento successivo aggiuntivo a una matrice già ordinata con order_by.
Facoltativamente, si può indicare desc come secondo parametro per ordinare gli elementi in ordine decrescente, anziché ascendente.
Codice
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname' | join: ', ' }}
{{ entityview.records | order_by: 'address1_city' | then_by: 'fullname', 'desc' | join: ', ' }}
Output
Dave Thomas, Jack Robinson, Jake Johnson, John Smith
John Smith, Jake Johnson, Jack Robinson, Dave Thomas
dove
Selezionare tutti gli oggetti in una matrice in cui un attributo specificato ha un valore specificato.
Codice
{% assign redmond = entityview.records | where: 'address1_city', 'Redmond' %}
{% for item in redmond %}
{{ item.fullname }}
{% endfor %}
Output
John Smith
Dave Thomas
Jake Johnson
Filtri data
I filtri data possono essere utilizzati per l'aritmetica relativa alla data o per convertire i valori di tipo DateTime in diversi formati.
data
Formatta un valore DateTime con una stringa di formato .NET.
Stringhe formato data e ora standard
Stringhe formato data e ora personalizzate
Codice
{{ now | date: 'g' }}
{{ now | date: 'MMMM dd, yyyy' }}
Output
5/7/2018 7:20 AM
May 07, 2018
date_add_days
Aggiunge il numero specificato di giorni interi e frazioni di giorni al valore DateTime. Il parametro può essere positivo o negativo.
Codice
{{ 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
Aggiunge il numero specificato di ore intere e frazioni di ore al valore DateTime. Il parametro può essere positivo o negativo.
Codice
{{ 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
Aggiunge il numero specificato di minuti interi e frazioni di minuti al valore DateTime. Il parametro può essere positivo o negativo.
Codice
{{ 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
Aggiunge il numero specificato di mesi interi e frazioni di mesi al valore DateTime. Il parametro può essere positivo o negativo.
Codice
{{ 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
Aggiunge il numero specificato di secondi interi e frazioni di secondi al valore DateTime. Il parametro può essere positivo o negativo.
Codice
{{ 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
Aggiunge il numero specificato di anni interi e frazioni di anni al valore DateTime. Il parametro può essere positivo o negativo.
Codice
{{ 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
Formatta un valore DateTime in base allo standard ISO 8601. Utile durante la creazione di Feed Atom o dell'elemento <time> HTML5.
Codice
{{ now | date_to_iso8601 }}
Output
2018-05-07T07:20:46Z
date_to_rfc822
Formatta un valore DateTime in base allo standard RFC 822. Utile durante la creazione di feed RSS.
Codice
{{ now | date_to_rfc822 }}
Output
Mon, 07 May 2018 07:20:46 Z
Filtri di escape
Le sequenze di escape forniscono un modo per includere caratteri speciali nelle stringhe senza entrare in conflitto con la normale interpretazione di tali caratteri da parte del linguaggio o del formato di programmazione.
I seguenti filtri di escape sostituiscono i caratteri stringa con sequenze di escape o rimuovono i caratteri stringa non validi in base al tipo di destinazione.
escape
Esegue la sequenza escape HTML di una stringa.
Codice
{{ '<p>test</p>' | escape }}
Output
<p>test</p>
html_safe_escape
Converte una determinata stringa HTML in un frammento HTML sicuro.
Codice
{{ '<img src="images/myimage.jpg" onerror="alert(1);">' | html_safe_escape }}
Output
<img src="images/myimage.jpg">
url_escape
Eseguire l'escape con URI da includere in un URL.
Codice
{{ 'This & that//' | url_escape }}
Output
This+%26+that%2F%2F
xml_escape
Eseguire l'escape con XML da includere in un output XML.
Codice
{{ '<p>test</p>' | xml_escape }}
Output
<p>test</p>
Filtro elenco
I filtri elenco sono utilizzati con alcuni valori di attributo entitylist e consentono la creazione di visualizzazioni elenco di entità.
current_sort
Una volta specificata un'espressione di ordinamento, viene restituita la direzione di ordinamento corrente per un determinato attributo.
Codice
{{ 'name ASC, createdon DESC' | current_sort: 'createdon' }}
Output
DESC
metafilters
Analizza un valore JSON entitylist filterdefinition in oggetti del gruppo di opzioni del filtro.
metafilters può essere facoltativamente fornito con una query del filtro dell'attributo corrente e entitylist corrente, consentendo di contrassegnare gli oggetti del filtro restituiti come selezionati o non selezionati.
Codice
{% 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
Una volta specificata una direzione di ordinamento, restituisce la direzione di ordinamento opposta.
Codice
<!-- Sort direction is not case-sensitive -->
{{ 'ASC' | reverse_sort }}
{{ 'desc' | reverse_sort }}
Output
DESC
ASC
Filtri per la matematica
I filtri per la matematica consentono di realizzare operazioni matematiche su numeri.
Come con tutti i filtri, i filtri per la matematica possono essere concatenati e sono applicato in ordine da destra a sinistra.
Codice
{{ 10 | times: 2 | minus: 5 | divided_by: 3 }}
Output
5
ceil
Arrotonda per un valore fino al numero intero più vicino.
Codice
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}
Output
5
5
divided_by
Divide un numero per un altro numero.
Codice
{{ 10 | divided_by: 2 }}
{{ 10 | divided_by: 3 }}
{{ 10.0 | divided_by: 3 }}
Output
5
3
3.333333
floor
Arrotonda per un valore fino al numero intero più vicino.
Codice
{{ 4.6 | floor }}
{{ 4.3 | floor }}
Output
4
4
minus
Sottrae un numero da un altro numero.
Codice
<!-- entityview.page = 11 -->
{{ entityview.page | minus: 1 }}
{{ 10 | minus: 1.1 }}
{{ 10.1 | minus: 1 }}
Output
10
9
9.1
modulo
Divide un numero per un altro numero e restituisce il resto.
Codice
{{ 12 | modulo: 5 }}
Output
2
plus
Aggiunge un numero a un altro numero.
Codice
<!-- entityview.page = 11 -->
{{ entityview.page | plus: 1 }}
{{ 10 | plus: 1.1 }}
{{ 10.1 | plus: 1 }}
Output
12
11
11.1
round
Arrotonda un valore al numero intero più vicino o il numero specificato di decimali.
Codice
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}
Output
5
4
4.56
times
Moltiplica un numero per un altro numero.
Codice
{{ 10 | times: 2 }}
{{ 10 | times: 2.2 }}
{{ 10.1 | times: 2 }}
Output
20
20
20.2
Filtri stringa
I filtri stringa modificano le stringhe.
append
Aggiunge una stringa alla fine di un'altra stringa.
Codice
{{ 'filename' | append: '.js' }}
Output
filename.js
capitalize
Scrive in lettere maiuscole ogni parola in una stringa.
Codice
{{ 'capitalize me' | capitalize }}
Output
Capitalize Me
downcase
Converte una stringa in lettere minuscole.
Codice
{{ 'MIxed Case TExt' | downcase }}
Output
mixed case text
newline_to_br
Inserisce un tag HTML di interruzione di riga <br /> ad ogni interruzione di riga in una stringa.
Codice
{% capture text %}
A
B
C
{% endcapture %}
{{ text | newline_to_br }}
Output
A<br />
B<br />
C<br />
prepend
Antepone una stringa all'inizio di un'altra stringa.
Codice
{{ 'Jane Johnson' | prepend: 'Dr. ' }}
Output
Dr. Jane Johnson
remove
Elimina tutte le ricorrenze di una stringa secondaria da una stringa.
Codice
{{ 'Hello, Dave. How are you, Dave?' | remove: 'Dave' }}
Output
Hello, . How are you, ?
remove_first
Elimina tutte le prime ricorrenze di una stringa secondaria da una stringa.
Codice
{{ 'Hello, Dave. How are you, Dave?' | remove_first: 'Dave' }}
Output
Hello, . How are you, Dave?
replace
Sostituisce tutte le ricorrenze di una stringa con una stringa secondaria.
Codice
{{ 'Hello, Dave. How are you, Dave?' | replace: 'Dave', 'John' }}
Output
Hello, John. How are you, John?
replace_first
Sostituisce la prime ricorrenza di una stringa con una stringa secondaria.
Codice
{{ 'Hello, Dave. How are you, Dave?' | replace_first: 'Dave', 'John' }}
Output
Hello, John. How are you, Dave?
split
Il filtro split richiede una sottostringa come parametro. La sottostringa viene utilizzata come delimitatore per dividere una stringa in una matrice.
Codice
{% 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
Rimuove tutti i tag HTML da una stringa.
Codice
<p>Hello</p>
Output
Hello
strip_newlines
Rimuove tutte le interruzioni di riga da una stringa.
Codice
{% capture text %}
A
B
C
{% endcapture %}
{{ text | strip_newlines }}
Output
ABC
text_to_html
Formatta una stringa di testo normale come HTML semplice. Il testo è codificato in formato HTML, i blocchi di testo separati da una riga vuota verranno suddivisi in tag di paragrafo <p>, le singole interruzioni di riga verranno sostituite con <br> e gli URL verranno convertiti in collegamenti ipertestuali.
Codice
{{ 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>
truncate
Tronca una stringa in un numero specificato di caratteri. I puntini sospensivi (...) sono aggiunti la stringa e sono inclusi nel numero di caratteri.
Codice
{{ 'This is a long run of text.' | truncate: 10 }}
Output
This is...
truncate_words
Tronca una stringa in un numero specificato di parole. I puntini sospensivi (...) sono aggiunti alla stringa troncata.
Codice
{{ 'This is a long run of text.' | truncate_words: 3 }}
Output
This is a...
upcase
Converte una stringa in lettere maiuscole.
Codice
{{ 'MIxed Case TExt' | upcase }}
Output
MIXED CASE TEXT
Filtri tipo
I filtri tipo consentono di convertire i valori di un tipo in altri tipi.
boolean
Tenta di convertire un valore di stringa in un valore booleano. Se il valore è già booleano, verrà restituito invariato. Se il valore non può essere convertito in booleano, verrà restituito null.
Questo filtro accetterà anche on, enabled o sì come true e off, disabled e no come false.
Codice
{{ true | boolean }}
{{ 'false' | boolean }}
{{ 'enabled' | boolean }}
{{ settings['something/enabled'] | boolean | default: false }}
Output
true
false
true
false
decimal
Tenta di convertire un valore di stringa in un numero decimale. Se il valore è già un numero booleano, verrà restituito invariato. Se il valore non può essere convertito in un numero decimale, verrà restituito il valore null.
Codice
{{ 10.1 | decimal }}
{{ '3.14' | decimal }}
{{ 'text' | decimal | default: 3.14 }}
Output
10.1
3.14
3.14
integer
Tenta di convertire un valore di stringa in un numero intero. Se il valore è già un numero intero, verrà restituito invariato. Se il valore non può essere convertito in un numero intero, verrà restituito il valore null.
Codice
{{ 10 | integer }}
{{ '10' | integer }}
{{ '10.1' | integer }}
{{ 'text' | integer | default: 2 }}
Output
10
10
2
string
Tenta di convertire un valore nella sua rappresentazione di stringa. Se il valore è già una stringa, verrà restituito invariato. Se il valore è null, verrà restituito null.
Filtri URL
I filtri URL consentono di creare o estrarre parti di URL.
add_query
Aggiunge un parametro di stringa di query a un URL. Se il parametro è già presente nell'URL, il valore del parametro verrà aggiornato.
Se questo filtro è applicato a un URL assoluto completo, un URL assoluto aggiornato sarà il risultato. Se viene applicato a un percorso, un percorso aggiornato sarà il risultato.
Codice
{{ '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
base
Ottiene l'URL di base di un URL specificato.
Codice
{{ 'https://example.com/path?foo=bar&page=2' | base }}
Output
https://example.com
host
Ottiene la parte host di un URL.
Codice
{{ 'https://example.com/path?foo=bar&page=2' | host }}
Output
example.com
path
Ottiene la parte del percorso di un URL.
Codice
{{ 'https://example.com/path?foo=bar&page=2' | path }}
{{ '/path?foo=bar&page=2' | path }}
Output
/path
/path
path_and_query
Ottiene la parte percorso e query di un URL.
Codice
{{ '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
Visualizza il numero di porta di un URL.
Codice
{{ '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
Rimuove un parametro di stringa di query da un URL. Se il parametro non esiste nell'URL, l'URL verrà restituito invariato.
Se questo filtro è applicato a un URL assoluto completo, un URL assoluto aggiornato sarà il risultato. Se viene applicato a un percorso, un percorso aggiornato sarà il risultato.
Codice
{{ 'https://example.com/path?page=1' | remove_query: 'page' }}
{{ '/path?page=1' | remove_query: 'page' }}
Output
https://example.com/path
/path
scheme
Ottiene la parte dello scherma di un URL.
Codice
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
{{ 'https://example.com/path?foo=bar&page=2' | scheme }}
Output
http
https
Filtri aggiuntivi
Questi filtri offrono utili funzionalità generali.
default
Restituisce un valore predefinito per qualsiasi variabile senza valore assegnato (ovvero, null).
Codice
{{ snippets[Header] | default: 'My Website' }}
Output
<!-- If a snippet with the name Header returns null -->
My Website
file_size
Applicato a un valore del numero che rappresenta una serie di byte, restituisce una dimensione file formattata con un'unità di scala appropriata.
Facoltativamente, è possibile passare un parametro di precisione, per controllare il numero di posizioni decimali nel risultato. La precisione predefinita è 1.
Codice
{{ 10000000 | file_size }}
{{ 2050 | file_size: 0 }}
{{ entity.notes.first.filesize | file_size: 2 }}
Output
9.5 MB
2 KB
207.14 KB
h
Fornisce una rappresentazione HTML di un attributo. Ad esempio, mostrando una rappresentazione HTML della query FetchXML Attributo XML.
Codice
{{ samplequery.xml | h }}
Output
<fetch mapping="logical" count="5000" page="1" returntotalrecordcount="true"> <entity name="contact"> <attribute name="fullname" /> </entity> </fetch>
has_role
Applicato a un utente, restituisce true se l'utente appartiene al ruolo specificato. In caso contrario, restituisce false.
Codice
{% assign is_admin = user | has_role: 'Administrators' %}
{% if is_admin %}
User is an administrator.
{% endif %}
liquid
Esegue il rendering di un codice Liquid. Questo codice avrà accesso al contesto di esecuzione Liquid corrente (variabili, ecc.).
Nota
Questo filtro deve essere utilizzato con prudenza e devono in genere essere applicati solo ai valori sotto controllo esclusivo degli autori del contenuto del sito, o altri utenti che possono considerarsi fidati per scrivere il codice Liquid.
Codice
{{ page.adx_copy | liquid }}