forked from fediversity/fediversity
		
	make template overrides take final and prev
This commit is contained in:
		
							parent
							
								
									1fe519c838
								
							
						
					
					
						commit
						d0c7f1cad1
					
				
					 3 changed files with 28 additions and 32 deletions
				
			
		|  | @ -9,14 +9,12 @@ in | |||
|   collections.news.type = cfg.content-types.article; | ||||
| 
 | ||||
|   pages.index = { config, link, ... }: { | ||||
|     title = "Fediversity"; | ||||
|     title = "Welcome to the Fediversity project"; | ||||
|     description = "Fediversity web site"; | ||||
|     summary = '' | ||||
|       This web site hosts up-to-date information about the the NGI Zero Fediversity project. | ||||
|     ''; | ||||
|     body = '' | ||||
|       # Welcome to the Fediversity project | ||||
| 
 | ||||
|       ${pages.fediversity.summary} | ||||
| 
 | ||||
|       [Learn more about Fediversity](${link pages.fediversity}) | ||||
|  | @ -61,11 +59,7 @@ in | |||
|       } | ||||
|     ''; | ||||
|     outputs.html = (cfg.templates.html.page config).override { | ||||
|       html.body.content = lib.mkForce [ | ||||
|         # don't show the page title as a heading | ||||
|         (cfg.menus.main.outputs.html config) | ||||
|         (cfg.templates.html.markdown { inherit (config) name body; }) | ||||
|       ]; | ||||
|       html.head.title.text = "Fediversity"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -8,7 +8,11 @@ rec { | |||
|     result // { | ||||
|       override = new: | ||||
|         let | ||||
|           base' = lib.recursiveUpdate base new; | ||||
|           base' = | ||||
|             if lib.isFunction new | ||||
|             then lib.recursiveUpdate base (new base' base) | ||||
|             else | ||||
|               lib.recursiveUpdate base new; | ||||
|           result' = g base'; | ||||
|         in | ||||
|         result' // { | ||||
|  |  | |||
|  | @ -27,28 +27,26 @@ in | |||
|       }; | ||||
|     }; | ||||
|     config.name = lib.slug config.title; | ||||
|     config.outputs.html = lib.mkForce ((cfg.templates.html.page config).override { | ||||
|       html = { | ||||
|         # TODO: make authors always a list | ||||
|         head.meta.authors = if lib.isList config.author then config.author else [ config.author ]; | ||||
|         body.content = lib.mkForce [ | ||||
|           (cfg.menus.main.outputs.html config) | ||||
|           { | ||||
|             section = { | ||||
|               heading = { | ||||
|                 # TODO: i18n support | ||||
|                 # TODO: structured dates | ||||
|                 before = [{ p.content = "Published ${config.date}"; }]; | ||||
|                 content = config.title; | ||||
|                 after = [{ p.content = "Written by ${config.author}"; }]; | ||||
|               }; | ||||
|               content = [ | ||||
|                 (cfg.templates.html.markdown { inherit (config) name body; }) | ||||
|               ]; | ||||
|             }; | ||||
|           } | ||||
|         ]; | ||||
|       }; | ||||
|     }); | ||||
|     config.outputs.html = lib.mkForce | ||||
|       ((cfg.templates.html.page config).override (final: prev: { | ||||
|         html = { | ||||
|           # TODO: make authors always a list | ||||
|           head.meta.authors = if lib.isList config.author then config.author else [ config.author ]; | ||||
|           body.content = with lib; map | ||||
|             (e: | ||||
|               if isAttrs e && e ? section | ||||
|               then | ||||
|                 recursiveUpdate e | ||||
|                   { | ||||
|                     section.heading = { | ||||
|                       before = [{ p.content = "Published ${config.date}"; }]; | ||||
|                       after = [{ p.content = "Written by ${config.author}"; }]; | ||||
|                     }; | ||||
|                   } | ||||
|               else e | ||||
|             ) | ||||
|             prev.html.body.content; | ||||
|         }; | ||||
|       })); | ||||
|   }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Valentin Gagarin
							Valentin Gagarin