100 lines
3.5 KiB
Plaintext
100 lines
3.5 KiB
Plaintext
|
|
#!/usr/bin/env nu
|
||
|
|
|
||
|
|
# Guide generators for documentation
|
||
|
|
#
|
||
|
|
# Generates user-facing guides:
|
||
|
|
# - Getting started guide
|
||
|
|
# - Installation guide
|
||
|
|
# - CLI reference
|
||
|
|
# - Troubleshooting guide
|
||
|
|
# - FAQ
|
||
|
|
|
||
|
|
use std log
|
||
|
|
|
||
|
|
# Generate user documentation guides
|
||
|
|
export def generate_user_documentation [docs_config: record, discovery_result: record] {
|
||
|
|
log info "Generating user documentation..."
|
||
|
|
|
||
|
|
let start_time = (date now)
|
||
|
|
|
||
|
|
let result = (do {
|
||
|
|
let user_docs_dir = ($docs_config.output_dir | path join "user")
|
||
|
|
mkdir $user_docs_dir
|
||
|
|
|
||
|
|
mut generated_docs = []
|
||
|
|
|
||
|
|
# Generate getting started guide
|
||
|
|
let getting_started = generate_getting_started_guide $docs_config $discovery_result
|
||
|
|
|
||
|
|
$getting_started | save ($user_docs_dir | path join "getting-started.md")
|
||
|
|
$generated_docs = ($generated_docs | append "getting-started.md")
|
||
|
|
|
||
|
|
# Generate installation guide
|
||
|
|
let installation_guide = generate_installation_guide $docs_config $discovery_result
|
||
|
|
|
||
|
|
$installation_guide | save ($user_docs_dir | path join "installation.md")
|
||
|
|
$generated_docs = ($generated_docs | append "installation.md")
|
||
|
|
|
||
|
|
# Generate CLI reference
|
||
|
|
let cli_reference = generate_cli_reference $docs_config $discovery_result
|
||
|
|
|
||
|
|
$cli_reference | save ($user_docs_dir | path join "cli-reference.md")
|
||
|
|
$generated_docs = ($generated_docs | append "cli-reference.md")
|
||
|
|
|
||
|
|
# Generate troubleshooting guide
|
||
|
|
let troubleshooting = generate_troubleshooting_guide $docs_config $discovery_result
|
||
|
|
|
||
|
|
$troubleshooting | save ($user_docs_dir | path join "troubleshooting.md")
|
||
|
|
$generated_docs = ($generated_docs | append "troubleshooting.md")
|
||
|
|
|
||
|
|
# Generate FAQ
|
||
|
|
let faq = generate_faq $docs_config $discovery_result
|
||
|
|
|
||
|
|
$faq | save ($user_docs_dir | path join "faq.md")
|
||
|
|
$generated_docs = ($generated_docs | append "faq.md")
|
||
|
|
|
||
|
|
{
|
||
|
|
status: "success"
|
||
|
|
docs_generated: ($generated_docs | length)
|
||
|
|
generated_docs: $generated_docs
|
||
|
|
user_docs_dir: $user_docs_dir
|
||
|
|
duration: ((date now) - $start_time)
|
||
|
|
}
|
||
|
|
} | complete)
|
||
|
|
|
||
|
|
if $result.exit_code != 0 {
|
||
|
|
{
|
||
|
|
status: "failed"
|
||
|
|
reason: $result.stderr
|
||
|
|
duration: ((date now) - $start_time)
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
$result.stdout
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Generate getting started guide (placeholder - content generated at runtime)
|
||
|
|
def generate_getting_started_guide [docs_config: record, discovery_result: record] {
|
||
|
|
"# Getting Started with Provisioning System\n\nThis is a placeholder guide generated at runtime."
|
||
|
|
}
|
||
|
|
|
||
|
|
# Generate installation guide (placeholder - content generated at runtime)
|
||
|
|
def generate_installation_guide [docs_config: record, discovery_result: record] {
|
||
|
|
"# Installation Guide\n\nThis is a placeholder installation guide generated at runtime."
|
||
|
|
}
|
||
|
|
|
||
|
|
# Generate CLI reference (placeholder - content generated at runtime)
|
||
|
|
def generate_cli_reference [docs_config: record, discovery_result: record] {
|
||
|
|
"# CLI Reference\n\nThis is a placeholder CLI reference generated at runtime."
|
||
|
|
}
|
||
|
|
|
||
|
|
# Generate troubleshooting guide (placeholder - content generated at runtime)
|
||
|
|
def generate_troubleshooting_guide [docs_config: record, discovery_result: record] {
|
||
|
|
"# Troubleshooting Guide\n\nThis is a placeholder troubleshooting guide generated at runtime."
|
||
|
|
}
|
||
|
|
|
||
|
|
# Generate FAQ (placeholder - content generated at runtime)
|
||
|
|
def generate_faq [docs_config: record, discovery_result: record] {
|
||
|
|
"# Frequently Asked Questions\n\nThis is a placeholder FAQ generated at runtime."
|
||
|
|
}
|