Локальная сборка не отображается должным образом (ссылки сломаны)

#blogdown

#blogdown

Вопрос:

В blogdown книге предполагается, что локальный предварительный просмотр работает с использованием

 blogdown::build_site(local=TRUE)
 

Если я правильно понимаю, предполагается, что это временно изменит config.toml файл, чтобы установить значение baseurl / , перезаписав все имеющиеся у вас настройки. Однако, когда я пытаюсь это сделать, это на самом деле не работает, и он продолжает показывать оригинал baseurl в результирующей public папке.

Есть ли способ создать «локальную» версию результирующего сайта, которая сохраняла бы ссылки (или большинство из них, во всяком случае) правильными (вместо того, чтобы указывать на baseurl и онлайн-версию, которая отлично работает, кстати)?

Я видел несколько сообщений, предполагающих, что некоторые темы могут не подходить для этого, поскольку авторы, возможно, не написали исходный код, на который нужно указать relativeurls (я знаю, что я здесь расплывчатый, но я думаю, что это так), но есть ли способ обойти это?

Спасибо

Комментарии:

1. Извините, но документация по адресу bookdown.org/yihui/blogdown/local-preview.html в настоящее время устарел. Я скоро обновлю его и опубликую ответ позже (если кто-то еще не сделает это раньше меня). Спасибо за ваше терпение!

2. Спасибо @YihuiXie и, конечно, не нужно извиняться 🙂 Оценено по достоинству!

Ответ №1:

Это должно быть возможно с версией разработчика blogdown сейчас:

 remotes::install_github('rstudio/blogdown')
 

Затем перезапустите R и запустите:

 blogdown::build_site(baseURL = '/')
 

Это должно временно переопределить baseURL настройку в вашем файле конфигурации. Аналогичным образом, вы можете попытаться создать сайт с relativeURLs = true :

 blogdown::build_site(relativeURLs = TRUE)
 

Комментарии:

1. Спасибо тебе, @YihuiXie! Теперь это работает. Я хотел использовать это, чтобы предоставить копию public папки своим ученикам, чтобы они могли использовать ее в автономном режиме. Теперь все ссылки работают, хотя автоматическое перенаправление с site/folder на site/folder/index.html , конечно, больше не работает… Я могу работать с ними вручную, хотя — я не думаю, что есть автоматизированный способ сделать это (за исключением «обслуживания» сайта локально каким-то образом)? Еще раз спасибо, что исправили это так быстро!

2. Без веб-сервера это невозможно. Самое большее, что я мог бы предложить servr::httd() , это чистая функция R, которая не полагается на Hugo. Если у ваших учащихся установлен R, они могут запустить эту функцию в папке сайта.

3. Еще раз спасибо — я проверю это! Очень признателен! 🙂