Задний план:
Я использую блог, построенный на R-пакете blogdown @YihuiXie.
Проблема:
Когда я использую render_site(), исходные файлы все (* .Rmd) визуализируются - даже исходные файлы неизменный перерисовываются заново.
Этот полный повторный рендеринг отнимает много времени и не нужен (я думаю).
Вопрос / желаемое решение:
Как я могу предотвратить повторную рендеринг неизмененных исходных файлов в blogdown? Я хочу, чтобы blogdown отображал только новые или измененные исходные файлы.
Что я уже пробовал:
Я прочитал книга блога; Yihui, кажется, предлагает подход "перестроить все".
Я прочитал файлы справки для render_site() и hugo_build(). Первый гласит, что он будет отображать все файлы rmd. Напротив, hugo_build() не связывает файлы rmd (т.е. файлы rmd не компилируются в файлы md).
Я проверил SO и Google, но этот вопрос, похоже, раньше не задавали.
SessionInfo ():
R version 3.4.4 (2018-03-15)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS High Sierra 10.13.4
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] shiny_1.1.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.17 rstudioapi_0.7 knitr_1.20 magrittr_1.5 RcppTOML_0.1.3 xtable_1.8-2 R6_2.2.2 rlang_0.2.0 stringr_1.3.1 tools_3.4.4 xfun_0.1
[12] miniUI_0.1.1.1 htmltools_0.3.6 yaml_2.1.19 rprojroot_1.3-2 digest_0.6.15 bookdown_0.7 later_0.7.2 promises_1.0.1 evaluate_0.10.1 mime_0.5 rmarkdown_1.9.4
[23] blogdown_0.6 stringi_1.2.2 compiler_3.4.4 backports_1.1.2 jsonlite_1.5 httpuv_1.4.3
>





Думаю, ответ находится на странице, на которую вы ссылались - Раздел 1.7 книги blogdown («Рекомендуемый рабочий процесс»). Вам кажется, что это недостаточно ясно, поэтому позвольте мне перефразировать:
bookdown::render_site() вам понадобится редко. Как видите, я даже не упомянул эту функцию в Разделе 1.7.
Используйте blogdown::serve_site(), и это функция Только, которую вам нужно вызвать, если ваш веб-сайт опубликован на Netlify, или на любых серверах, которые могут запускать команду hugo для создания вашего веб-сайта на стороне сервера.
Если вы не используете Netlify или не вызываете hugo на стороне сервера, но хотите создать сайт локально и опубликовать папку public/ вручную, позвоните в blogdown::hugo_build() перед публикацией своего сайта.
Поскольку вы используете Netlify, ответ в основном будет blogdown::serve_site(). Это все, что вам нужно. Он не выполняет повторную визуализацию файлов Rmd, которые не были изменены. См. Приложение D.3.
Привет, Ихуи. Какой рабочий процесс вы рекомендуете для публикации сайта вручную на общем сервере? Поскольку я не запускаю команду hugo на стороне сервера или не использую Netlify, единственный способ, которым я знаю, как создать веб-сайт, - это build_site(), который повторно отображает все файлы rmd.
Буду признателен, если вы прокомментируете мой недавний вопрос по этому поводу
Вы читали Раздел 1.7 книги blogdown или третий пункт в моем ответе?
Да, я читал их обоих. Создание сайта повторно выполняет rmds (но желательно для итеративного обновления), но ваш ответ на мой другой вопрос описывает четкий рабочий процесс. Благодарность
Хорошо. Приятно знать, что мне удалось уточнить ожидаемый рабочий процесс!
blogdown::serve_site() пытается повторно отрендерить некоторые из моих старых сообщений в блоге после того, как я перезагрузил свой компьютер и повторно загрузил код с github.
Используя blogdown:::build_rmds("content/post/{file_name}.Rmd"), я смог преобразовать отдельные файлы Rmd в HTML. Чтобы проверить результаты, я запускаю hugo server в окне терминала.
Звучит разумно. Может быть, нет другого полезного способа, кроме как просто удалить исходные файлы из папки.