This CL can be used to compare the style of nixpkgs-fmt against other formatters (nixpkgs, alejandra). Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: wpcarro <wpcarro@gmail.com> Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: cynthia <cynthia@tvl.fyi> Reviewed-by: edef <edef@edef.eu> Reviewed-by: eta <tvl@eta.st> Reviewed-by: grfn <grfn@gws.fyi>
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { depot, pkgs, ... }:
 | |
| 
 | |
| let
 | |
|   inherit (depot.users.sterni.nix.html)
 | |
|     __findFile
 | |
|     esc
 | |
|     withDoctype
 | |
|     ;
 | |
| 
 | |
|   exampleDocument = withDoctype (<html> { lang = "en"; } [
 | |
|     (<head> { } [
 | |
|       (<meta> { charset = "utf-8"; } null)
 | |
|       (<title> { } "html.nix example document")
 | |
|       (<link>
 | |
|         {
 | |
|           rel = "license";
 | |
|           href = "https://code.tvl.fyi/about/LICENSE";
 | |
|           type = "text/html";
 | |
|         }
 | |
|         null)
 | |
|       (<style> { } (esc ''
 | |
|         hgroup h2 {
 | |
|           font-weight: normal;
 | |
|         }
 | |
| 
 | |
|         dd {
 | |
|           margin: 0;
 | |
|         }
 | |
|       ''))
 | |
|     ])
 | |
|     (<body> { } [
 | |
|       (<main> { } [
 | |
|         (<hgroup> { } [
 | |
|           (<h1> { } (esc "html.nix"))
 | |
|           (<h2> { } [
 | |
|             (<em> { } "the")
 | |
|             (esc " most cursed HTML DSL ever!")
 | |
|           ])
 | |
|         ])
 | |
|         (<dl> { } [
 | |
|           (<dt> { } [
 | |
|             (esc "Q: Wait, it's all ")
 | |
|             (<a>
 | |
|               {
 | |
|                 href = "https://cl.tvl.fyi/q/hashtag:cursed";
 | |
|               }
 | |
|               (esc "cursed"))
 | |
|             (esc " nix hacks?")
 | |
|           ])
 | |
|           (<dd> { } (esc "A: Always has been. 🔫"))
 | |
|           (<dt> { } (esc "Q: Why does this work?"))
 | |
|           (<dd> { } [
 | |
|             (esc "Because nix ")
 | |
|             (<a>
 | |
|               {
 | |
|                 href = "https://github.com/NixOS/nix/blob/293220bed5a75efc963e33c183787e87e55e28d9/src/libexpr/parser.y#L410-L416";
 | |
|               }
 | |
|               (esc "translates "))
 | |
|             (<a>
 | |
|               {
 | |
|                 href = "https://github.com/NixOS/nix/blob/293220bed5a75efc963e33c183787e87e55e28d9/src/libexpr/lexer.l#L100";
 | |
|               }
 | |
|               (esc "SPATH tokens"))
 | |
|             (esc " like ")
 | |
|             (<code> { } (esc "<nixpkgs>"))
 | |
|             (esc " into calls to ")
 | |
|             (<code> { } (esc "__findFile"))
 | |
|             (esc " in the ")
 | |
|             (<em> { } (esc "current"))
 | |
|             (esc " scope.")
 | |
|           ])
 | |
|         ])
 | |
|       ])
 | |
|     ])
 | |
|   ]);
 | |
| in
 | |
| 
 | |
| pkgs.runCommandNoCC "html.nix.html"
 | |
| {
 | |
|   passAsFile = [ "exampleDocument" ];
 | |
|   inherit exampleDocument;
 | |
|   nativeBuildInputs = [ pkgs.html5validator ];
 | |
| } ''
 | |
|   set -x
 | |
|   test "${esc "<> && \" \'"}" = "<> && " '"
 | |
| 
 | |
|   # slow as hell unfortunately
 | |
|   html5validator "$exampleDocumentPath"
 | |
| 
 | |
|   mv "$exampleDocumentPath" "$out"
 | |
| 
 | |
|   set +x
 | |
| ''
 |