Mercurial > repos > mingchen0919 > aurora_data
diff aurora_data.Rmd @ 0:ebb7afcb2b75 draft default tip
planemo upload
| author | mingchen0919 |
|---|---|
| date | Tue, 17 Apr 2018 10:58:55 -0400 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/aurora_data.Rmd Tue Apr 17 10:58:55 2018 -0400 @@ -0,0 +1,111 @@ +--- +title: 'HTML report title' +output: + html_document: + highlight: pygments +--- + +```{r, echo=FALSE} +# to make the css theme to work, <link></link> tags cannot be added directly +# as <script></script> tags as below. +# it has to be added using a code chunk with the htmltool functions!!! +css_link = tags$link() +css_link$attribs = list(rel="stylesheet", href="vakata-jstree-3.3.5/dist/themes/default/style.min.css") +css_link +``` + +```{r, eval=FALSE, echo=FALSE} +# this code chunk is purely for adding comments +# below is to add jQuery and jstree javascripts +``` +<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> +<script src="vakata-jstree-3.3.5/dist/jstree.min.js"></script> + +```{r, eval=FALSE, echo=FALSE} +# this code chunk is purely for adding comments +# javascript code below is to build the file tree interface +# see this for how to implement opening hyperlink: https://stackoverflow.com/questions/18611317/how-to-get-i-get-leaf-nodes-in-jstree-to-open-their-hyperlink-when-clicked-when +``` +<script> + $(function () { + // create an instance when the DOM is ready + $('#jstree').jstree().bind("select_node.jstree", function (e, data) { + window.open( data.node.a_attr.href, data.node.a_attr.target ) + }); + }); +</script> + +```{r setup, include=FALSE, warning=FALSE, message=FALSE} +knitr::opts_chunk$set(echo = TRUE, error = TRUE) +``` + + + + + + + + + + + + + + + + + + + + + +# Output + +```{bash, echo=FALSE} +# copy jstree directory to output directory +cp -r ${X_t}/vakata-jstree-3.3.5 ${X_d} +``` + +```{r, echo=FALSE} +# get the OUTPUT_DIR folder data: dataset_NUMBER_files +output_dir = tail(strsplit(opt$X_d, '/')[[1]], 1) +# define a recursive function to build html string of the file tree +file_tree = function(dir = '.'){ + files = list.files(path = dir, recursive = FALSE, full.names = TRUE) + # files also include directorys, need to remove directorys + files = files[!dir.exists(files)] + dirs = list.dirs(path = dir, recursive = FALSE, full.names = TRUE) + tags$ul( + { + if (length(files) > 0) { + lapply(files, function(x){ + path_end = tail(strsplit(x, '/')[[1]],1) + href_path = strsplit(x, paste0(output_dir, '/'))[[1]][2] + li_item = tags$li(tags$a(path_end, href=href_path)) + li_item$attribs = list('data-jstree'='{"icon":"jstree-file"}') + li_item + }) + } + }, + { + if (length(dirs) > 0) { + lapply(dirs, function(x){ + x_path = strsplit(x, paste0(output_dir, '/'))[[1]][2] + li_item = tags$li(x_path, file_tree(x)) + li_item$attribs = list('data-jstree'='{"icon":"jstree-folder"}') + li_item + }) + } + } + ) +} +``` + +```{r, echo=FALSE} +# create a div container to store the file tree interface +tags$div( + id="jstree", + file_tree(opt$X_d) +) +``` +
