mirror of
				https://git.sr.ht/~tsileo/microblog.pub
				synced 2025-06-05 21:59:23 +02:00 
			
		
		
		
	Generate a basic favicon dynamically
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -5,3 +5,4 @@ __pycache__/ | ||||
| docs/dist/ | ||||
| requirements.txt | ||||
| app/_version.py | ||||
| app/static/favicon.ico | ||||
|   | ||||
| @@ -8,6 +8,7 @@ | ||||
| <link rel="alternate" title="{{ local_actor.display_name}}'s microblog" type="application/json" href="{{ url_for("json_feed") }}" /> | ||||
| <link rel="alternate" href="{{ url_for("rss_feed") }}" type="application/rss+xml" title="{{ local_actor.display_name}}'s microblog"> | ||||
| <link rel="alternate" href="{{ url_for("atom_feed") }}" type="application/atom+xml" title="{{ local_actor.display_name}}'s microblog"> | ||||
| <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> | ||||
| <style> | ||||
| {{ highlight_css }} | ||||
| </style> | ||||
|   | ||||
							
								
								
									
										22
									
								
								app/utils/favicon.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/utils/favicon.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| import sass  # type: ignore | ||||
| from PIL import Image | ||||
| from PIL import ImageColor | ||||
| from PIL import ImageDraw | ||||
|  | ||||
|  | ||||
| def _get_primary_color() -> str: | ||||
|     """Small hack to get the theme primary color.""" | ||||
|     compiled = sass.compile( | ||||
|         string=( | ||||
|             "@import 'app/scss/main.scss';\n" | ||||
|             "#favicon-color { color: $primary-color; }" | ||||
|         ) | ||||
|     ) | ||||
|     return compiled[len(compiled) - 11 : -4] | ||||
|  | ||||
|  | ||||
| def build_favicon() -> None: | ||||
|     """Builds a basic favicon with the theme primary color.""" | ||||
|     im = Image.new("RGB", (32, 32), ImageColor.getrgb(_get_primary_color())) | ||||
|     ImageDraw.Draw(im) | ||||
|     im.save("app/static/favicon.ico") | ||||
							
								
								
									
										
											BIN
										
									
								
								docs/static/favicon.ico
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/static/favicon.ico
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 326 B | 
							
								
								
									
										3
									
								
								docs/templates/layout.html
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								docs/templates/layout.html
									
									
									
									
										vendored
									
									
								
							| @@ -74,7 +74,8 @@ footer { | ||||
|     color: #555; | ||||
| } | ||||
| </style> | ||||
| <link rel="stylesheet" href="static/codehilite.css" type="text/css" /> | ||||
| <link rel="stylesheet" href="/static/codehilite.css" type="text/css" /> | ||||
| <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> | ||||
| </head> | ||||
| <body> | ||||
| <div id="main"> | ||||
|   | ||||
							
								
								
									
										3
									
								
								tasks.py
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								tasks.py
									
									
									
									
									
								
							| @@ -44,6 +44,9 @@ def lint(ctx): | ||||
| @task | ||||
| def compile_scss(ctx, watch=False): | ||||
|     # type: (Context, bool) -> None | ||||
|     from app.utils.favicon import build_favicon | ||||
|  | ||||
|     build_favicon() | ||||
|     theme_file = Path("data/_theme.scss") | ||||
|     if not theme_file.exists(): | ||||
|         theme_file.write_text("// override vars for theming here") | ||||
|   | ||||
		Reference in New Issue
	
	Block a user