From 689fe2613765de71101214a482c928cfdb1b2be6 Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Thu, 2 Jan 2025 01:30:23 +0200 Subject: Clean up some naming usages and things --- htmtl/modifiers/__init__.py | 1 + htmtl/modifiers/truncate.py | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 htmtl/modifiers/__init__.py create mode 100644 htmtl/modifiers/truncate.py (limited to 'htmtl/modifiers') diff --git a/htmtl/modifiers/__init__.py b/htmtl/modifiers/__init__.py new file mode 100644 index 0000000..f200bbd --- /dev/null +++ b/htmtl/modifiers/__init__.py @@ -0,0 +1 @@ +from .truncate import Truncate \ No newline at end of file diff --git a/htmtl/modifiers/truncate.py b/htmtl/modifiers/truncate.py new file mode 100644 index 0000000..bac2862 --- /dev/null +++ b/htmtl/modifiers/truncate.py @@ -0,0 +1,16 @@ +from typing import Any + +from ..modifier import Modifier, modifier_name + + +@modifier_name("truncate") +class Truncate(Modifier): + def modify(self, value: Any, opts: list[Any]) -> Any: + if isinstance(value, str) and len(opts) > 0: + if all([x in "1234567890" for x in opts[0]]): + char_limit = int(opts[0]) + + if len(value) > char_limit: + return f"{value[:char_limit - 3]}..." + + return value -- cgit v1.2.3