Coverage for src/lektor_ng/types/special.py: 70%
23 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-02 20:38 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-08-02 20:38 +0000
1from lektor_ng.types.primitives import SingleInputType
2from lektor_ng.utils import Url, slugify
5class SortKeyType(SingleInputType):
6 widget = "integer"
8 def value_from_raw(self, raw):
9 if raw.value is None:
10 return raw.missing_value("Missing sort key")
11 try:
12 return int(raw.value.strip())
13 except ValueError:
14 return raw.bad_value("Bad sort key value")
17class SlugType(SingleInputType):
18 widget = "slug"
20 def value_from_raw(self, raw):
21 if raw.value is None:
22 return raw.missing_value("Missing slug")
23 return slugify(raw.value)
26class UrlType(SingleInputType):
27 widget = "url"
29 def value_from_raw(self, raw):
30 if raw.value is None:
31 return raw.missing_value("Missing URL")
32 return Url.from_string(raw.value)