gpt4 book ai didi

haskell - 使用 Pandoc 创建文档

转载 作者:行者123 更新时间:2023-12-02 13:46:14 25 4
gpt4 key购买 nike

我想创建一个Haskell程序来使用Pandoc自动生成文档。

我使用 Pandoc 提供的数据类型创建了一个小示例文档。但是当我启动程序时,ODT 文档是空的(但属性中带有标题 我自己的测试文件),并且文本文件仅包含单词 Template

这是我的程序的代码片段:

import Text.Pandoc
import qualified Data.ByteString.Lazy as Byt
import Data.Map (fromList)

main = do
doc <- writeODT WriterOptions{ writerStandalone=True
, writerReferenceODT=Nothing
, writerUserDataDir=Nothing
, writerTemplate="Template"} doctest
let doc2 = writeMarkdown WriterOptions{ writerStandalone=True
, writerTemplate="Template"} doctest
putStrLn $ show doctest
Byt.writeFile "test.odt" doc
writeFile "test.txt" doc2

doctest = Pandoc ( Meta {unMeta = fromList [("title", MetaInlines [Str "My own testfile"])
,("authors", MetaInlines [Str "My Name"]) ]} )
[Para [Str "This",Space,Str "is",Space,Str "some",Space,Str "text"],HorizontalRule]

文本文件和 ODT 文档都应包含短语 This is some text,但我不明白为什么它没有出现。

你知道我做错了什么吗?

您有关于如何使用 Haskell 生成 Pandoc 文件的工作示例吗?

最佳答案

您没有设置正确的writerTemplate

您可以自己调整模板,但应该从默认模板开始,以了解其所需的结构。这对于 ODT 导出器尤其重要,其中模板需要包含相当详细的 XML 前奏。

我能够通过首先加载默认模板,然后使用您的文档填充该模板来使您的代码正常工作:

main = do
Right odtTemplate <- getDefaultTemplate Nothing "odt"
doc <- writeODT def{ writerStandalone = True
, writerTemplate = odtTemplate
}
doctest
Byt.writeFile "test.odt" doc

Right mdTemplate <- getDefaultTemplate Nothing "markdown"
let doc2 = writeMarkdown def{ writerStandalone = True
, writerTemplate = mdTemplate
}
doctest
writeFile "test.txt" doc2

关于haskell - 使用 Pandoc 创建文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39815375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com