1
+ # ' Renders non-register tables such as list of venues, codecheckers
2
+ # '
3
+ # ' @param list_reg_tables The list of register tables
4
+ # ' @param page_type The HTML page type that needs to rendered.
5
+ # ' @return A list of register tables. The entries in the list are the names of the table
1
6
render_non_register_tables_html <- function (list_reg_tables , page_type ){
2
7
3
8
output <- switch (page_type ,
@@ -15,9 +20,10 @@ render_non_register_tables_html <- function(list_reg_tables, page_type){
15
20
return (output )
16
21
}
17
22
18
- # ' Renders non-register pages such as codecheckers or venues page.
23
+ # ' Renders non-register html pages such as codecheckers or venues page.
19
24
# '
20
25
# ' @param list_reg_tables The list of register tables to link to in this html page
26
+ # ' @param page_type The HTML page type that needs to rendered.
21
27
render_non_register_htmls <- function (list_reg_tables , page_type ){
22
28
list_tables <- render_non_register_tables_html(list_reg_tables , page_type )
23
29
@@ -33,27 +39,34 @@ render_non_register_htmls <- function(list_reg_tables, page_type){
33
39
output_dir <- paste0(" docs/" , page_type , " /" )
34
40
}
35
41
36
- html_header <- generate_html_header (table , page_type , table_name )
37
- generate_non_reg_html(table , table_name , page_type , html_header , output_dir )
42
+ html_data <- generate_html_data (table , page_type , table_name )
43
+ generate_non_reg_html(table , table_name , page_type , html_data , output_dir )
38
44
}
39
45
}
40
46
41
- generate_non_reg_html <- function (table , table_subcategory , page_type , html_header , output_dir ){
47
+ # ' Generates non register html page.
48
+ # '
49
+ # ' @param table The table to showcase in the html
50
+ # ' @param table_name The name of the table
51
+ # ' @param page_type The HTML page type that needs to rendered.
52
+ # ' @param html_data A list containing the title, subtext, extra text of the html page
53
+ # ' @param output_dir The directory where the html needs to be saved
54
+ generate_non_reg_html <- function (table , table_name , page_type , html_data , output_dir ){
42
55
table <- kable(table )
43
56
44
57
# Creating and adjusting the markdown table
45
58
md_table <- load_md_template(CONFIG $ TEMPLATE_DIR [[" non_reg" ]][[" md_template" ]])
46
- md_table <- gsub(" \\ $title\\ $" , html_header [[" title" ]], md_table )
47
- md_table <- gsub(" \\ $subtitle\\ $" , html_header [[" subtext" ]], md_table )
59
+ md_table <- gsub(" \\ $title\\ $" , html_data [[" title" ]], md_table )
60
+ md_table <- gsub(" \\ $subtitle\\ $" , html_data [[" subtext" ]], md_table )
48
61
md_table <- gsub(" \\ $content\\ $" , paste(table , collapse = " \n " ), md_table )
49
- md_table <- gsub(" \\ $extra_text\\ $" , html_header [[" extra_text" ]], md_table )
62
+ md_table <- gsub(" \\ $extra_text\\ $" , html_data [[" extra_text" ]], md_table )
50
63
51
64
# Saving the table to a temp md file
52
65
temp_md_path <- paste0(output_dir , " temp.md" )
53
66
writeLines(md_table , temp_md_path )
54
67
55
68
# Creating the correct html yaml and index files
56
- create_index_section_files(output_dir , page_type , table_subcategory , is_reg_table = FALSE )
69
+ create_index_section_files(output_dir , page_type , table_name , is_reg_table = FALSE )
57
70
generate_html_document_yml(output_dir )
58
71
yaml_path <- normalizePath(file.path(getwd(), paste0(output_dir , " html_document.yml" )))
59
72
@@ -80,6 +93,7 @@ generate_non_reg_html <- function(table, table_subcategory, page_type, html_head
80
93
# ' Renders JSON file of non register tables such as list of venues, list of codecheckers
81
94
# '
82
95
# ' @param list_reg_tables The list of register tables needed for the information.
96
+ # ' @param page_type The HTML page type that needs to rendered.
83
97
render_non_register_jsons <- function (list_reg_tables , page_type ){
84
98
if (page_type == " codecheckers" ){
85
99
list_tables <- list (" codecheckers" = render_table_codecheckers_json(list_reg_tables ))
@@ -106,6 +120,11 @@ render_non_register_jsons <- function(list_reg_tables, page_type){
106
120
}
107
121
}
108
122
123
+ # ' Generates the titles of the HTML pages for non registers
124
+ # '
125
+ # ' @param page_type The HTML page type that needs to rendered
126
+ # ' @param table_name The name of the table
127
+ # ' @return The title to put on the html page
109
128
generate_html_title_non_registers <- function (page_type , table_name ){
110
129
title_base <- " CODECHECK List of"
111
130
@@ -128,6 +147,13 @@ generate_html_title_non_registers <- function(page_type, table_name){
128
147
return (title )
129
148
}
130
149
150
+ # ' Generates the extra text of the HTML pages for non registers.
151
+ # ' This extra text is to be placed under the table.
152
+ # ' There is only extra text for the codecheckers HTML page to explain
153
+ # ' the reason for discrepancy between total_codechecks != SUM(no.of codechecks)
154
+ # '
155
+ # ' @param page_type The HTML page type that needs to rendered
156
+ # ' @return The extra text to place under the table
131
157
generate_html_extra_text_non_register <- function (page_type ){
132
158
extra_text <- " "
133
159
@@ -141,7 +167,13 @@ generate_html_extra_text_non_register <- function(page_type){
141
167
return (extra_text )
142
168
}
143
169
144
-
170
+ # ' Generates the subtext of the HTML pages for non registers with a summary of
171
+ # ' the number of codechecks and number of codechecks/ venues etc.
172
+ # '
173
+ # ' @param table The table to showcase in the html
174
+ # ' @param page_type The HTML page type that needs to rendered
175
+ # ' @param table_name The name of the table
176
+ # ' @return The subtext to put under the html title
145
177
generate_html_subtext_non_register <- function (table , page_type , table_name ){
146
178
147
179
# Setting the codecheck word to be plural or singular
@@ -183,22 +215,34 @@ generate_html_subtext_non_register <- function(table, page_type, table_name){
183
215
return (subtext )
184
216
}
185
217
186
- generate_html_header <- function (table , page_type , table_name ){
218
+ # ' Generates a list of data for the html. The list contains the html
219
+ # ' title, subtext and extra text.
220
+ # '
221
+ # ' @param table The table to showcase in the html
222
+ # ' @param page_type The HTML page type that needs to rendered
223
+ # ' @param table_name The name of the table
224
+ # ' @return A list of the html data such as title, subtext etc
225
+ generate_html_data <- function (table , page_type , table_name ){
187
226
188
- html_header <- list (
227
+ html_data <- list (
189
228
" title" = generate_html_title_non_registers(page_type , table_name ),
190
229
" subtext" = generate_html_subtext_non_register(table , page_type , table_name ),
191
230
" extra_text" = generate_html_extra_text_non_register(page_type )
192
231
)
193
232
194
- return (html_header )
233
+ return (html_data )
195
234
}
196
235
197
- generate_html_postfix_hrefs_non_reg <- function (filter , register_table_name ){
236
+ # ' Generates postfix hrefs for the venues/ codecheckers list pages
237
+ # '
238
+ # ' @param filter The filter being used such as "venues" or "codecheckers"
239
+ # ' @param table_name The name of the table
240
+ # ' @return A list of the hrefs.
241
+ generate_html_postfix_hrefs_non_reg <- function (filter , table_name ){
198
242
199
243
# For register tables that arent of subcategories of a filter type, the
200
244
# json url link is register/filter/index.json
201
- if (register_table_name %in% list (" all_venues" , " codecheckers" )){
245
+ if (table_name %in% list (" all_venues" , " codecheckers" )){
202
246
hrefs <- list (
203
247
json_href = paste0(" https://codecheck.org.uk/register/" , filter , " /index.json" )
204
248
)
@@ -208,7 +252,7 @@ generate_html_postfix_hrefs_non_reg <- function(filter, register_table_name){
208
252
# filter/register_table_name/index.json where register_table_name is the subcategory name
209
253
else {
210
254
hrefs <- list (
211
- json_href = paste0(" https://codecheck.org.uk/register/" , filter , " /" , register_table_name ," /index.json" )
255
+ json_href = paste0(" https://codecheck.org.uk/register/" , filter , " /" , table_name ," /index.json" )
212
256
)
213
257
}
214
258
0 commit comments