Где сращивания Шекспира ищут свои файлы

Я пытаюсь запустить шаблоны Шекспира; в частности Text.Hamlet. я имею $(shamletFile "HTML/index.hamlet") (См. Примечания), и когда я компилирую файл, я получаю сообщение об ошибке, сообщающее, что файл не существует. Поэтому я пробовал различные комбинации путей к файлам, пытаясь угадать, какой рабочий каталог используется соединением, но безуспешно.

Где сращивания Шекспира ищут свои файлы? Это где-то задокументировано?


ЗАМЕТКИ

  1. Этот путь относительно исходного файла с использованием шаблона.
  2. Я не использую полный фреймворк Yesod, просто шаблонный движок.

1 ответ

Решение

shamletFile берет стандарт FilePath в качестве аргумента и, следовательно, оценивается относительно "текущего локального каталога". "Текущий" во время оценки шаблона Haskell - т.е. фаза компиляции. Как отметил @arrowd, обычно это основной каталог проекта.

Обратите внимание, что если вы используете Yesod, это больше не будет правдой, как во время сборки yesod-bin добавляет templates/ префикс к каждому шекспировскому файлу (и он там жестко запрограммирован).

Другие вопросы по тегам