@@ -27,7 +27,6 @@ def define_env(env):
2727 - macro: a decorator function, to declare a macro.
2828 """
2929
30-
3130 @env .macro
3231 def include_file (filename , start_line = 0 , end_line = None , glue = '' ):
3332 """
@@ -121,6 +120,8 @@ def version_to_anchor(version : str = '') -> str:
121120
122121 @env .macro
123122 def release_notes_filters (header : str , categories : list [str ]) -> str :
123+ validate_categories (categories )
124+
124125 filters = "" .join (
125126 ["""
126127 <div
@@ -165,6 +166,8 @@ def release_notes_filters(header : str, categories : list[str]) -> str:
165166
166167 @env .macro
167168 def release_note_entry_begin (header : str , date : str , categories : list [str ]) -> str :
169+ validate_categories (categories )
170+
168171 category_badges = "" .join (
169172 [
170173 """
@@ -189,3 +192,12 @@ def release_note_entry_end() -> str:
189192
190193 def slugify (text : str ) -> str :
191194 return text .lower ().replace (' ' , '-' )
195+
196+ def validate_categories (categories : list [str ]) -> None :
197+ available_categories = ['Headless' , 'Experience' , 'Commerce' , 'LTS Update' , 'New feature' ]
198+
199+ for category in categories :
200+ if category not in available_categories :
201+ raise ValueError (
202+ "Unknown category: {category}. Available categories are: {available_categories}" .format (category = category , available_categories = " " .join (available_categories ))
203+ )
0 commit comments