gemini archive file gen
This commit is contained in:
parent
a394cb0165
commit
301f394066
26
Shakefile.hs
26
Shakefile.hs
|
@ -158,7 +158,10 @@ buildRules = do
|
|||
if fileExists
|
||||
then copyFileChanged (srcDir </> asset) out
|
||||
else genAsciiAction getPost out
|
||||
".gmi" -> genGeminiAction getPost out
|
||||
".gmi" ->
|
||||
if out == siteDir </> "gemini" </> "archive.gmi"
|
||||
then buildGeminiArchive getPosts out
|
||||
else genGeminiAction getPost out
|
||||
".jpg" -> compressImage asset
|
||||
".jpeg" -> compressImage asset
|
||||
".gif" -> compressImage asset
|
||||
|
@ -197,6 +200,25 @@ buildArchive getPosts getTemplate out = do
|
|||
]
|
||||
writeFile' out (toS htmlContent)
|
||||
|
||||
buildGeminiArchive
|
||||
:: (() -> Action [BlogPost])
|
||||
-> [Char] -> Action ()
|
||||
buildGeminiArchive getPosts out = do
|
||||
posts <- fmap sortByPostDate $ getPosts ()
|
||||
need $ map postSrc posts
|
||||
let
|
||||
title :: Text
|
||||
title = "# Posts"
|
||||
articleList = toS $ T.intercalate "\n" $ map postGeminiInfo posts
|
||||
fileContent = title <> "\n\n" <> articleList
|
||||
writeFile' out (toS fileContent)
|
||||
|
||||
postGeminiInfo :: BlogPost -> Text
|
||||
postGeminiInfo bp =
|
||||
"=> " <> (toS (postUrl bp -<.> ".gmi")) <> " " <> date <> ": " <> (postTitle bp)
|
||||
where
|
||||
date = T.takeWhile (/= ' ') (postDate bp)
|
||||
|
||||
postInfo :: BlogPost -> Text
|
||||
postInfo bp =
|
||||
"| " <> date <> " | " <> orglink <> " |"
|
||||
|
@ -390,7 +412,7 @@ allGeminiAction :: Action ()
|
|||
allGeminiAction = do
|
||||
allOrgFiles <- getDirectoryFiles srcDir ["//*.org"]
|
||||
let allGeminiFiles = map (("gemini" </>) . (-<.> "gmi")) allOrgFiles
|
||||
need (map build allGeminiFiles)
|
||||
need (map build $ allGeminiFiles <> ["gemini" </> "archive.gmi"])
|
||||
|
||||
compressImage :: FilePath -> Action ()
|
||||
compressImage img = do
|
||||
|
|
|
@ -5,4 +5,4 @@ cd "$(git rev-parse --show-toplevel)" || exit 1
|
|||
src="$1"
|
||||
dst="$2"
|
||||
|
||||
./engine/org2gemini_step1.sh "$src" | perl -pe 's#\[\[([^]]*)\]\[([^]]*)\]\]#\n=> $1 $2#g;s#^\* *$##;s#=> file:#=> #g' > "$dst"
|
||||
./engine/org2gemini_step1.sh "$src" | perl -pe 's#\[\[([^]]*)\]\[([^]]*)\]\]#\n=> $1 $2#g;s#^\* *$##;s#=> file:([^ ]*)\.org#=> $1.gmi#g' > "$dst"
|
||||
|
|
Loading…
Reference in a new issue