44 lines
1.4 KiB
V
44 lines
1.4 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))!
|
|
|
|
// generate sidebar.json, now new way to drive docusaurus navigation
|
|
mut sidebar_file := pathlib.get_file(path: '${cfg_path}/sidebar.json', create: true)!
|
|
sidebar_file.write(docsite.config.sidebar_json_txt)!
|
|
|
|
docsite.generate_docs()!
|
|
|
|
docsite.import()!
|
|
}
|