Shuffles around the nginx locations that are served to ensure that all static content will be served from tazj.in/static (including for the blog).
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # This creates the static files that make up my blog from the Markdown
 | |
| # files in this repository.
 | |
| #
 | |
| # All blog posts are rendered from Markdown by cheddar.
 | |
| { pkgs, lib, ... }@args:
 | |
| 
 | |
| with pkgs.nix.yants;
 | |
| 
 | |
| let
 | |
|   # Type definition for a single blog post.
 | |
|   post = struct "blog-post" {
 | |
|     key = string; #
 | |
|     title = string;
 | |
|     date = int;
 | |
| 
 | |
|     # Path to the Markdown file containing the post content.
 | |
|     content = path;
 | |
| 
 | |
|     # Should this post be included in the index? (defaults to true)
 | |
|     listed = option bool;
 | |
| 
 | |
|     # Is this a draft? (adds a banner indicating that the link should
 | |
|     # not be shared)
 | |
|     draft = option bool;
 | |
| 
 | |
|     # Previously each post title had a numeric ID. For these numeric
 | |
|     # IDs, redirects are generated so that old URLs stay compatible.
 | |
|     oldKey = option string;
 | |
|   };
 | |
| 
 | |
|   posts = list post (import ./posts.nix);
 | |
|   fragments = import ./fragments.nix args;
 | |
| 
 | |
|   rendered = pkgs.third_party.runCommandNoCC "tazjins-blog" {} ''
 | |
|     mkdir -p $out
 | |
| 
 | |
|     ${lib.concatStringsSep "\n" (map (post:
 | |
|       "cp ${fragments.renderPost post} $out/${post.key}.html"
 | |
|     ) posts)}
 | |
|   '';
 | |
| in {
 | |
|   inherit post posts rendered;
 | |
|   static = ./static;
 | |
| }
 |