diff --git a/site/doc/index.uce b/site/doc/index.uce index 78b9d41..6b4c73f 100644 --- a/site/doc/index.uce +++ b/site/doc/index.uce @@ -45,9 +45,14 @@ void render_doc_params(StringList param_lines) ?>> } -String doc_example_path(String page, u64 idx) +String doc_example_path(Request& context, String page, u64 idx) { - return("examples/_gen/" + page + "_" + std::to_string(idx + 1) + ".uce"); + String bin_dir = context.params["UCE_BIN_DIRECTORY"]; + if(bin_dir == "") + return(""); + String dir = path_join(bin_dir, "doc-examples"); + mkdir(dir); + return(path_join(dir, page + "_" + std::to_string(idx + 1) + ".uce")); } String doc_example_unit_source(String body) @@ -62,9 +67,11 @@ bool doc_write_if_changed(String path, String content) return(file_put_contents(path, content)); } -String doc_render_example_output(String page, u64 idx, String body) +String doc_render_example_output(Request& context, String page, u64 idx, String body) { - String path = doc_example_path(page, idx); + String path = doc_example_path(context, page, idx); + if(path == "") + return("DOC EXAMPLE ERROR: UCE_BIN_DIRECTORY is not available"); String unit_source = doc_example_unit_source(body); if(!doc_write_if_changed(path, unit_source)) return("DOC EXAMPLE ERROR: could not write " + path); @@ -79,12 +86,12 @@ String doc_render_example_output(String page, u64 idx, String body) return(out); } -void render_doc_examples(String page, StringList example_blocks) +void render_doc_examples(Request& context, String page, StringList example_blocks) { for(u64 idx = 0; idx < example_blocks.size(); idx++) { String body = example_blocks[idx]; - String output = doc_render_example_output(page, idx, body); + String output = doc_render_example_output(context, page, idx, body); ?>
= body ?>@@ -276,7 +283,7 @@ RENDER(Request& context) ?> } - render_doc_examples(page, doc_page.example_blocks); + render_doc_examples(context, page, doc_page.example_blocks); ?> diff --git a/src/linux_fastcgi.cpp b/src/linux_fastcgi.cpp index d7d2793..66dfcc2 100644 --- a/src/linux_fastcgi.cpp +++ b/src/linux_fastcgi.cpp @@ -340,6 +340,9 @@ u64 request_seed_from_time(f64 time_value) void prepare_request_body_maps(Request& request) { + if(request.server) + request.params["UCE_BIN_DIRECTORY"] = request.server->config["BIN_DIRECTORY"]; + String route_path; request.get = parse_query(request.params["QUERY_STRING"], &route_path); request_populate_context_params_from_route(request, route_path);