Skip to content

Commit e3d40ed

Browse files
Merge pull request #53 from angelina-momin/create-page-venues
Create page venues
2 parents 95bf093 + 1f70fdf commit e3d40ed

File tree

8 files changed

+159
-11
lines changed

8 files changed

+159
-11
lines changed

.github/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
*.html
2+
.DS_Store

.github/workflows/R-CMD-check.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
matrix:
2222
config:
2323
- {os: windows-latest, r: 'release'}
24-
- {os: macOS-latest, r: 'release'}
24+
# - {os: macOS-latest, r: 'release'}
2525
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}
2626
- {os: ubuntu-20.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}
2727

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package: codecheck
22
Title: Helper Functions for CODECHECK Project
3-
Version: 0.4.0
3+
Version: 0.5.0
44
Authors@R:
55
c(person(given = "Stephen",
66
family = "Eglen",

R/utils_create_filtered_register_csvs.R

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ get_output_dir <- function(filter, column_value) {
9595
}
9696

9797
# Removing the venue category to obtain the venue name and replace the brackets
98-
venue_name <- trimws(gsub("[()]", "", gsub(venue_category, "", column_value)))
99-
venue_name <- gsub(" ", "_", venue_name)
98+
venue_name <- determine_venue_name(column_value, venue_category)
10099
return(paste0("docs/", filter, "/", venue_category, "/", venue_name, "/")) }
101100

102101
else if (filter=="codecheckers"){
@@ -125,3 +124,13 @@ determine_venue_category <- function(venue_name){
125124
warning(paste("Register venue", venue_name, "does not fall into any of the following venue categories:", toString(list_venue_categories)))
126125
return(NULL)
127126
}
127+
128+
determine_venue_name <- function(unfiltered_venue_name, venue_category){
129+
if (is.null(venue_category)){
130+
return(NULL)
131+
}
132+
133+
venue_name <- trimws(gsub("[()]", "", gsub(venue_category, "", unfiltered_venue_name, ignore.case = TRUE)))
134+
venue_name <- gsub(" ", "_", venue_name)
135+
return(venue_name)
136+
}

R/utils_render_table_codecheckers.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ render_table_codecheckers_json <- function(list_codechecker_reg_tables){
55
list_orcid_ids <- names(list_codechecker_reg_tables)
66
table_codecheckers <- data.frame(matrix(ncol=0, nrow = length(list_orcid_ids)), stringsAsFactors = FALSE)
77

8-
col_names <- CONFIG$CODECHECKER_TABLE_COL_NAMES[["codechecker_table"]]
8+
col_names <- CONFIG$NON_REG_TABLE_COL_NAMES[["codechecker_table"]]
99

1010
# Column- codechecker names
1111
table_codecheckers[[col_names[["codechecker"]]]] <- sapply(

R/utils_render_table_non_registers.R

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
#' @param list_reg_tables The list of register tables to link to in this html page
44
render_non_register_htmls <- function(list_reg_tables, page_type){
55
output_dir <- paste0("docs/", page_type, "/")
6+
extra_text <- ""
67

78
if (page_type == "codecheckers"){
89
table <- render_table_codecheckers_html(list_reg_tables)
9-
table <- kable(table)
1010
# Counting number of codecheckers based of number of codechecker reg tables
1111
# The table is a kable table and hence we cannot count rows
1212
no_codecheckers <- length(list_reg_tables)
@@ -19,10 +19,15 @@ render_non_register_htmls <- function(list_reg_tables, page_type){
1919
This is because some codechecks involved more than one codechecker.</i>"
2020
}
2121

22-
else{
23-
return()
22+
else if (page_type == "venues") {
23+
table <- render_table_venues_html(list_reg_tables)
24+
25+
no_venues <- length(list_reg_tables)
26+
subtext <- paste("In total,", CONFIG$NO_CODECHECKS, "codechecks were completed for", no_venues, "venues")
2427
}
28+
2529
# Creating and adjusting the markdown table
30+
table <- kable(table)
2631
md_table <- load_md_template(CONFIG$TEMPLATE_DIR[["non_reg"]][["md_template"]])
2732
title <- paste0("CODECHECK List of ", page_type)
2833
md_table <- gsub("\\$title\\$", title, md_table)
@@ -65,13 +70,14 @@ render_non_register_htmls <- function(list_reg_tables, page_type){
6570
render_non_register_jsons <- function(list_reg_tables, page_type){
6671
output_dir <- paste0("docs/", page_type, "/")
6772

68-
if (page_type == "codeheckers"){
73+
if (page_type == "codecheckers"){
6974
table <- render_table_codecheckers_json(list_reg_tables)
7075
}
7176

72-
else{
73-
return()
77+
else if (page_type == "venues"){
78+
table <- render_table_venues_json(list_reg_tables)
7479
}
80+
7581
jsonlite::write_json(
7682
table,
7783
path = paste0(output_dir, "index.json"),

R/utils_render_table_venues.R

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
#' Renders venues table in JSON format.
2+
#'
3+
#' @param list_venue_reg_tables The list of venue register tables. The indices are the venue names.
4+
render_table_venues_json <- function(list_venue_reg_tables){
5+
col_names <- CONFIG$NON_REG_TABLE_COL_NAMES[["venues_table"]]
6+
list_venue_names <- names(list_venue_reg_tables)
7+
8+
# Create initial data frame
9+
table_venues <- data.frame(
10+
matrix(ncol=0, nrow = length(list_venue_names)),
11+
stringsAsFactors = FALSE,
12+
check.names = FALSE
13+
)
14+
15+
table_venues[[col_names[["venue_name"]]]] <- list_venue_names
16+
17+
# Column- No. of codechecks
18+
table_venues[[col_names[["no_codechecks"]]]] <- sapply(
19+
X = list_venue_names,
20+
FUN = function(venue_name) {
21+
paste0(nrow(list_venue_reg_tables[[venue_name]]))
22+
}
23+
)
24+
25+
# Column- Venue type
26+
table_venues[[col_names[["venue_type"]]]] <- sapply(
27+
X = table_venues[[col_names[["venue_name"]]]],
28+
FUN = function(venue_name){
29+
venue_type <- determine_venue_category(venue_name)
30+
stringr::str_to_title(venue_type)
31+
}
32+
)
33+
34+
# Column- venue names
35+
# Using the full names of the venues
36+
table_venues[[col_names[["venue_name"]]]] <- sapply(
37+
X = table_venues[[col_names[["venue_name"]]]],
38+
FUN = function(venue_name){
39+
CONFIG$DICT_VENUE_NAMES[[venue_name]]
40+
}
41+
)
42+
43+
# Reordering the table
44+
desired_order_cols <- unlist(col_names)
45+
table_venues <- table_venues[, desired_order_cols]
46+
47+
return(table_venues)
48+
}
49+
50+
#' Renders venues table in HTML format.
51+
#' Each venue name links to the register table for that specific
52+
#' venue. The ORCID IDs link to their ORCID pages.
53+
#'
54+
#' @param list_venue_reg_tables The list of venue register tables. The indices are the ORCID IDs.
55+
render_table_venues_html <- function(list_venue_reg_tables){
56+
col_names <- CONFIG$NON_REG_TABLE_COL_NAMES[["venues_table"]]
57+
58+
list_venue_names <- names(list_venue_reg_tables)
59+
# Create initial data frame
60+
table_venues <- data.frame(
61+
matrix(ncol=0, nrow = length(list_venue_names)),
62+
stringsAsFactors = FALSE,
63+
check.names = FALSE
64+
)
65+
66+
table_venues[[col_names[["venue_name"]]]] <- list_venue_names
67+
68+
# Column- Venue type
69+
table_venues[[col_names[["venue_type"]]]] <- sapply(
70+
X = list_venue_names,
71+
FUN = function(venue_name){
72+
venue_type <- determine_venue_category(venue_name)
73+
stringr::str_to_title(venue_type)
74+
}
75+
)
76+
77+
# Column- No. of codechecks
78+
table_venues[[col_names[["no_codechecks"]]]] <- mapply(
79+
FUN = function(venue_name, venue_type) {
80+
no_codechecks <- nrow(list_venue_reg_tables[[venue_name]])
81+
formatted_venue_type <- stringr::str_to_lower(venue_type)
82+
formatted_venue_name <- determine_venue_name(venue_name, venue_type)
83+
paste0(no_codechecks," [(see all checks)](https://codecheck.org.uk/register/venues/",
84+
formatted_venue_type, "/", formatted_venue_name, "/)")
85+
},
86+
venue_name = table_venues[[col_names[["venue_name"]]]],
87+
venue_type = table_venues[[col_names[["venue_type"]]]]
88+
)
89+
90+
# Column- venue names
91+
# Each venue name will be a hyperlink to the register table
92+
# with all their codechecks
93+
table_venues[[col_names[["venue_name"]]]] <- mapply(
94+
FUN = function(venue_name, venue_type){
95+
if (is.null(CONFIG$DICT_VENUE_NAMES[[venue_name]])) {
96+
return(venue_name) # Handle cases where venue_name is not in CONFIG$DICT_VENUE_NAMES
97+
}
98+
formatted_venue_type <- stringr::str_to_lower(venue_type)
99+
formatted_venue_name <- determine_venue_name(venue_name, venue_type)
100+
paste0("[", CONFIG$DICT_VENUE_NAMES[[venue_name]], "](https://codecheck.org.uk/register/venues/",
101+
formatted_venue_type, "/", formatted_venue_name, "/)")
102+
},
103+
venue_name = table_venues[[col_names[["venue_name"]]]],
104+
venue_type = table_venues[[col_names[["venue_type"]]]]
105+
)
106+
107+
# Reordering the table
108+
desired_order_cols <- unlist(col_names)
109+
table_venues <- table_venues[, desired_order_cols]
110+
111+
return(table_venues)
112+
}

inst/extdata/config.R

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,18 @@ CONFIG$REGISTER_COLUMNS <- list("Certificate", "Repository", "Type", "Issue", "R
66
CONFIG$DIR_TEMP_REGISTER_CODECHECKER <- "docs/temp_register_codechecker.csv"
77

88
# NON-REGISTER_TABLE
9+
# Note that the order of the names in the list will be the order of table columns in html and json
910
CONFIG$NON_REG_TABLE_COL_NAMES <- list(
1011
"codechecker_table" = list(
1112
"codechecker" = "Codechecker name",
1213
"orcid" = "ORCID ID",
1314
"no_codechecks" = "No. of codechecks"
15+
),
16+
17+
"venues_table" = list(
18+
"venue_type" = "Venue type",
19+
"venue_name" = "Venue name",
20+
"no_codechecks" = "No. of codechecks"
1421
)
1522
)
1623

@@ -38,3 +45,16 @@ CONFIG$TEMPLATE_DIR<- list(
3845
"md_template" = system.file("extdata", "templates/reg_tables/template.md", package = "codecheck")
3946
)
4047
)
48+
49+
# DICT OF VENUE NAMES
50+
CONFIG$DICT_VENUE_NAMES <- list(
51+
"journal (GigaScience)" = "GigaScience",
52+
"journal (J Geogr Syst)" = "Journal of Geographical Systems",
53+
"journal (J Archaeol Sci)" = "Journal of Archaeological Science",
54+
"journal (GigaByte)" = "GigaByte",
55+
"conference (AGILEGIS)" = "AGILEGIS",
56+
"community (codecheck)" = "Codecheck",
57+
"community (codecheck NL)" = "Codecheck NL",
58+
"community (in press)" = "In press",
59+
"community (preprint)" = "Preprint"
60+
)

0 commit comments

Comments
 (0)