Main function to run the documentation server.
()
| 186 | |
| 187 | |
| 188 | def main(): |
| 189 | """Main function to run the documentation server.""" |
| 190 | parser = argparse.ArgumentParser( |
| 191 | description="Simple documentation server for hosting markdown documentation folders" |
| 192 | ) |
| 193 | parser.add_argument( |
| 194 | "--docs-folder", |
| 195 | type=str, |
| 196 | required=True, |
| 197 | help="Path to the documentation folder containing markdown files and module_tree.json" |
| 198 | ) |
| 199 | parser.add_argument( |
| 200 | "--port", |
| 201 | type=int, |
| 202 | default=8000, |
| 203 | help="Port to run the server on (default: 8000)" |
| 204 | ) |
| 205 | parser.add_argument( |
| 206 | "--host", |
| 207 | type=str, |
| 208 | default="127.0.0.1", |
| 209 | help="Host to bind the server to (default: 127.0.0.1)" |
| 210 | ) |
| 211 | parser.add_argument( |
| 212 | "--debug", |
| 213 | action="store_true", |
| 214 | help="Run the server in debug mode" |
| 215 | ) |
| 216 | |
| 217 | args = parser.parse_args() |
| 218 | |
| 219 | # Validate docs folder |
| 220 | docs_folder = Path(args.docs_folder) |
| 221 | if not docs_folder.exists(): |
| 222 | print(f"Error: Documentation folder '{docs_folder}' does not exist") |
| 223 | sys.exit(1) |
| 224 | |
| 225 | if not docs_folder.is_dir(): |
| 226 | print(f"Error: '{docs_folder}' is not a directory") |
| 227 | sys.exit(1) |
| 228 | |
| 229 | # Check for overview.md |
| 230 | overview_file = docs_folder / "overview.md" |
| 231 | if not overview_file.exists(): |
| 232 | print(f"Warning: overview.md not found in '{docs_folder}'") |
| 233 | |
| 234 | # Set global variables and environment variable for uvicorn reload |
| 235 | global DOCS_FOLDER, MODULE_TREE |
| 236 | DOCS_FOLDER = str(docs_folder.resolve()) |
| 237 | MODULE_TREE = load_module_tree(docs_folder) |
| 238 | |
| 239 | # Set environment variable so uvicorn reload can pick it up |
| 240 | import os |
| 241 | os.environ['DOCS_FOLDER'] = DOCS_FOLDER |
| 242 | |
| 243 | print(f"📚 Starting documentation server...") |
| 244 | print(f"📁 Documentation folder: {DOCS_FOLDER}") |
| 245 | print(f"🌐 Server running at: http://{args.host}:{args.port}") |
no test coverage detected