@@ -32,10 +32,9 @@ add_repository_links_html <- function(register_table) {
32
32
# ' Dynamically generates a html_document.yml with the full paths to the index header, prefix
33
33
# ' and postfix.html files.
34
34
# '
35
- # ' @param filter The filter name
36
- # ' @param register_table_name The register table name
37
- generate_html_document_yml <- function (filter , register_table_name ) {
38
- dir <- paste0(getwd(), " /" , get_output_dir(filter , register_table_name ))
35
+ # ' @param output_dir The output directory where the html_document needs to be saved.
36
+ generate_html_document_yml <- function (output_dir ) {
37
+ output_dir <- paste0(getwd(), " /" , output_dir )
39
38
40
39
yaml_content <- sprintf(
41
40
" # DO NOT EDIT THIS FILE MANUALLY
@@ -48,54 +47,63 @@ generate_html_document_yml <- function(filter, register_table_name) {
48
47
highlight: null
49
48
self_contained: false
50
49
lib_dir: libs" ,
51
- dir , dir , dir
50
+ output_dir , output_dir , output_dir
52
51
)
53
- writeLines(yaml_content , paste0(dir , " html_document.yml" ))
52
+ writeLines(yaml_content , paste0(output_dir , " html_document.yml" ))
54
53
}
55
54
56
55
# ' Dynamically generates the index_postfix.html from a template file
57
56
# '
57
+ # ' @param output_dir The output directory
58
58
# ' @param filter The filter name
59
- # ' @param register_table_name The register table name
59
+ # ' @param register_table_name The register table name. If this is NULL we are generating list of venues/ codecheckers
60
60
# '
61
61
# ' @importFrom whisker whisker.render
62
- create_index_postfix_html <- function (filter , register_table_name ){
63
- hrefs <- generate_html_postfix_hrefs(filter , register_table_name )
62
+ create_index_postfix_html <- function (output_dir , filter , register_table_name = NULL ){
63
+
64
+ # When we have register table names, we are handling the case of reg tables
65
+ if (! is.null(register_table_name )){
66
+ postfix_template <- readLines(CONFIG $ TEMPLATE_DIR [[" reg" ]][[" postfix" ]], warn = FALSE )
67
+ # Render the template with the correct hrefs
68
+ hrefs <- generate_html_postfix_hrefs_reg(filter , register_table_name )
69
+ }
70
+
71
+ # Generating the postfix for non-register table pages (e.g. list of venues and codecheckers)
72
+ else {
73
+ postfix_template <- readLines(CONFIG $ TEMPLATE_DIR [[" non_reg" ]][[" postfix" ]], warn = FALSE )
74
+ hrefs <- list (
75
+ json_href = paste0(" https://codecheck.org.uk/register/" , filter , " /index.json" )
76
+ )
77
+ }
64
78
65
- # Using the index_postfix_template
66
- postfix_template <- readLines(paste0(getwd(), " /docs/index_postfix_template.html" ), warn = FALSE )
67
- # Render the template with the correct hrefs
68
79
output <- whisker.render(postfix_template , hrefs )
69
- writeLines(output , paste0(get_output_dir( filter , register_table_name ) , " index_postfix.html" ))
80
+ writeLines(output , paste0(output_dir , " index_postfix.html" ))
70
81
}
71
82
72
83
# ' Dynamically generates the index_prefix.html from a template file
73
84
# '
74
- # ' @param filter The filter name
75
- # ' @param register_table_name The register table name
76
- create_index_prefix_html <- function (filter , register_table_name ){
85
+ # ' @param output_dir The output directory
86
+ create_index_prefix_html <- function (output_dir ){
77
87
# Using the index_prefix_template
78
- prefix_template <- readLines(paste0(getwd(), " /docs/index_prefix_template.html" ), warn = FALSE )
79
-
80
- writeLines(prefix_template , paste0(get_output_dir(filter , register_table_name ), " index_prefix.html" ))
88
+ prefix_template <- readLines(CONFIG $ TEMPLATE_DIR [[" reg" ]][[" prefix" ]], warn = FALSE )
89
+ writeLines(prefix_template , paste0(output_dir , " index_prefix.html" ))
81
90
}
82
91
83
92
# ' Dynamically generates the index_header.html from a template file
84
93
# '
85
- # ' @param filter The filter name
86
- # ' @param register_table_name The register table name
87
- create_index_header_html <- function (filter , register_table_name ){
94
+ # ' @param output_dir The output directory
95
+ create_index_header_html <- function (output_dir ){
88
96
# Using the index_header_template
89
- header_template <- readLines(paste0(getwd(), " /docs/index_header_template.html " ) , warn = FALSE )
97
+ header_template <- readLines(CONFIG $ TEMPLATE_DIR [[ " reg " ]][[ " header " ]] , warn = FALSE )
90
98
91
- writeLines(header_template , paste0(get_output_dir( filter , register_table_name ) , " index_header.html" ))
99
+ writeLines(header_template , paste0(output_dir , " index_header.html" ))
92
100
}
93
101
94
- # ' Generates the hrefs to set in the postfix.html file.
102
+ # ' Generates the hrefs to set in the postfix.html file for the rendering of register tables .
95
103
# '
96
104
# ' @param filter The filter name
97
105
# ' @param register_table_name The register table name
98
- generate_html_postfix_hrefs <- function (filter , register_table_name ) {
106
+ generate_html_postfix_hrefs_reg <- function (filter , register_table_name ) {
99
107
hrefs <- list (
100
108
csv_source_href = generate_href(filter , register_table_name , " csv_source" ),
101
109
searchable_csv_href = generate_href(filter , register_table_name , " searchable_csv" ),
@@ -155,14 +163,15 @@ generate_href <- function(filter, register_table_name, href_type) {
155
163
}
156
164
}
157
165
158
- # ' Creates html files for each index section- the index postfix, prefix and the header
166
+ # ' Creates index postfix, prefix and the header
159
167
# '
168
+ # ' @param output_dir The output directory of the section files
160
169
# ' @param filter The filter name
161
170
# ' @param register_table_name The register table name
162
- create_index_section_files <- function (filter , register_table_name ) {
163
- create_index_postfix_html(filter , register_table_name )
164
- create_index_prefix_html(filter , register_table_name )
165
- create_index_header_html(filter , register_table_name )
171
+ create_index_section_files <- function (output_dir , filter , register_table_name = NULL ) {
172
+ create_index_postfix_html(output_dir , filter , register_table_name )
173
+ create_index_prefix_html(output_dir )
174
+ create_index_header_html(output_dir )
166
175
}
167
176
168
177
# ' Renders register html for a single register_table
@@ -171,14 +180,14 @@ create_index_section_files <- function(filter, register_table_name) {
171
180
# ' @param register_table The register table
172
181
# ' @param register_table_name The register table name
173
182
render_register_html <- function (filter , register_table , register_table_name ){
174
- # Add icons to the Repository column for HTML output, use a copy of the register.md
183
+
184
+ output_dir <- get_output_dir(filter , register_table_name )
175
185
register_table <- add_repository_links_html(register_table )
176
186
177
187
# Dynamically create the index header, prefix and postfix files
178
- create_index_section_files(filter , register_table_name )
179
- generate_html_document_yml(filter , register_table_name )
188
+ create_index_section_files(output_dir , filter , register_table_name )
189
+ generate_html_document_yml(output_dir )
180
190
181
- output_dir <- get_output_dir(filter , register_table_name )
182
191
# Capture the HTML output from a markdown file
183
192
# Note that the temp md file must be created even if a md exists because the register table
184
193
# now has different icons under "Repository" column
@@ -214,8 +223,10 @@ render_register_html <- function(filter, register_table, register_table_name){
214
223
render_register_htmls <- function (list_register_tables ) {
215
224
# Loop over each register table
216
225
for (filter in names(list_register_tables )){
217
- for (register_table_name in names(list_register_tables [[filter ]])) {
218
- register_table <- list_register_tables [[filter ]][[register_table_name ]]
226
+ list_filtered_reg_tables <- list_register_tables [[filter ]]
227
+
228
+ for (register_table_name in names(list_filtered_reg_tables )) {
229
+ register_table <- list_filtered_reg_tables [[register_table_name ]]
219
230
render_register_html(filter , register_table , register_table_name )
220
231
}
221
232
}
0 commit comments