Advanced Datasource Options¶
Ekit allows advanced configuration of datasources directly in the YAML frontmatter. This enables dynamic sorting, filtering, and pagination without writing backend code.
Example¶
---
layout: default
datasources:
acteurs:
from: "acteurs"
sort:
field: "{{ternary (eq query.type 'acteurs') 'nom' 'titre'}}"
dir: "{{ternary (eq query.s 'desc') 'desc' 'asc'}}"
filter:
field: "{{ternary (eq query.type 'acteurs') 'nom' 'titre'}}"
op: "contains"
value: "{{query.q}}"
cursor: "{{query.cursor.oid}}"
limit: 9
---
sort¶
Defines how results are ordered.
sort:
field: "nom"
dir: "asc"
Parameters¶
- field: field used for sorting
- dir:
ascordesc
Dynamic example¶
sort:
field: "{{ternary (eq query.type 'acteurs') 'nom' 'titre'}}"
dir: "{{ternary (eq query.s 'desc') 'desc' 'asc'}}"
filter¶
Filters results before rendering.
filter:
field: "nom"
op: "contains"
value: "{{query.q}}"
Parameters¶
- field: field to filter
- op: operator
- value: value to compare
Example¶
filter:
field: "{{ternary (eq query.type 'acteurs') 'nom' 'titre'}}"
op: "contains"
value: "{{query.q}}"
Common operators¶
containseqnegtgteltltein
cursor¶
Enables cursor-based pagination.
cursor: "{{query.cursor.oid}}"
Used for: - infinite scroll - "load more" UX - large datasets
limit¶
Limits number of returned records.
limit: 9
Often used with cursor.
Request-driven behavior¶
All datasource options support dynamic expressions.
Example:
?type=acteurs&q=marie&s=desc
Will:
- filter records where nom contains "marie"
- sort descending
- adapt field dynamically
Why use advanced datasources¶
- No backend code needed
- Fully dynamic pages
- Works with query parameters
- Supports large datasets efficiently
Related¶
- Template syntax
- Query parameters
- Datasources basics