Add jinja_filters.make_attributes.
Actually it's a function but not a filter. For creating html attributes out of a dict.
This commit is contained in:
		
							parent
							
								
									c185ca6bf7
								
							
						
					
					
						commit
						ae6ab72536
					
				
					 2 changed files with 9 additions and 1 deletions
				
			
		|  | @ -36,8 +36,9 @@ site.jinja_env.lstrip_blocks = True | ||||||
| site.jinja_env.filters['bytestring'] = jinja_filters.bytestring | site.jinja_env.filters['bytestring'] = jinja_filters.bytestring | ||||||
| site.jinja_env.filters['file_link'] = jinja_filters.file_link | site.jinja_env.filters['file_link'] = jinja_filters.file_link | ||||||
| site.jinja_env.filters['sort_tags'] = jinja_filters.sort_tags | site.jinja_env.filters['sort_tags'] = jinja_filters.sort_tags | ||||||
| site.jinja_env.filters['timestamp_to_naturaldate'] = jinja_filters.timestamp_to_naturaldate |  | ||||||
| site.jinja_env.filters['timestamp_to_8601'] = jinja_filters.timestamp_to_8601 | site.jinja_env.filters['timestamp_to_8601'] = jinja_filters.timestamp_to_8601 | ||||||
|  | site.jinja_env.filters['timestamp_to_naturaldate'] = jinja_filters.timestamp_to_naturaldate | ||||||
|  | site.jinja_env.globals['make_attributes'] = jinja_filters.make_attributes | ||||||
| site.debug = True | site.debug = True | ||||||
| 
 | 
 | ||||||
| P = etiquette.photodb.PhotoDB() | P = etiquette.photodb.PhotoDB() | ||||||
|  |  | ||||||
|  | @ -18,6 +18,13 @@ def file_link(photo, short=False): | ||||||
|     basename = jinja2.filters.do_urlencode(photo.basename) |     basename = jinja2.filters.do_urlencode(photo.basename) | ||||||
|     return f'/file/{photo.id}/{basename}' |     return f'/file/{photo.id}/{basename}' | ||||||
| 
 | 
 | ||||||
|  | def make_attributes(*booleans, **keyvalues): | ||||||
|  |     keyvalues = {key: value for (key, value) in keyvalues.items() if value is not None} | ||||||
|  |     attributes = [f'{key}="{jinja2.filters.escape(value)}"' for (key, value) in keyvalues.items()] | ||||||
|  |     attributes.extend(booleans) | ||||||
|  |     attributes = ' '.join(attributes) | ||||||
|  |     return attributes | ||||||
|  | 
 | ||||||
| def sort_tags(tags): | def sort_tags(tags): | ||||||
|     tags = sorted(tags, key=lambda x: x.name) |     tags = sorted(tags, key=lambda x: x.name) | ||||||
|     return tags |     return tags | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue