Skip to main content

bashticle

Create interactive bash articles (bashticles) from markdown blog posts with streaming text, command execution, and user interaction

Quellinformationen

Repository
DimitriGilbert/dbuild
Letzte Quellaktivität
18. Januar 2026 um 21:11
Erkannte Sprache von SKILL.md
Englisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
5 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
bashticle
description
Create interactive bash articles (bashticles) from markdown blog posts with streaming text, command execution, and user interaction
# Bashticle Transform markdown blog posts into interactive bash scripts that users can read and execute directly from their terminal. ## When to Use Use this skill when a user asks to: - "Create a bashticle from this markdown" - "Turn this article into an interactive bash script" - "Make a terminal-based interactive article" - "Convert blog.md to a bash article" ## Two-Phase Approach Bashticle creation uses a two-phase approach: ### Phase 1: Generator Script (Boring, Structural) The `bashticle-generator.sh` script does the structural work: ```bash # Run the generator bashticle-generator.sh article.md # Or with custom output: bashticle-generator.sh article.md --output-file custom.sh ``` **What it does:** - Parses markdown for structure (title, sections) - Generates basic bashticle with STANDARD options only - Creates section function stubs - Builds main navigation flow **Standard options included:** - `--step` - Jump to specific section - `--run-command / -r` - Execute commands vs echo - `--dry-run / -d` - Echo only (default: ON) - `--stream / -s` - Enable streaming (default: ON) - `--verbose / -v` - Verbose output ### Phase 2: AI (Smart, Context-Aware) The AI (via this skill) enhances the bashticle: 1. **Read both files**: Original markdown + generated bashticle 2. **Use `parseArger parse`** to add article-specific options: ```bash parseArger parse bashticle.sh --inplace \ --opt 'ai-provider "AI provider" --short p --default-value "openrouter"' \ --opt 'ai-model "AI model" --short m' \ --opt 'api-key "API key" --short k' \ --opt 'project-name "Project name"' \ --opt 'reasoning "Reasoning tokens" --default-value "4096"' ``` 3. **Fill in section functions** with actual content 4. **Convert code blocks** to command arrays with proper variable injection ## What Gets Generated A `.sh` file with: - **parseArger CLI** - Full argument parsing with sensible defaults - **Helper functions** - stream_text, print_section, prompt_continue, run_cmd, show_cmd - **Section stubs** - One function per markdown section (AI fills these) - **Main flow** - Navigation with `--step` support ## Example Workflow ```bash # Step 1: Generate basic structure bashticle-generator.sh article.md # Step 2: AI enhances it (via this skill) # - Adds article-specific options with parseArger parse # - Fills in section content # - Converts code blocks to command arrays ``` ## Converting Markdown to Bash ### Sections (## headers) Each `##` or `###` header becomes a bash function: ```markdown ## Getting Started Content here... ``` Generated stub: ```bash show_getting_started() { print_section "Getting Started" # TODO: AI fills this in with actual content prompt_continue } ``` AI fills in: ```bash show_getting_started() { print_section "Getting Started" stream_text "Content here..." # Convert code blocks to command arrays local init_cmd=(npm install) show_cmd "Install dependencies" npm install run_cmd "${init_cmd[@]}" prompt_continue } ``` ### Code Blocks (```bash) Code blocks are converted to command arrays with variable injection: ```markdown ```bash npx task-o-matic@latest init --project-name my-project ``` ``` AI converts to: ```bash local init_cmd=( npx task-o-matic@latest init --project-name "$_arg_project_name" # Variable injection ) run_cmd "${init_cmd[@]}" ``` ## Helper Functions ```bash stream_text "text" [delay] # Typewriter effect (5ms default) print_section "title" # Cyan section header print_subsection "title" # Yellow subsection prompt_continue # Green "Press Enter" prompt run_cmd arg1 arg2 ... # Execute or echo based on flags show_cmd "explanation" cmd ... # Display command with description ``` ## Available Variables Variables from CLI arguments (after AI adds them): ```bash $_arg_ai_provider # --ai-provider value (if AI article) $_arg_ai_model # --ai-model value (if AI article) $_arg_api_key # --api-key value (if AI article) $_arg_project_name # --project-name value (if applicable) $_arg_reasoning # --reasoning value (if AI article) $_arg_stream # --stream flag $_arg_run_command # --run-command flag $_arg_dry_run # --dry-run flag $_arg_verbose # --verbose flag $_arg_step # Section to jump to ``` ## Color Scheme - **Cyan (36)**: Section headers - **Yellow (33)**: Subsections - **Green (32)**: User prompts - **Magenta (35)**: Commands - **White (37)**: Explanations - **Gray (90)**: Dry-run messages ## Examples **Generator creates:** ```bash show_init() { print_section "Initialization" # TODO: AI fills this in prompt_continue } ``` **AI converts to:** ```bash show_init() { print_section "Initialization" stream_text "Let's initialize the project..." echo "" show_cmd "Initialize with task-o-matic" \ npx task-o-matic@latest init init \ --project-name "$_arg_project_name" \ --frontend tanstack-router run_cmd npx task-o-matic@latest init init \ --project-name "$_arg_project_name" \ --frontend tanstack-router echo "" stream_text "Project initialized!" echo "" prompt_continue } ``` ## Running Generated Bashticles ```bash # View help ./bashticle.sh --help # Run full article (dry-run mode - default) ./bashticle.sh # Jump to specific section ./bashticle.sh init # Run with actual command execution (use in test directory!) ./bashticle.sh --run-command --ai-provider anthropic # Disable streaming for faster output ./bashticle.sh --no-stream ``` ## Implementation Notes ### What the Generator Does (Deterministic) - Extract title from frontmatter or first heading - Find all `##` and `###` sections - Generate basic parseArger CLI with standard options - Create section function stubs - Build main navigation flow - Always include helper functions ### What the AI Does (Context-Aware) - Analyze article content to determine needed options - Use `parseArger parse` to add relevant CLI options - Fill in section functions with actual content - Convert code blocks to command arrays - Inject CLI variables into commands appropriately - Handle article-specific patterns and conventions ## Files - **Generator**: `scripts/bashticle-generator.sh` - **Example bashticle**: `apps/web/content/blog/Black hole/From ralph to Eric/bashticle.sh` - **Helpers reference**: `references/helpers.md`
Auf GitHub ansehen