rougail-tutorials_builder/load.py
2024-07-21 19:47:24 +02:00

51 lines
1.9 KiB
Python
Executable file

#!/usr/bin/env python3
from pathlib import Path
from ruamel.yaml import YAML
from rougail import Rougail, RougailConfig
from rougaildoc import RougailDoc
NUM="50"
if __name__ == "__main__":
rougailconfig = RougailConfig.copy()
# rougailconfig['dictionaries_dir'] = [f'{NUM}/dictionaries/rougail']
rougailconfig['variable_namespace'] = 'proxy'
rougailconfig['dictionaries_dir'] = ['all/proxy']
rougailconfig['extra_dictionaries'] = {'foxyproxy': ['all/foxyproxy']}
rougailconfig['tiramisu_cache'] = "cache.py"
# rougail = Rougail(rougailconfig)
# config = rougail.get_config()
# print(config.value.get())
output = 'github'
inventory = RougailDoc(rougailconfig=rougailconfig,
output=output,
title_level=2,
)
doc = inventory.formater.header()
doc += inventory.formater.title('Tutorial description files', 1)
yaml = YAML()
old_namespace = None
for r in [[rougailconfig['dictionaries_dir']], rougailconfig['extra_dictionaries'].values()]:
for dirs in r:
for d in dirs:
files = list(Path(d).iterdir())
files.sort()
for f in files:
namespace = f.parent.name
if namespace != old_namespace:
doc += inventory.formater.title(namespace, 2)
if f.name.endswith('.yml') or f.name.endswith('.yaml'):
doc += inventory.formater.title(f.name, 3)
with f.open(encoding="utf8") as file_fh:
objects = yaml.load(file_fh)
doc += inventory.formater.yaml(objects)
old_namespace = namespace
doc += inventory.formater.title('Generated documentation', 1)
doc += inventory.gen_doc()
doc_file = Path('README.md')
with doc_file.open('w') as docfh:
docfh.write(doc)