Write Multiple Shinylive Applications to Separate Directories
Source:R/writers.R
write_apps_to_dirs.Rd
Takes a list of parsed Shinylive applications and writes each to its own
numbered subdirectory. Creates consistently numbered directories with proper
padding (e.g., app_01
, app_02
) and preserves all application files and
metadata.
Arguments
- apps
List of parsed Shinylive applications. Each application should contain:
engine
: Character string identifying the app type ("r"
or"python"
)options
: List of YAML-style options from the original code blockfiles
: Named list of file definitions, each containing:name
: Character string of the file namecontent
: Character string of the file contenttype
: Character string indicating the file type
- base_dir
Character string. Base directory where application subdirectories should be created. Will be created if it doesn't exist.
Details
The function performs these steps:
Creates the base directory if needed
Calculates proper padding for subdirectory numbers
For each application:
Creates a padded, numbered subdirectory (e.g.,
app_01
,app_02
)Writes all application files, preserving directory structure
Creates a metadata JSON file with engine and options info
See also
padding_width()
for directory number padding calculationwrite_apps_to_quarto()
for alternative Quarto output format
Examples
if (FALSE) { # \dontrun{
# Example apps list structure
apps <- list(
list(
engine = "r",
options = list(viewerHeight = 500),
files = list(
"app.R" = list(
name = "app.R",
content = "library(shiny)\n...",
type = "text"
)
)
),
list(
engine = "python",
options = list(),
files = list(
"app.py" = list(
name = "app.py",
content = "from shiny import App\n...",
type = "text"
)
)
)
)
write_apps_to_dirs(apps, "extracted_apps")
} # }