chore: Significantly restructure folder layout
This moves the various projects from "type-based" folders (such as "services" or "tools") into more appropriate semantic folders (such as "nix", "ops" or "web"). Deprecated projects (nixcon-demo & gotest) which only existed for testing/demonstration purposes have been removed. (Note: *all* builds are broken with this commit)
This commit is contained in:
		
							parent
							
								
									e52eed3cd4
								
							
						
					
					
						commit
						03bfe08e1d
					
				
					 110 changed files with 1 additions and 998 deletions
				
			
		| 
						 | 
				
			
			@ -1,48 +0,0 @@
 | 
			
		|||
{-# LANGUAGE RecordWildCards #-}
 | 
			
		||||
 | 
			
		||||
module RSS
 | 
			
		||||
  ( renderFeed
 | 
			
		||||
    )
 | 
			
		||||
where
 | 
			
		||||
 | 
			
		||||
import BlogStore
 | 
			
		||||
import Data.Maybe (fromJust)
 | 
			
		||||
import qualified Data.Text as T
 | 
			
		||||
import Data.Time (UTCTime (..), getCurrentTime, secondsToDiffTime)
 | 
			
		||||
import Network.URI (URI, parseURI)
 | 
			
		||||
import Text.RSS
 | 
			
		||||
 | 
			
		||||
createChannel :: UTCTime -> [ChannelElem]
 | 
			
		||||
createChannel now =
 | 
			
		||||
  [ Language "en",
 | 
			
		||||
    Copyright "Vincent Ambo",
 | 
			
		||||
    WebMaster "mail@tazj.in",
 | 
			
		||||
    ChannelPubDate now
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
createRSS :: UTCTime -> [Item] -> RSS
 | 
			
		||||
createRSS t =
 | 
			
		||||
  let link = fromJust $ parseURI "https://tazj.in"
 | 
			
		||||
   in RSS "tazjin's blog" link "tazjin's blog feed" (createChannel t)
 | 
			
		||||
 | 
			
		||||
createItem :: Entry -> Item
 | 
			
		||||
createItem Entry {..} =
 | 
			
		||||
  [ Title "tazjin's blog",
 | 
			
		||||
    Link $ entryLink entryId,
 | 
			
		||||
    Description $ T.unpack text,
 | 
			
		||||
    PubDate $ UTCTime edate $ secondsToDiffTime 0
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
entryLink :: EntryId -> URI
 | 
			
		||||
entryLink i =
 | 
			
		||||
  let url = "http://tazj.in/" ++ "/" ++ show i
 | 
			
		||||
   in fromJust $ parseURI url
 | 
			
		||||
 | 
			
		||||
createItems :: [Entry] -> [Item]
 | 
			
		||||
createItems = map createItem
 | 
			
		||||
 | 
			
		||||
createFeed :: [Entry] -> IO RSS
 | 
			
		||||
createFeed e = getCurrentTime >>= (\t -> return $ createRSS t $ createItems e)
 | 
			
		||||
 | 
			
		||||
renderFeed :: [Entry] -> IO String
 | 
			
		||||
renderFeed e = fmap (showXML . rssToXML) (createFeed e)
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue