From 47fb77e17a3464a1fc7f67a5aa973fdf21c63cf0 Mon Sep 17 00:00:00 2001 From: Scott Chamberlain Date: Fri, 15 Mar 2024 22:08:17 -0700 Subject: [PATCH] use registry to make packages page split up by repo type --- DESCRIPTION | 4 +-- packages.qmd | 76 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 65 insertions(+), 15 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index f75e69c..c693437 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -5,9 +5,9 @@ Authors@R: c( person("The", "Authors", , "some@email.org", c("aut", "cre")) ) Imports: - cli, - gh, + dplyr, glue, + jsonlite, rmarkdown URL: https://github.com/getwilds/getwilds.github.io BugReports: https://github.com/getwilds/getwilds.github.io/issues diff --git a/packages.qmd b/packages.qmd index 3ede462..92ffe5a 100644 --- a/packages.qmd +++ b/packages.qmd @@ -5,20 +5,70 @@ title: "Packages" ## WILDS Packages ```{r include=FALSE} -library(gh) library(glue) -library(cli) -``` - -```{r echo=FALSE, results="asis"} -#cat("NOTE: filtering out forks for now...\n\n") -my_repos <- gh("GET /orgs/{username}/repos", username = "getwilds") -my_repos <- Filter(function(x) !x$fork, my_repos) -# repos <- vapply(my_repos, "[[", "", "name") -for (i in my_repos) { - cat("{{< fa box-open >}} ") - cat(glue("{ i$name} {ifelse(is.null(i$description), '', paste0('- ' , glue::trim(i$description)))}"), sep = "\n") - cat('\n') +library(jsonlite) +library(dplyr) +``` + +```{r fxns, include=FALSE} +make_lis <- function(tbl) { + for (i in apply(tbl, 1, as.list)) { + cat("{{< fa box-open >}} ") + cat(glue("{ i$name} {ifelse(is.null(i$description), '', paste0('- ' , glue::trim(i$description)))}"), sep = "\n") + cat('\n') + } +} +filter_topic <- function(.data, topic) { + filter(.data, grepl(topic, topics)) } ``` +```{r pkgs-by-topic, include=FALSE} +registry_url <- 'https://getwilds.org/registry/registry.json' +repos <- as_tibble(fromJSON(registry_url)$repos) %>% + filter(!private) %>% + filter(!fork) + +wilds_r <- repos %>% filter_topic("wilds-r") +wilds_py <- repos %>% filter_topic("wilds-py") +wilds_docker <- repos %>% filter_topic("wilds-docker") +wilds_comp <- repos %>% filter_topic("wilds-comp") +wilds_wdl <- repos %>% filter_topic("wilds-wdl") +wilds_nf <- repos %>% filter_topic("wilds-nf") +``` + +### R packages + +```{r r-pkgs, echo=FALSE, results="asis"} +if (NROW(wilds_r) == 0) cat("Coming soon!") else make_lis(wilds_r) +``` + +### Python packages + +```{r python-pkgs, echo=FALSE, results="asis"} +if (NROW(wilds_py) == 0) cat("Coming soon!") else make_lis(wilds_py) +``` + +### Docker + +```{r docker, echo=FALSE, results="asis"} +if (NROW(wilds_docker) == 0) cat("Coming soon!") else make_lis(wilds_docker) +``` + +### Research Compendia + +```{r rc, echo=FALSE, results="asis"} +if (NROW(wilds_comp) == 0) cat("Coming soon!") else make_lis(wilds_comp) +``` + +### WDL's + +```{r wdl, echo=FALSE, results="asis"} +if (NROW(wilds_wdl) == 0) cat("Coming soon!") else make_lis(wilds_wdl) +``` + +### NextFlow + +```{r nf, echo=FALSE, results="asis"} +if (NROW(wilds_nf) == 0) cat("Coming soon!") else make_lis(wilds_nf) +```