make less inefficient
- do all filters in one go - do all post lists in one run of the program - only write files if they are changed (so make repeats less work) - simplify pandoc command for meta pages (this might not actually make a difference)
This commit is contained in:
parent
0385c3215b
commit
5a94aae932
13 changed files with 187 additions and 167 deletions
|
@ -1,12 +1,16 @@
|
|||
module Misc where
|
||||
|
||||
import qualified System.Console.GetOpt as GetOpt
|
||||
import Control.Monad
|
||||
import Data.ByteString.Lazy qualified as LazyBS
|
||||
import Data.Char (isAlphaNum, isAscii, toLower)
|
||||
import Data.Text (Text)
|
||||
import Data.Text qualified as Text
|
||||
import Data.Text.IO qualified as Text
|
||||
import Data.Time
|
||||
import System.Console.GetOpt qualified as GetOpt
|
||||
import System.Directory qualified as Dir
|
||||
import System.Environment
|
||||
import System.Exit
|
||||
import Data.Text (Text)
|
||||
import Data.Time
|
||||
import qualified Data.Text as Text
|
||||
import Data.Char (isAlphaNum, isAscii, toLower)
|
||||
import Text.Pandoc.Definition
|
||||
|
||||
-- | exception on 'Left'
|
||||
|
@ -97,3 +101,15 @@ rssDate (ID d) =
|
|||
showDate :: IsoDate -> Text
|
||||
showDate (ID d) =
|
||||
Text.pack $ toLower <$> formatTime defaultTimeLocale "%a %-d %B %Y" d
|
||||
|
||||
writeIfDifferentBS :: FilePath -> LazyBS.ByteString -> IO ()
|
||||
writeIfDifferentBS fn content = do
|
||||
exists <- Dir.doesFileExist fn
|
||||
old <- if exists then Just <$> LazyBS.readFile fn else pure Nothing
|
||||
unless (old == Just content) $ LazyBS.writeFile fn content
|
||||
|
||||
writeIfDifferentT :: FilePath -> Text -> IO ()
|
||||
writeIfDifferentT fn content = do
|
||||
exists <- Dir.doesFileExist fn
|
||||
old <- if exists then Just <$> Text.readFile fn else pure Nothing
|
||||
unless (old == Just content) $ Text.writeFile fn content
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue