2017-06-02 18 views
0

*.texのファイルをpostsディレクトリにマッチさせたいと思います。複数のパターンを組み合わせてマッチさせる方法は?

"posts/*" :: Patternを使用できない理由は、投稿ディレクトリにファイル*.tex.metadataがあるためです。そしてsiteはそのファイルにエラーを与えます。

[ERROR] Hakyll.Web.readPandocWith: I don't know how to read a file of the type Binary for: posts/2017-06-02-tex.metadata 

次のコードを試して、空の一致(html出力なし)で失敗してください。

match (fromList ["posts/*.md", "posts/*.tex"]) $ do 
    route $ setExtension "html" 
    compile $ pandocCompiler 

let postFiles :: Pattern 
    postFiles = fromGlob "posts/*.md" `mappend` fromGlob "posts/*.tex" 

match postFiles $ do 
    route $ setExtension "html" 
    compile $ pandocCompiler 

たぶん私はfromRegexを使用する必要がありますが、私はそのための正規表現を作成する方法は考えています。

追加学習リソースは大歓迎です。 documentationにはサンプルがありません。

答えて

1

あなたが複数のPatternの値を構成することがある別の何かの機能documentation から「作曲パターン」を読むことができる

let postFiles :: Pattern 
    postFiles = fromGlob "posts/*.md" .||. fromGlob "posts/*.tex" 

match postFiles $ do 
    route $ setExtension "html" 
    compile $ pandocCompiler 

を試してみてください。

pattern1 .||. pattern2は、pattern1またはpattern2または両方が一致するパターン(これは必要なもの)と一致するパターンを作成します。

pattern1 .&&. pattern2は、pattern1pattern2と一致するパターンを作成します(これは望ましくありませんが、実行できることも示しています)。

関連する問題