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)
+```