diff --git a/src/html/context.rs b/src/html/context.rs
index 79148b0..26e2478 100644
--- a/src/html/context.rs
+++ b/src/html/context.rs
@@ -118,6 +118,21 @@ pub trait Contextual: LangId {
/// Recupera un parámetro como [`Option`].
fn param(&self, key: &'static str) -> Option<&T>;
+ /// Devuelve el parámetro clonado o el **valor por defecto del tipo** (`T::default()`).
+ fn param_or_default(&self, key: &'static str) -> T {
+ self.param::(key).cloned().unwrap_or_default()
+ }
+
+ /// Devuelve el parámetro clonado o un **valor por defecto** si no existe.
+ fn param_or(&self, key: &'static str, default: T) -> T {
+ self.param::(key).cloned().unwrap_or(default)
+ }
+
+ /// Devuelve el parámetro clonado o el **valor evaluado** por la función `f` si no existe.
+ fn param_or_else T>(&self, key: &'static str, f: F) -> T {
+ self.param::(key).cloned().unwrap_or_else(f)
+ }
+
/// Devuelve el Favicon de los recursos del contexto.
fn favicon(&self) -> Option<&Favicon>;