This commit is contained in:
2025-11-07 07:58:53 +04:00
parent 836a8f799e
commit 5a6f3d323b
5 changed files with 89 additions and 68 deletions

View File

@@ -18,8 +18,8 @@ pub mut:
template_update bool
coderoot string
// Client configuration
use_atlas bool // true = atlas_client, false = doctreeclient
atlas_export_dir string // Required when use_atlas = true
use_atlas bool // true = atlas_client, false = doctreeclient
atlas_dir string // Required when use_atlas = true
}
@[params]
@@ -32,8 +32,8 @@ pub mut:
template_update bool
coderoot string
// Client configuration
use_atlas bool // true = atlas_client, false = doctreeclient
atlas_export_dir string // Required when use_atlas = true
use_atlas bool // true = atlas_client, false = doctreeclient
atlas_dir string // Required when use_atlas = true
}
// return the last know config
@@ -42,6 +42,9 @@ pub fn config() !DocusaurusConfig {
docusaurus_config << DocusaurusConfigParams{}
}
mut args := docusaurus_config[0] or { panic('bug in docusaurus config') }
if args.use_atlas && args.atlas_dir == '' {
return error('use_atlas is true but atlas_dir is not set')
}
if args.path_build == '' {
args.path_build = '${os.home_dir()}/hero/var/docusaurus/build'
}
@@ -53,14 +56,14 @@ pub fn config() !DocusaurusConfig {
}
mut c := DocusaurusConfig{
path_publish: pathlib.get_dir(path: args.path_publish, create: true)!
path_build: pathlib.get_dir(path: args.path_build, create: true)!
coderoot: args.coderoot
install: args.install
reset: args.reset
template_update: args.template_update
use_atlas: args.use_atlas
atlas_export_dir: args.atlas_export_dir
path_publish: pathlib.get_dir(path: args.path_publish, create: true)!
path_build: pathlib.get_dir(path: args.path_build, create: true)!
coderoot: args.coderoot
install: args.install
reset: args.reset
template_update: args.template_update
use_atlas: args.use_atlas
atlas_dir: args.atlas_dir
}
if c.install {
install(c)!

View File

@@ -1,7 +1,7 @@
module docusaurus
import incubaid.herolib.core.pathlib
import incubaid.herolib.data.atlas.client
import incubaid.herolib.data.atlas.client as atlas_client
import incubaid.herolib.web.site { Page, Section, Site }
import incubaid.herolib.data.markdown.tools as markdowntools
import incubaid.herolib.ui.console
@@ -60,7 +60,8 @@ pub fn (mut docsite DocSite) generate_docs() ! {
docs_path := '${c.path_build.path}/docs'
// Create the appropriate client based on configuration
mut client := IDocClient(atlas.client.new(export_dir: c.atlas_export_dir)!)
mut client_instance := atlas_client.new(export_dir: c.atlas_dir)!
mut client := IDocClient(client_instance)
mut gen := SiteGenerator{
path: pathlib.get_dir(path: docs_path, create: true)!
@@ -177,7 +178,7 @@ fn (mut generator SiteGenerator) page_generate(args_ Page) ! {
pagefile.write(c)!
generator.client.copy_images(collection_name, page_name, pagefile.path_dir()) or {
generator.client.copy_images(collection_name, page_name, pagefile.path_dir().path) or {
generator.error("Couldn't copy image ${pagefile} for '${page_name}' in collection '${collection_name}', try to find the image and fix the path is in ${args.path}.}\nError: ${err}")!
return
}

View File

@@ -14,12 +14,13 @@ pub fn play(mut plbook PlayBook) ! {
mut param_define := action_define.params
config_set(
path_build: param_define.get_default('path_build', '')!
path_publish: param_define.get_default('path_publish', '')!
reset: param_define.get_default_false('reset')
template_update: param_define.get_default_false('template_update')
install: param_define.get_default_false('install')
atlas_dir: param_define.get_default('atlas_dir', '')!
path_build: param_define.get_default('path_build', '')!
path_publish: param_define.get_default('path_publish', '')!
reset: param_define.get_default_false('reset')
template_update: param_define.get_default_false('template_update')
install: param_define.get_default_false('install')
atlas_dir: param_define.get_default('atlas_dir', '')!
use_atlas: param_define.get_default_false('use_atlas')
)!
site_name := param_define.get('name') or {