#pandoc
#pandoc
Вопрос:
Я пытаюсь использовать один шаблон для обработки различных входных файлов. Я хочу перебрать определенную последовательность сопоставлений, где ключи и значения в последовательности сопоставлений могут меняться. У меня есть решение, но оно похоже на взлом, и оно работает только для последней версии pandoc. Вот пример функциональности, которую я хотел бы:
input1.md:
---
title: "Input 1"
links:
- Pear: "https://pear.com/"
- Banana: "https://banana.com/"
- Grape: "https://grape.com/"
- Strawberry: "https://strawberry.com/"
---
This is the body.
desired-output1.md:
Input 1
- Pear : https://pear.com/
- Banana : https://banana.com/
- Grape : https://grape.com/
- Strawberry : https://strawberry.com/
This is the body.
input2.md:
---
title: "Input 2"
links:
- Kiwi: "https://kiwi.com/"
- Lemon: "https://lemon.com/"
---
This is the body.
desired-output2.md:
Input 2
- Kiwi : https://kiwi.com/
- Lemon : https://lemon.com/
This is the body.
Вот шаблон pandoc, который я использую прямо сейчас, который работает, однако он кажется взломанным и не работает с последними, но более старыми версиями pandoc:
template.md:
$title$
$for(links)$
$for(it/pairs)$
- $it.key$ : $it.value$
$endfor$
$endfor$
$body$
Вот команда, которую я использую для компиляции документа:
pandoc -f markdown -t markdown --template=template.md input1.md
Мой вопрос: есть ли более простой, менее сложный способ достижения этой функциональности с помощью одного файла шаблона? Есть ли способ убедиться, что это работает со старыми версиями pandoc? Спасибо.
Комментарии:
1. Для меня это выглядит хорошим и элегантным решением. Почему тебе кажется, что это халтура?
2. Он работает с последними версиями> 2.8, но не с 2.7.3, который устанавливается и вызывается rmarkdown’s render () в последней версии RStudio. 2.7.3 выдает ошибку — ему не нравится, что он передается в пары: $(it / pairs) $
Ответ №1:
Это исправило это для меня в pandoc 2.7.3
В заголовке YAML —
---
title: "Frank Hermosillo"
image: "frank.jpg"
links:
- site: Apple
url: "https://apples.com/"
- site: Pear
url: "https://pears.com/"
- site: Orange
url: "https://oranges.com/"
Перед ‘url:’ есть две вкладки, а перед ‘- site’ — одна:
И в шаблоне:
<ul class="list-inline">
$for(links)$
<li class="list-inline-item">
<a href=$links.url
gt;
<button type="button" class="btn btn-outline-dark">
To $links.site$
</button>
</a>
</li>
$endfor$
</ul>