如何将 {polished} 包与 {brochure} 框架一起使用?
How do I use {polished} package with {brochure} framework?
这是我在使用 {polished}
和 {brochure}
时遇到的复杂逻辑执行。
将 secure_ui
/secure_server
放置在 brochure::Page()
中时,按照 {polished}
开发团队给出的示例的相同顺序,Shiny App 的部署方式发生了变化{brochure}
基础设施。我不确定将 polsiehd 逻辑重新定位到哪里。
差异
brochureApp()
中没有 global.R 文件
- 多次调用不同的 module_ui/server 函数,因为每个
brochure::page()
都是它自己的 shiny session
- 单页 shinyApp 与真正的多页 shinyApp
当需要合并这两个逻辑时,您必须:
- 在
globals.R
中移动polished_config()
--> golem::runApp()
[为brochureApp()
启动全局设置]
run_app <- function(
onStart = NULL,
options = list(),
enableBookmarking = NULL,
...
) {
# old 'globals.R' logic
polished_config(
app_name = "humblFinance",
api_key = "xxxx"
)
with_golem_options(
app = brochureApp(
# Putting the resources here
golem_add_external_resources(),
page1(),
),
golem_opts = list(...)
)
}
- 包裹每个
brochure::page() ui/server with
抛光::secure_ui/server()`
# an example login page
login <- function(id = "login", href = "/login") {
page(
href = href,
ui = secure_ui(
mod_login_ui(id = id),
sign_in_page_ui = sign_in_custom()
),
server = secure_server(
function(input, output, session) {
mod_login_server(id = id)
}
)
)
}
注意
sign_in_custom()
是 returns 来自 polished::sign_in_default()
的自定义 UI 对象创建个人业务网页的功能。
我建议将 polished::sign_in_default()
包装在自定义全局函数中,因为您需要在 brochure::page()
上定义它,您希望在 polished
auth.
后面保护它
一旦您通过抛光验证一个页面,您将能够在您仍然登录的情况下访问所有其他受保护的页面。注销后并尝试访问任何一个受保护的页面将导致自定义登录页面
这是我在使用 {polished}
和 {brochure}
时遇到的复杂逻辑执行。
将 secure_ui
/secure_server
放置在 brochure::Page()
中时,按照 {polished}
开发团队给出的示例的相同顺序,Shiny App 的部署方式发生了变化{brochure}
基础设施。我不确定将 polsiehd 逻辑重新定位到哪里。
差异
brochureApp()
中没有 global.R 文件
- 多次调用不同的 module_ui/server 函数,因为每个
brochure::page()
都是它自己的 shiny session - 单页 shinyApp 与真正的多页 shinyApp
当需要合并这两个逻辑时,您必须:
- 在
globals.R
中移动polished_config()
-->golem::runApp()
[为brochureApp()
启动全局设置]
run_app <- function(
onStart = NULL,
options = list(),
enableBookmarking = NULL,
...
) {
# old 'globals.R' logic
polished_config(
app_name = "humblFinance",
api_key = "xxxx"
)
with_golem_options(
app = brochureApp(
# Putting the resources here
golem_add_external_resources(),
page1(),
),
golem_opts = list(...)
)
}
- 包裹每个
brochure::page() ui/server with
抛光::secure_ui/server()`
# an example login page
login <- function(id = "login", href = "/login") {
page(
href = href,
ui = secure_ui(
mod_login_ui(id = id),
sign_in_page_ui = sign_in_custom()
),
server = secure_server(
function(input, output, session) {
mod_login_server(id = id)
}
)
)
}
注意
sign_in_custom()
是 returns 来自 polished::sign_in_default()
的自定义 UI 对象创建个人业务网页的功能。
我建议将 polished::sign_in_default()
包装在自定义全局函数中,因为您需要在 brochure::page()
上定义它,您希望在 polished
auth.
一旦您通过抛光验证一个页面,您将能够在您仍然登录的情况下访问所有其他受保护的页面。注销后并尝试访问任何一个受保护的页面将导致自定义登录页面