Comments (3)
Hi @epspi , thanks for the idea. This could certainly be useful. We don't see fundamental reasons why this shouldn't work. PRs/PoC welcome, if you'd like to contribute an example :)
from shiny.router.
@epspi here you find minimal example how to achieve this:
library(shiny)
library(shiny.router)
options(shiny.router.debug = T)
# This generates menu in user interface with links.
menu <- (
tags$ul(
tags$li(a(class = "item", href = "/", "Page")),
tags$li(a(class = "item", href = route_link("other"), "Other page"))
)
)
# This creates UI for each page.
page <- function(title, content) {
div(
menu,
titlePanel(title),
p(content)
)
}
# Both sample pages.
root_page <- page("Home page", "Welcome on sample routing page!")
other_page <- page("Some other page", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.")
# Creates router. We provide routing path and UI for this page.
router <- make_router(
route("/", root_page),
route("other", other_page)
)
# Plug router into Shiny server.
server <- shinyServer(function(input, output, session) {
router(input, output, session)
output$url <- renderPrint(
get_query_param()
)
observeEvent(input$button, {
print("aaaa")
change_page("other?a=3&b=appsilon")
})
})
html_text = "
<!DOCTYPE html>
<html>
<head>
<script src=\"shared/jquery.js\" type=\"text/javascript\"></script>
<script src=\"shared/shiny.js\" type=\"text/javascript\"></script>
</head>
<body>
<h1>HTML UI</h1>
<div style=\"background-color:#fda97b\">
<div class=\"container-fluid\">
<div id=\"_router_ui\" class=\"shiny-html-output\"></div>
</div>
</div>
</body>
</html>
"
shinyApp(htmlTemplate(text_ = html_text), server)
from shiny.router.
Closing. Feel free to reopen if needed.
from shiny.router.
Related Issues (20)
- New documentation page for shiny.router
- New CI for shiny router
- New labels for shiny.router
- [Bug]: shiny.router does not work when deploying a shiny app in docker HOT 1
- [Feature]: Only load the html for the route HOT 2
- [Bug]: 404 page does not work when a user opens a non-valid link without going to a valid one first
- [Feature]: Examples need for ui.R and server.R app design
- Building a markdown-based survey platform in {shiny}
- semantic tabset not working with router HOT 4
- Feature request: support dynamic population of `make_router()`
- Using shiny.router with separate ui and server files HOT 1
- Using shiny.router to receive POST requests on specific routes HOT 1
- shiny.router not working on RSConnect server HOT 2
- Internal linking?
- multiple_radio position inline not working HOT 1
- semantic_DT: selected rows are not highlghted HOT 1
- Callback behavior changed with 0.2.2
- Question: How to use shiny.router with moduleServer? HOT 6
- [Bug]: Error: 'router_ui' is not an exported object from 'namespace:shiny.router' HOT 2
- disable_bootstrap_on_bookmark() errors out with development version of Shiny HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shiny.router.