@@ -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,62 @@ 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
+ # When we have a reg table name, we adjusting the hrefs of the postfix
64
+ if (! is.null(register_table_name )){
65
+ postfix_template <- readLines(paste0(getwd(), " /docs/templates/reg_tables/index_postfix_template.html" ), warn = FALSE )
66
+ # Render the template with the correct hrefs
67
+ hrefs <- generate_html_postfix_hrefs_reg(filter , register_table_name )
68
+ }
69
+
70
+ # Generating the postfix for non-register table pages (e.g. list of venues and codecheckers)
71
+ else {
72
+ postfix_template <- readLines(paste0(getwd(), " /docs/templates/codecheckers_venues_list/index_postfix_template.html" ), warn = FALSE )
73
+ hrefs <- list (
74
+ json_href = paste0(" https://codecheck.org.uk/register/" , filter , " /index.json" )
75
+ )
76
+ }
64
77
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
78
output <- whisker.render(postfix_template , hrefs )
69
- writeLines(output , paste0(get_output_dir( filter , register_table_name ) , " index_postfix.html" ))
79
+ writeLines(output , paste0(output_dir , " index_postfix.html" ))
70
80
}
71
81
72
82
# ' Dynamically generates the index_prefix.html from a template file
73
83
# '
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 ){
84
+ # ' @param output_dir The output directory
85
+ create_index_prefix_html <- function (output_dir ){
77
86
# 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" ))
87
+ prefix_template <- readLines(paste0(getwd(), " /docs/templates/general/index_prefix_template.html" ), warn = FALSE )
88
+ writeLines(prefix_template , paste0(output_dir , " index_prefix.html" ))
81
89
}
82
90
83
91
# ' Dynamically generates the index_header.html from a template file
84
92
# '
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 ){
93
+ # ' @param output_dir The output directory
94
+ create_index_header_html <- function (output_dir ){
88
95
# Using the index_header_template
89
- header_template <- readLines(paste0(getwd(), " /docs/index_header_template.html" ), warn = FALSE )
96
+ header_template <- readLines(paste0(getwd(), " /docs/templates/general/ index_header_template.html" ), warn = FALSE )
90
97
91
- writeLines(header_template , paste0(get_output_dir( filter , register_table_name ) , " index_header.html" ))
98
+ writeLines(header_template , paste0(output_dir , " index_header.html" ))
92
99
}
93
100
94
- # ' Generates the hrefs to set in the postfix.html file.
101
+ # ' Generates the hrefs to set in the postfix.html file for the rendering of register tables .
95
102
# '
96
103
# ' @param filter The filter name
97
104
# ' @param register_table_name The register table name
98
- generate_html_postfix_hrefs <- function (filter , register_table_name ) {
105
+ generate_html_postfix_hrefs_reg <- function (filter , register_table_name ) {
99
106
hrefs <- list (
100
107
csv_source_href = generate_href(filter , register_table_name , " csv_source" ),
101
108
searchable_csv_href = generate_href(filter , register_table_name , " searchable_csv" ),
@@ -155,14 +162,15 @@ generate_href <- function(filter, register_table_name, href_type) {
155
162
}
156
163
}
157
164
158
- # ' Creates html files for each index section- the index postfix, prefix and the header
165
+ # ' Creates index postfix, prefix and the header
159
166
# '
167
+ # ' @param output_dir The output directory of the section files
160
168
# ' @param filter The filter name
161
169
# ' @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 )
170
+ create_index_section_files <- function (output_dir , filter , register_table_name = NULL ) {
171
+ create_index_postfix_html(output_dir , filter , register_table_name )
172
+ create_index_prefix_html(output_dir )
173
+ create_index_header_html(output_dir )
166
174
}
167
175
168
176
# ' Renders register html for a single register_table
@@ -171,14 +179,14 @@ create_index_section_files <- function(filter, register_table_name) {
171
179
# ' @param register_table The register table
172
180
# ' @param register_table_name The register table name
173
181
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
182
+
183
+ output_dir <- get_output_dir(filter , register_table_name )
175
184
register_table <- add_repository_links_html(register_table )
176
185
177
186
# 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 )
187
+ create_index_section_files(output_dir , filter , register_table_name )
188
+ generate_html_document_yml(output_dir )
180
189
181
- output_dir <- get_output_dir(filter , register_table_name )
182
190
# Capture the HTML output from a markdown file
183
191
# Note that the temp md file must be created even if a md exists because the register table
184
192
# now has different icons under "Repository" column
@@ -214,8 +222,10 @@ render_register_html <- function(filter, register_table, register_table_name){
214
222
render_register_htmls <- function (list_register_tables ) {
215
223
# Loop over each register table
216
224
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 ]]
225
+ list_filtered_reg_tables <- list_register_tables [[filter ]]
226
+
227
+ for (register_table_name in names(list_filtered_reg_tables )) {
228
+ register_table <- list_filtered_reg_tables [[register_table_name ]]
219
229
render_register_html(filter , register_table , register_table_name )
220
230
}
221
231
}
0 commit comments