betty.jinja2.filter module

Provide Betty’s default Jinja2 filters.

async betty.jinja2.filter.filter_file(context: Context, file: File) str[source]

Preprocess a file for use in a page.

Return type:

str

Returns:

The public path to the preprocessed file. This can be used on a web page.

Parameters:
async betty.jinja2.filter.filter_flatten(values_of_values: Iterable[Iterable[betty.jinja2.filter._T]]) AsyncIterator[betty.jinja2.filter._T][source]

Flatten an iterable of iterables into a single iterable.

Parameters:

values_of_values (typing.Iterable[typing.Iterable[typing.TypeVar(_T)]])

Return type:

typing.AsyncIterator[typing.TypeVar(_T)]

betty.jinja2.filter.filter_format_datey(context: jinja2.runtime.Context, datey: betty.locale.Date | betty.locale.DateRange) str[source]

Format a date or a date range.

Parameters:
Return type:

str

betty.jinja2.filter.filter_format_degrees(degrees: int) str[source]

Format geographic coordinates.

Parameters:

degrees (int)

Return type:

str

betty.jinja2.filter.filter_hashid(source: str) str[source]

Create a hash ID.

Parameters:

source (str)

Return type:

str

async betty.jinja2.filter.filter_image(context: jinja2.runtime.Context, file: betty.model.ancestry.File, width: int | None = None, height: int | None = None) str[source]

Preprocess an image file for use in a page.

Return type:

str

Returns:

The public path to the preprocessed file. This can be embedded in a web page.

Parameters:
betty.jinja2.filter.filter_json(data: Any, indent: int | None = None) str[source]

Convert a value to a JSON string.

Parameters:
Return type:

str

betty.jinja2.filter.filter_localize(context: jinja2.runtime.Context, localizable: betty.locale.Localizable) str[source]

Localize a value using the context’s current localizer.

Parameters:
Return type:

str

async betty.jinja2.filter.filter_map(context: jinja2.runtime.Context, values: Iterable[Any], *args: Any, **kwargs: Any) Any[source]

Map an iterable’s values.

This mimics Jinja2’s built-in map filter, but allows macros as callbacks.

Parameters:
Return type:

typing.Any

betty.jinja2.filter.filter_negotiate_dateds(context: jinja2.runtime.Context, dateds: Iterable[betty.model.ancestry.Dated], date: betty.locale.Date | betty.locale.DateRange | None) betty.model.ancestry.Dated | None[source]

Try to find an object whose date falls in the given date.

Parameters:
Return type:

betty.model.ancestry.Dated | None

betty.jinja2.filter.filter_negotiate_localizeds(context: jinja2.runtime.Context, localizeds: Iterable[betty.locale.Localized]) betty.locale.Localized | None[source]

Try to find an object whose locale matches the context’s current locale.

Parameters:
Return type:

betty.locale.Localized | None

betty.jinja2.filter.filter_paragraphs(eval_ctx: jinja2.nodes.EvalContext, text: str) str | markupsafe.Markup[source]

Convert newlines to <p> and <br> tags.

Taken from http://jinja.pocoo.org/docs/2.10/api/#custom-filters.

Parameters:
Return type:

str | markupsafe.Markup

betty.jinja2.filter.filter_public_css(context: jinja2.runtime.Context, public_path: str) None[source]

Add a CSS file to the current page.

Parameters:
Return type:

None

betty.jinja2.filter.filter_public_js(context: jinja2.runtime.Context, public_path: str) None[source]

Add a JavaScript file to the current page.

Parameters:
Return type:

None

betty.jinja2.filter.filter_select_dateds(context: jinja2.runtime.Context, dateds: Iterable[betty.model.ancestry.Dated], date: betty.locale.Date | betty.locale.DateRange | None) Iterator[betty.model.ancestry.Dated][source]

Select all objects whose date falls in the given date.

Parameters:
Return type:

typing.Iterator[betty.model.ancestry.Dated]

betty.jinja2.filter.filter_select_localizeds(context: jinja2.runtime.Context, localizeds: Iterable[betty.locale.Localized], include_unspecified: bool = False) Iterable[betty.locale.Localized][source]

Select all objects whose locale matches the context’s current locale.

Parameters:
Return type:

typing.Iterable[betty.locale.Localized]

betty.jinja2.filter.filter_sort_localizeds(context: jinja2.runtime.Context, localizeds: Iterable[betty.locale.Localized], localized_attribute: str, sort_attribute: str) Iterable[betty.locale.Localized][source]

Sort localized objects.

Parameters:
Return type:

typing.Iterable[betty.locale.Localized]

betty.jinja2.filter.filter_static_url(context: jinja2.runtime.Context, resource: Any, absolute: bool = False) str[source]

Generate a static URL for a static resource.

Parameters:
Return type:

str

async betty.jinja2.filter.filter_unique(values: Iterable[betty.jinja2.filter._T]) AsyncIterator[betty.jinja2.filter._T][source]

Iterate over an iterable of values and only yield those values that have not been yielded before.

Parameters:

values (typing.Iterable[typing.TypeVar(_T)])

Return type:

typing.AsyncIterator[typing.TypeVar(_T)]

betty.jinja2.filter.filter_url(context: jinja2.runtime.Context, resource: Any, media_type: str | None = None, *args: Any, locale: str | babel.core.Locale | None = None, **kwargs: Any) str[source]

Generate a localized URL for a localizable resource.

Parameters:
Return type:

str