# Code adapted from: https://mkdocstrings.github.io/recipes/

from pathlib import Path
import mkdocs_gen_files

nav = mkdocs_gen_files.Nav()

src_dir = 'badgers'
reference_dir = 'reference'
for path in sorted(Path(src_dir).rglob('*.py')):
    module_path = path.with_suffix('')
    doc_path = path.with_suffix('.md')
    full_doc_path = Path(reference_dir, doc_path)

    parts = tuple(module_path.parts)
    if parts[-1] == '__init__':
        parts = parts[:-1]
        doc_path = doc_path.with_name('index.md')
        full_doc_path = full_doc_path.with_name('index.md')
    elif parts[-1] == '__main__':
        continue

    nav[parts] = doc_path.as_posix()

    with mkdocs_gen_files.open(full_doc_path, 'w') as fd:
        identifier = '.'.join(parts)
        print('::: ' + identifier, file=fd)

with mkdocs_gen_files.open(f'{reference_dir}/SUMMARY.md', 'w') as nav_file:
    nav_file.writelines(nav.build_literate_nav())
