global metadata
This commit is contained in:
		
							parent
							
								
									0ab1096409
								
							
						
					
					
						commit
						8cb15d3960
					
				
							
								
								
									
										15
									
								
								site.hs
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								site.hs
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -151,6 +151,12 @@ checkedSubstitute t v = do
 | 
			
		|||
  --null es `unless` error "template substitution problems"
 | 
			
		||||
  pure txt
 | 
			
		||||
 | 
			
		||||
-- | Add global information to page metadata for rendering (at this point just the url base)
 | 
			
		||||
addGlobalMeta :: Y.Value -> Site Y.Value
 | 
			
		||||
addGlobalMeta (Y.Object m) = do
 | 
			
		||||
  r <- fromString <$> use urlBase
 | 
			
		||||
  pure . Y.Object $ KM.insert "root" r m
 | 
			
		||||
 | 
			
		||||
-- | Render a page using the current template.
 | 
			
		||||
installPage :: FilePath -> PageInfo -> Site ()
 | 
			
		||||
installPage mount pi = do
 | 
			
		||||
| 
						 | 
				
			
			@ -160,12 +166,13 @@ installPage mount pi = do
 | 
			
		|||
  fixedUrlDoc <-
 | 
			
		||||
    walkURLs (processLink $ pi ^. pagePath . to takeDirectory) $ pi ^. pageDoc
 | 
			
		||||
  checkTarget file
 | 
			
		||||
  body <- io . runIOorExplode $ writeHtml5String htmlWriteOpts fixedUrlDoc
 | 
			
		||||
  let Y.Object meta' = pi ^. pageMeta
 | 
			
		||||
      meta = Y.Object $ KM.insert "body" (Y.String body) meta'
 | 
			
		||||
  meta <- addGlobalMeta meta
 | 
			
		||||
  io $ do
 | 
			
		||||
    putStrLn $ "P -> " ++ file
 | 
			
		||||
    makeDirectories file
 | 
			
		||||
    body <- runIOorExplode $ writeHtml5String htmlWriteOpts fixedUrlDoc
 | 
			
		||||
    let Y.Object meta' = pi ^. pageMeta
 | 
			
		||||
        meta = Y.Object $ KM.insert "body" (Y.String body) meta'
 | 
			
		||||
    checkedSubstitute templ meta >>= TIO.writeFile file
 | 
			
		||||
  installPageRedirects mount pi
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -301,7 +308,7 @@ makeTagMeta tag = do
 | 
			
		|||
  htagMeta <- makeHTagMeta tag
 | 
			
		||||
  subtagsMeta <- Y.array <$> traverse makeHTagLinkMeta subtags
 | 
			
		||||
  pagesMeta <- Y.array <$> traverse makePageLinkMeta taggedPages
 | 
			
		||||
  pure $
 | 
			
		||||
  addGlobalMeta $
 | 
			
		||||
    Y.object
 | 
			
		||||
      [("htag", htagMeta), ("subtags", subtagsMeta), ("pages", pagesMeta)]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,6 +7,6 @@
 | 
			
		|||
    All cards {{#htag}} » {{tag}}{{/htag}}
 | 
			
		||||
  {{/htag}}
 | 
			
		||||
  </title>
 | 
			
		||||
  <link rel="stylesheet" href="{{root}}/style.css" />
 | 
			
		||||
  <link rel="stylesheet" href="{{root}}/fonts.css" />
 | 
			
		||||
  <link rel="stylesheet" href="{{root}}style.css" />
 | 
			
		||||
  <link rel="stylesheet" href="{{root}}fonts.css" />
 | 
			
		||||
</head>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue