Я пытаюсь использовать pandoc
(с hakyll
, но это, вероятно, не важно), чтобы достичь следующего:Недостающие атрибуты для ссылок и других типов элементов в pandoc
- Читать файл уценки.
- Преобразуйте его в HTML.
- Добавить атрибут
target="_blank"
в каждую автоматически создаваемую ссылку.
Проблема заключается в том, что definition of Inline
в pandoc
, кажется, поддерживает атрибуты только для некоторых типов Inline
с, например, для Span
и Code
, а не для других, например, для Link
и Image
.
Это произвольное ограничение pandoc
, или оно было сделано специально по какой-то причине, что я не понимаю? Кроме того, есть ли способ достичь того, что я хочу, не прибегая к низкоуровневой обработке строк или к использованию конструктора RawInline
?
Вот MWE:
import Text.Pandoc
import Text.Pandoc.Walk
fixLinks :: Pandoc -> Pandoc
fixLinks = walk fixLink
where fixLink (Link inlines (url, title)) =
Link inlines (url, "I want to add a target=_blank to this link!")
fixLink inline = inline
main = do
let md = "This is a link to [StackOverflow](http://stackoverflow.com/)."
(putStrLn . writeHtmlString def . fixLinks . readMarkdown def) md