This commit is contained in:
@@ -7,8 +7,11 @@ module Roux.RecipeIndex (
|
||||
toSearchEntry,
|
||||
) where
|
||||
|
||||
import qualified Data.ByteString as BS
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Text.Encoding as T
|
||||
import qualified Data.Text.Encoding.Error as T
|
||||
import Fleece.Aeson (EncoderDecoder)
|
||||
import Fleece.Core (constructor, list, object, optionalNullable, required, text, (#+))
|
||||
import qualified Fleece.Core as FC
|
||||
@@ -39,8 +42,9 @@ scanRecipes dir = do
|
||||
-- | Load and parse a single recipe file.
|
||||
loadRecipe :: FilePath -> FilePath -> IO RecipeInfo
|
||||
loadRecipe dir filename = do
|
||||
content <- readFile (dir </> filename)
|
||||
let parsed = parseCookFile (T.pack content)
|
||||
bs <- BS.readFile (dir </> filename)
|
||||
let content = T.decodeUtf8With T.lenientDecode bs
|
||||
parsed = parseCookFile content
|
||||
title = case parsed of
|
||||
Right r -> extractTitle r filename
|
||||
Left _err -> T.pack (takeBaseName filename)
|
||||
|
||||
Reference in New Issue
Block a user