module docusaurus import incubaid.herolib.core.pathlib import json import incubaid.herolib.osal.core as osal import incubaid.herolib.ui.console pub fn (mut docsite DocSite) generate() ! { if docsite.generated { return } mut c := config()! console.print_header(' docsite generate: ${docsite.name} on ${c.path_build.path}') // Store Docusaurus site structure in Redis for link processing // docsite.store_site_structure()! osal.rm('${c.path_build.path}/docs')! cfg_path := '${c.path_build.path}/cfg' osal.rm(cfg_path)! mut main_file := pathlib.get_file(path: '${cfg_path}/main.json', create: true)! main_file.write(json.encode_pretty(docsite.config.main))! mut navbar_file := pathlib.get_file(path: '${cfg_path}/navbar.json', create: true)! navbar_file.write(json.encode_pretty(docsite.config.navbar))! mut footer_file := pathlib.get_file(path: '${cfg_path}/footer.json', create: true)! footer_file.write(json.encode_pretty(docsite.config.footer))! mut announcement_file := pathlib.get_file(path: '${cfg_path}/announcement.json', create: true)! announcement_file.write(json.encode_pretty(docsite.config.announcement))! docsite.generate_docs()! docsite.import()! }