diff --git a/Write-an-Extension.md b/Write-an-Extension.md index 5c9a18b..662760f 100644 --- a/Write-an-Extension.md +++ b/Write-an-Extension.md @@ -1,38 +1,38 @@ -🆕 Setup Extensions: Host + Options Support -------------------------------------------- -The Setup Extensions system now supports extended script metadata in the header. +# 🆕 Setup Extensions: Host + Options Support + +The **Setup Extensions** system now supports extended script metadata in the header. This allows script authors to define dropdown menus and control how the script is executed. -✅ New Metadata Parameters: +--- - # Description: - • Short, user-friendly description of what the script does. - • Displayed in the Extensions page below the title. +## ✅ New Metadata Parameters - # Host: embedded | console - • embedded = run inside OOBE, output is captured and shown in the app. - • console = run in an external PowerShell window with -NoExit. - • Default: embedded (if not specified). +### `# Description: ` +- Short, user-friendly description of what the script does. +- Displayed in the Extensions page below the title. - # Options: value1; value2; value3; ... - • Defines multiple selectable actions for a single script. - • A dropdown is automatically shown in the Extensions page. - • The selected value is passed to the script as $choice. +### `# Host: embedded | console` +- **embedded** = run inside OOBE, output is captured and shown in the app. +- **console** = run in an external PowerShell window with `-NoExit`. +- **Default:** `embedded` (if not specified). -Example Script Header: +### `# Options: value1; value2; value3; ...` +- Defines multiple selectable actions for a single script. +- A dropdown is automatically shown in the Extensions page. +- The selected value is passed to the script as `$choice`. - # Description: File Explorer tweaks - # Host: embedded - # Options: Show file extensions; Hide file extensions; Open This PC +--- - param([string]$choice) - switch ($choice) { - "Show file extensions" { ... } - "Hide file extensions" { ... } - "Open This PC" { ... } - } +## 📄 Example Script Header -------------------------------------------- -With this update, one script can now provide multiple user actions, -and devs can control whether output stays inside the OOBE app -or opens in a real console window. +```powershell +# Description: File Explorer tweaks +# Host: embedded +# Options: Show file extensions; Hide file extensions; Open This PC + +param([string]$choice) +switch ($choice) { + "Show file extensions" { ... } + "Hide file extensions" { ... } + "Open This PC" { ... } +}