Перебор последовательности сопоставлений с разными входными данными с помощью pandoc

#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>