| #include <filesystem> | |
| #include <fstream> | |
| #include <iostream> | |
| int main(int argc, char* argv[]) { | |
| if (argc < 2) { | |
| std::cout << "No Doxyfile provided." << std::endl; | |
| exit(1); | |
| } | |
| std::string doxyfile_path{argv[1]}; | |
| std::string out_path{doxyfile_path.substr(0, doxyfile_path.find_last_of("/\\") + 1)}; | |
| std::cout << "Doxyfile path: " << doxyfile_path << std::endl; | |
| std::cout << "Output path: " << out_path << std::endl; | |
| // Create an html directory if it doesn't exist | |
| if (!std::filesystem::exists(out_path + "html")) { | |
| std::filesystem::create_directory(out_path + "html"); | |
| } | |
| // Generate a simple HTML file as documentation | |
| std::ofstream file(out_path + "html/index.html"); | |
| file << "<!DOCTYPE html>\n" | |
| "<html>\n" | |
| "<head>\n" | |
| " <title>Self-Documenting Code</title>\n" | |
| "</head>\n" | |
| "<body>\n" | |
| " <h1>Self-Documenting Code Example</h1>\n" | |
| " <p>This C++ program generates its own documentation.</p>\n" | |
| " <p>Doxyfile used: " | |
| << doxyfile_path | |
| << "</p>\n" | |
| " <p>Output directory: " | |
| << out_path | |
| << "</p>\n" | |
| " <p>Generated by a custom executable mimicking Doxygen 1.14.0.</p>\n" | |
| "</body>\n" | |
| "</html>\n"; | |
| file.close(); | |
| std::cout << "Self-documenting code generated: html/index.html" << std::endl; | |
| return 0; | |
| } |