莎士比亚拼接在哪里寻找他们的文件

Where do shakespeare splices look for their files

我正在尝试安装莎士比亚模板 运行;特别是 Text.Hamlet。我有 $(shamletFile "HTML/index.hamlet")(见注释),当我编译文件时,我收到一条错误消息,告诉我该文件不存在。所以我尝试了各种文件路径组合,试图猜测拼接正在使用哪个工作目录,但没有成功。

莎士比亚拼接在哪里寻找他们的文件?这在某处记录了吗?


注释

  1. 此路径是相对于使用模板的源文件。
  2. 我没有使用完整的 Yesod 框架,只使用模板引擎。

shamletFile 将标准 FilePath 作为参数,因此根据 "current local directory" 进行评估。 "Current" 在模板 Haskell 评估期间 - 即编译阶段。正如@arrowd 所指出的,这通常是主项目目录。

请注意,如果您使用的是 Yesod,这将不再适用,因为在构建过程中 yesod-bin 会向每个莎士比亚文件添加 templates/ 前缀(并且在那里进行了硬编码)。