Test foobar filter

This commit is contained in:
Feodor Fitsner 2025-03-04 10:54:39 -08:00
parent 7a20a3a195
commit 7734dfa421
4 changed files with 10 additions and 37 deletions

View File

@ -28,5 +28,6 @@
"pwa_theme_color": "#0175C2", "pwa_theme_color": "#0175C2",
"split_per_abi": false, "split_per_abi": false,
"options": null, "options": null,
"pyproject": null "pyproject": null,
"_extensions": ["cookiecutter_extensions.FoobarExtension"]
} }

View File

@ -0,0 +1,7 @@
from jinja2.ext import Extension
class FoobarExtension(Extension):
def __init__(self, environment):
super(FoobarExtension, self).__init__(environment)
environment.filters["foobar"] = lambda v: v * 2

View File

@ -1,35 +0,0 @@
from typing import Any, Optional
import cookiecutter.utils
def get_pyproject(pyproject_toml: Any, setting: Optional[str] = None):
if not setting:
return pyproject_toml
d = pyproject_toml
for k in setting.split("."):
d = d.get(k)
if d is None:
return None
return d
def my_custom_function(value):
"""Example function: returns the value in uppercase"""
return value.upper()
def another_function(value1, value2):
"""Concatenates two values with a space"""
return f"{value1} {value2}"
# Inject custom functions into Jinja's global context
def add_custom_filters(cookiecutter):
cookiecutter.globals["my_custom_function"] = my_custom_function
cookiecutter.globals["another_function"] = another_function
# Run after project is generated
add_custom_filters(cookiecutter)

View File

@ -26,7 +26,7 @@ loading_screen: {{ loading_screen }}
loading_screen_text: {{ loading_screen_text }} loading_screen_text: {{ loading_screen_text }}
Uppercase Example: {{ my_custom_function("abc") }} Uppercase Example: {{ 2 | foobar }}
*/ */
{% for dep in cookiecutter.flutter.dependencies %} {% for dep in cookiecutter.flutter.dependencies %}