Files
herolib/lib/web/docusaurus/dsite_generate.v
2025-11-09 07:43:44 +04:00

40 lines
1.2 KiB
V

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()!
}