The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Print the tree for current working directory
tmp <- tempdir()
demo <- file.path(tmp, "printtree-demo")
# Start fresh
if (dir.exists(demo)) unlink(demo, recursive = TRUE, force = TRUE)
dir.create(demo, recursive = TRUE)
dir.create(file.path(demo, "R"))
dir.create(file.path(demo, "data", "raw"), recursive = TRUE)
file.create(file.path(demo, "R", "hello.R"))
#> [1] TRUE
file.create(file.path(demo, "README.md"))
#> [1] TRUE
file.create(file.path(demo, ".Rhistory"))
#> [1] TRUEPrint the tree
print_rtree()
#> printtree/
#> |-- doc/
#> | |-- printtree.html
#> | |-- printtree.R
#> | `-- printtree.Rmd
#> |-- docs/
#> | |-- articles/
#> | | |-- index.html
#> | | |-- printtree.html
#> | | |-- tree-dark.png
#> | | `-- tree-white.png
#> | |-- deps/
#> | | |-- bootstrap-5.3.1/
#> | | | |-- bootstrap.bundle.min.js
#> | | | |-- bootstrap.bundle.min.js.map
#> | | | `-- bootstrap.min.css
#> | | |-- bootstrap-toc-1.0.1/
#> | | | `-- bootstrap-toc.min.js
#> | | |-- clipboard.js-2.0.11/
#> | | | `-- clipboard.min.js
#> | | |-- font-awesome-6.5.2/
#> | | | |-- css/
#> | | | | |-- all.css
#> | | | | |-- all.min.css
#> | | | | |-- v4-shims.css
#> | | | | `-- v4-shims.min.css
#> | | | `-- webfonts/
#> | | | |-- fa-brands-400.ttf
#> | | | |-- fa-brands-400.woff2
#> | | | |-- fa-regular-400.ttf
#> | | | |-- fa-regular-400.woff2
#> | | | |-- fa-solid-900.ttf
#> | | | |-- fa-solid-900.woff2
#> | | | |-- fa-v4compatibility.ttf
#> | | | `-- fa-v4compatibility.woff2
#> | | |-- headroom-0.11.0/
#> | | | |-- headroom.min.js
#> | | | `-- jQuery.headroom.min.js
#> | | |-- jquery-3.6.0/
#> | | | |-- jquery-3.6.0.js
#> | | | |-- jquery-3.6.0.min.js
#> | | | `-- jquery-3.6.0.min.map
#> | | |-- search-1.0.0/
#> | | | |-- autocomplete.jquery.min.js
#> | | | |-- fuse.min.js
#> | | | `-- mark.min.js
#> | | `-- data-deps.txt
#> | |-- news/
#> | | `-- index.html
#> | |-- reference/
#> | | |-- figures/
#> | | | |-- favicon.ico
#> | | | |-- favicon.png
#> | | | `-- new_tree.png
#> | | |-- index.html
#> | | `-- print_rtree.html
#> | |-- tutorials/
#> | |-- 404.html
#> | |-- authors.html
#> | |-- index.html
#> | |-- katex-auto.js
#> | |-- LICENSE-text.html
#> | |-- LICENSE.html
#> | |-- lightswitch.js
#> | |-- link.svg
#> | |-- pkgdown.js
#> | |-- pkgdown.yml
#> | |-- search.json
#> | `-- sitemap.xml
#> |-- inst/
#> | `-- WORDLIST
#> |-- man/
#> | |-- figures/
#> | | |-- favicon.ico
#> | | |-- favicon.png
#> | | `-- new_tree.png
#> | `-- print_rtree.Rd
#> |-- Meta/
#> | `-- vignette.rds
#> |-- R/
#> | |-- print_rtree.R
#> | |-- utils-path.R
#> | `-- utils-snapshot.R
#> |-- tests/
#> | |-- testthat/
#> | | `-- test-print_rtree.R
#> | |-- spelling.R
#> | `-- testthat.R
#> |-- vignettes/
#> | |-- printtree.R
#> | |-- printtree.Rmd
#> | |-- tree-dark.png
#> | |-- tree-white.png
#> | `-- tree.png
#> |-- _pkgdown.yml
#> |-- cran-comments.md
#> |-- CRAN-SUBMISSION
#> |-- DESCRIPTION
#> |-- LICENSE
#> |-- LICENSE.md
#> |-- NAMESPACE
#> |-- NEWS.md
#> |-- printtree.Rproj
#> `-- README.mdWhen project = “root”, printtree can walk upward from the provided path to detect a project root using simple markers. By default this includes:
.Rproj files (RStudio / Posit projects)
DESCRIPTION files (R package roots)
In this example, we mark demo as a package-like root by creating a DESCRIPTION file, then print from a subdirectory:
file.create(file.path(demo, "DESCRIPTION"))
#> [1] TRUE
subdir <- file.path(demo, "data", "raw")
print_rtree(subdir, project = "root")
#> printtree-demo/
#> |-- data/
#> | `-- raw/
#> |-- R/
#> | `-- hello.R
#> |-- DESCRIPTION
#> `-- README.mdYou can customize detection using rootmarkers:
Limit depth:
print_rtree(max_depth = 2)
#> printtree/
#> |-- doc/
#> | |-- printtree.html
#> | |-- printtree.R
#> | `-- printtree.Rmd
#> |-- docs/
#> | |-- articles/
#> | |-- deps/
#> | |-- news/
#> | |-- reference/
#> | |-- tutorials/
#> | |-- 404.html
#> | |-- authors.html
#> | |-- index.html
#> | |-- katex-auto.js
#> | |-- LICENSE-text.html
#> | |-- LICENSE.html
#> | |-- lightswitch.js
#> | |-- link.svg
#> | |-- pkgdown.js
#> | |-- pkgdown.yml
#> | |-- search.json
#> | `-- sitemap.xml
#> |-- inst/
#> | `-- WORDLIST
#> |-- man/
#> | |-- figures/
#> | `-- print_rtree.Rd
#> |-- Meta/
#> | `-- vignette.rds
#> |-- R/
#> | |-- print_rtree.R
#> | |-- utils-path.R
#> | `-- utils-snapshot.R
#> |-- tests/
#> | |-- testthat/
#> | |-- spelling.R
#> | `-- testthat.R
#> |-- vignettes/
#> | |-- printtree.R
#> | |-- printtree.Rmd
#> | |-- tree-dark.png
#> | |-- tree-white.png
#> | `-- tree.png
#> |-- _pkgdown.yml
#> |-- cran-comments.md
#> |-- CRAN-SUBMISSION
#> |-- DESCRIPTION
#> |-- LICENSE
#> |-- LICENSE.md
#> |-- NAMESPACE
#> |-- NEWS.md
#> |-- printtree.Rproj
#> `-- README.mdShow hidden files:
print_rtree(demo, show_hidden = TRUE, max_depth = 2)
#> printtree-demo/
#> |-- data/
#> | `-- raw/
#> |-- R/
#> | `-- hello.R
#> |-- DESCRIPTION
#> `-- README.mdUse unicode tree glyphs (if your terminal supports them):
print_rtree(demo, format = "unicode", max_depth = 2)
#> printtree-demo/
#> ├── data/
#> │ └── raw/
#> ├── R/
#> │ └── hello.R
#> ├── DESCRIPTION
#> └── README.mdGenerate a PNG snapshot:
# Save PNG snapshots
png_light <- tempfile("tree-light-", fileext = ".png")
png_dark <- tempfile("tree-dark-", fileext = ".png")
# Light (white bg, black text)
print_rtree(demo, snapshot = TRUE, snapshot_bg = "white", snapshot_file = png_light)
#> printtree-demo/
#> |-- data/
#> | `-- raw/
#> |-- R/
#> | `-- hello.R
#> |-- DESCRIPTION
#> `-- README.md
# Dark (black bg, white text)
print_rtree(demo, snapshot = TRUE, snapshot_bg = "black", snapshot_file = png_dark)
#> printtree-demo/
#> |-- data/
#> | `-- raw/
#> |-- R/
#> | `-- hello.R
#> |-- DESCRIPTION
#> `-- README.mdThese binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.