В приложении на Rails 5 у меня есть файл AsciiDoc в app/assets/docs/document.adoc
.
. Из этого файла веб-сервер должен сделать доступными два вывода:
/document.html
/document.pdf
В настоящее время я генерирую эти файлы с помощью инициализатора в config/initializers/adoc_convert.rb
:
Asciidoctor.convert Rails.root.join('app', 'assets', 'docs', 'document.adoc'), to_dir: 'public', safe: :server, write_to_target: true, to_file: 'document.html', backend: 'html'
Asciidoctor.convert Rails.root.join('app', 'assets', 'docs', 'document.adoc'), to_dir: 'public', safe: :server, write_to_target: true, to_file: 'document.pdf', backend: 'pdf'
Проблема заключается в том, чтофайлы HTML и PDF не обновляются автоматически при изменении файла AsciiDoc. Кроме того, выполнение преобразования в инициализаторе выглядит как хак.
Я подумал об использовании Sprockets. С одной стороны, преобразование файлов - это именно то, для чего создан конвейер ресурсов. С другой стороны, он не очень подходит, потому что он создан для файлов, включенных в другие файлы. Например, я не нашел способа убедиться, что преобразованные файлы заканчиваются по правильному пути на веб-сервере.
Есть ли лучший способ?