Невозможно использовать шорткоды Markdown в Rmd-файлах Blogdown. - PullRequest
1 голос
/ 25 апреля 2019

Я использую Blogdown.В моем файле post.Rmd мне нужно использовать короткий код:

This is me calling a **shortcode**:

`r blogdown::shortcode("mysc", .content = "Find **more** about this shortcode in [here](https://www.wikipedia.com).")`

Как видите, .content - это Markdown, а не обычный текст.Шорткод mysc.html это:

<p class="sc">
  {{ if .Inner }}
    {{ .Inner }}
  {{ end }}
</p>

Как видите, я использую blogdown::shortcode, поскольку невозможно использовать синтаксис шорткода в файлах Rmd .

Проблема

Однако уценка в .content не преобразуется в HTML, я получаю это как вывод:

<p>
Find **more** about this shortcode in [here](https://www.wikipedia.com).
</p>

Что я делаю не так?


Устранение неполадок

Обратите внимание, что указание .type не помогает:

`r blogdown::shortcode("mysc", .content = "...", .type = "markdown")`

Кроме того, в этом нет необходимости, поскольку по умолчанию используется "markdown".И он все равно выдает точно такой же вывод, если я укажу .type = "html".Что, черт возьми, здесь происходит?

1 Ответ

1 голос
/ 30 апреля 2019

Как я упоминал в проблеме Github , на которую вы ссылались, Хьюго изменил поведение {{% %}}. Лично я чувствую, что это поломка. Прежде чем это исправить, я думаю, что ваши единственные варианты

  • Заблокируйте проект вашего сайта на более низкой версии Hugo, например

    blogdown::install_hugo('0.54.0', force = TRUE)
    

    Если вы установили Hugo через Homebrew ранее, вам лучше удалить его: brew remove hugo.

  • Или вручную поверните .Inner на Markdown в вашем шорткоде: {{ .Inner | markdownify }}. Обратите внимание, что этот подход имеет потенциальный риск: если автор Hugo решит изменить поведение коротких кодов {{% %}}, вам придется удалить markdownify.

...