From ab6b257a3908e1aeb247a09964e1b8db422c5890 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Sun, 9 Jun 2024 13:17:13 -0700 Subject: [PATCH] Implement doc building --- support/mkdocs | 24 +++++++++++++++---- .../mkdocstrings_handlers/cxx/__init__.py | 3 ++- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/support/mkdocs b/support/mkdocs index 037f4246..823f71a6 100755 --- a/support/mkdocs +++ b/support/mkdocs @@ -1,17 +1,31 @@ #!/usr/bin/env python3 # A script to invoke mkdocs with the correct environment. -import os, subprocess, sys +import os, shutil, sys +from subprocess import call -dirname = os.path.join(os.path.dirname(__file__), 'python') +dirname = os.path.dirname(__file__) # Set PYTHONPATH for the mkdocstrings handler. env = os.environ.copy() path = env.get('PYTHONPATH') -env['PYTHONPATH'] = (path + ':' if path else '') + dirname +env['PYTHONPATH'] = \ + (path + ':' if path else '') + os.path.join(dirname, 'python') config_path = os.path.join(dirname, 'mkdocs.yml') args = sys.argv[1:] -if 'build' in args: +if len(args) > 0: + command = args[0] + if command == 'deploy': + site_dir = 'fmt.dev' + shutil.rmtree(site_dir) + ret = call(['git', 'clone', '--depth=1', + 'git@github.com:fmtlib/fmt.dev.git']) + if ret != 0: + sys.exit(ret) + sys.exit(call(['mike', 'deploy', '--config-file', config_path, + '--branch', 'master', 'dev'], + cwd=site_dir, env=env)) + elif not command.startswith('-'): args += ['-f', config_path] -subprocess.run(['mkdocs'] + args, env=env) +sys.exit(call(['mkdocs'] + args, env=env)) diff --git a/support/python/mkdocstrings_handlers/cxx/__init__.py b/support/python/mkdocstrings_handlers/cxx/__init__.py index a575a101..1b8e597c 100644 --- a/support/python/mkdocstrings_handlers/cxx/__init__.py +++ b/support/python/mkdocstrings_handlers/cxx/__init__.py @@ -2,6 +2,7 @@ # Copyright (c) 2012 - present, Victor Zverovich import os +from pathlib import Path import xml.etree.ElementTree as et from mkdocstrings.handlers.base import BaseHandler from typing import Any, Mapping, Optional @@ -156,7 +157,7 @@ class CxxHandler(BaseHandler): # Run doxygen. cmd = ['doxygen', '-'] - doc_dir = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) + doc_dir = Path(__file__).parents[3] include_dir = os.path.join(os.path.dirname(doc_dir), 'include', 'fmt') self._ns2doxyxml = {} self._doxyxml_dir = 'doxyxml'