2015-11-21 3 views
0

Pandoc может, очевидно, читать данные из нескольких файлов. Documentation says::RMarkdown: Несколько входных файлов в команде pandoc

pandoc [options] [input-file]…

Если несколько входных файлов, pandoc будет объединять их все (с пустыми строками между ними) до разбора.

У меня есть:

main.Rmd

--- 
output: 
    pdf_document 
--- 

After the above YAML front-matter, additional YAML input follows: 

--- 
myparams: blabla 
whatnot: testtest 
--- 

Now the main body follows, using $myparams$ and $whatnot$ from the second YAML block... 

Вопрос:

Как выделить второй YAML блок в отдельный файл и точка/knitr к нему , так что они выдают команду pandoc с двумя входными фильтрами вместо одного? Могу ли я как-то указать, что path-to\separate.yaml актив в лицевой части YAML?

$pandoc main.md separate.yaml --output main.pdf` 

separate.yaml

--- 
myparams: blabla 
whatnot: testtest 
--- 

main.Rmd

--- 
input-files: path-to/separate.yaml 
output: 
    pdf_document 
--- 

Now the main body follows, having access to 
$myparams$ and $whatnot$ from the separate YAML file... 

ответ

0

Как выделить второй YAML блок в отдельный файл и указать rmarkdown/knitr к нему, так что они выпускают pandoc com с двумя входными файлами вместо одного?

У меня была аналогичная проблема в прошлом, но мне не нужен заголовок YAML, поэтому я предварительно обработал файлы, удалив заголовки YAML и объединив файлы. Я предположил, что вы делаете что-то подобное, создайте свой собственный скрипт для предварительной обработки файлов перед отправкой его в rmarkdown/knitr.

Могу ли я каким-либо образом указать этот путь к \ separate.yaml активу в передней части YAML?

Нет, вы не можете.

+0

Спасибо. Можете ли вы показать минимальный рабочий код, который добавляет файл 'separate.yaml' с файлом' main.Rmd' и обрабатывает объединенный файл с knitr? Это было бы полезно, спасибо –

+0

@ DanielKrizian вы можете использовать 'head -n -1', чтобы получить« начало »' separate.yaml', и вы можете использовать 'tail -n + 2', чтобы получить« конец »' main.Rmd'. Используя эти две команды, вы можете легко объединить два файла. –

Смежные вопросы