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

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

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

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

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 }}

Vedi anche