💾 Archived View for gemini.spam.works › users › emery › generate-gemini.dhall captured on 2022-01-08 at 23:12:43.
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
let Prelude = https://raw.githubusercontent.com/dhall-lang/dhall-lang/v20.2.0/Prelude/package.dhall let XML = Prelude.XML let Atom = /home/repo/dhall-atom/package.dhall let Article = ./article.dhall let gemlog = ./gemlog.dhall let baseUrl = "gemini.spam.works/~emery" let feed = Atom.Feed::{ , title = Atom.text "~emery" , authors = [ Atom.Person::{ name = "Emery" } ] , links = [ Atom.Link::{ , href = "gemini://${baseUrl}/" , hreflang = Some "en" , type = Some "text/gemini" } , Atom.Link::{ , href = "https://${baseUrl}/" , hreflang = Some "en" , type = Some "text/html" } , (Atom.Link.self "gemini://${baseUrl}/feed.atom") with type = Some "application/atom+xml" , (Atom.Link.self "https://${baseUrl}/feed.atom") with type = Some "application/atom+xml" ] , id = "urn:uuid:1dfa135b-eca3-46dd-aae0-f4570c89565d" , updated = Atom.Date.raw env:ATOM_DATE as Text , generator = Some Atom.Generator::{ , uri = Some "gemini://gemini.spam.works/~/emery/generate-gemini.dhall" , text = "custom Dhall generator" } , entries = Prelude.List.map Article.Type Atom.Entry.Type ( λ(article : Article.Type) → let gmiLink = "gemini://${baseUrl}/${article.file}" in Atom.Entry::{ , title = Atom.text article.title , updated = article.updated , summary = Prelude.Optional.map Text Atom.TextConstruct.Type Atom.text article.summary , links = [ Atom.Link::{ type = Some "text/gemini", href = gmiLink } , Atom.Link::{ , href = "https://${baseUrl}/${article.file}" , type = Some "text/html" } ] , id = gmiLink , contents = [ Atom.Content::{ , type = "text/gemini" , body = XML.text article.text } ] } ) gemlog } in Prelude.List.map Article.Type (Prelude.Map.Entry Text Text) ( λ(article : Article.Type) → { mapKey = article.file , mapValue = merge { Some = λ(mimeType : Text) → article.text , None = '' # ${article.title} ${article.text} '' } article.mimeType } ) gemlog # toMap { `atom.feed` = Atom.Feed.render feed , `.molly` = '' [MimeOverrides] ".dhall$" = "text/x-dhall" '' ++ Prelude.Text.concatMap Article.Type ( λ(article : Article.Type) → merge { Some = λ(mimeType : Text) → '' "${article.file}$" = "${mimeType}" '' , None = "" } article.mimeType ) gemlog , `index.gmi` = '' # ~emery ## Code => https://git.sr.ht/~ehmry => https://github.com/ehmry ## Gemlog => atom.feed ${Prelude.Text.concatMap Article.Type ( λ(article : Article.Type) → "=> ${article.file}" ++ '' ${Atom.Date.show article.updated} - ${article.title} '' ) gemlog} ## Contact => tox:DF0AC9107E0A30E7201C6832B017AC836FBD1EDAC390EE99B68625D73C3FD929FB47F1872CA4 Tox '' }