Невозможно использовать короткие коды Markdown в Rmd-файлах Blogdown.
Я использую 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
это уценка, а не простой текст. Короткий номер 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 ответ
Как я уже упоминал в проблеме Github, на которую вы ссылались, Хьюго изменил поведение{{% %}}
. Лично я считаю, что это поломка. Прежде чем это будет исправлено, я думаю, что ваши единственные варианты:
Заблокируйте свой проект веб-сайта на более раннюю версию Hugo, например
blogdown::install_hugo('0.54.0', force = TRUE)
Если вы ранее устанавливали Hugo через Homebrew, вам лучше удалить его:
brew remove hugo
.Или вручную повернуть
.Inner
на Markdown в вашем шорткоде:{{ .Inner | markdownify }}
. Обратите внимание, что у этого подхода есть потенциальный риск: если автор Hugo решит изменить поведение{{% %}}
шорткоды, вам нужно будет удалитьmarkdownify
.