provisioning/tools/distribution/guide_generators.nu

100 lines
3.5 KiB
Plaintext
Raw Normal View History

#!/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."
}