{
  "slug": "bw-dev",
  "name": "BW Dev",
  "version": "1.20.0",
  "download_url": "https://plugins.bowden.works/wp-content/uploads/plugin-updates/bw-dev-1.20.0.zip",
  "download_hash": "sha256:4495b0f0359333c52a262da71ef8ef74db186b80a35f162d4358e642196b99fa",
  "download_size": 517530,
  "requires": "6.0",
  "tested": "",
  "requires_php": "7.4",
  "last_updated": "2026-07-20",
  "homepage": "https://plugins.bowden.works/bw-dev/",
  "author": "Bowden Works",
  "description": "Bowden Works dev toolkit — admin columns, favicon, sticky elements, post-link blocks, YouTube embed, menu visibility, SVG uploads, admin notes, and Flywheel auto-update support in one actively-maintained plugin. Required for several site features. See Settings → BW Dev → About.",
  "changelog": "## [1.20.0] - 2026-07-20\n\n### Added\n- **External Links module** — makes links that point off-site open in a new tab. **Opt-in / default-OFF per site** (enable under Settings → BW Dev → Modules where you want it); no visitor-facing change ships fleet-wide on update. Implemented client-side (`assets/js/external-links.js`): after the page loads it sets `target=\"_blank\"` + `rel=\"noopener\"` on every `<a>` whose host is off-site. This is deliberately not a `the_content` filter — client-side catches links from every source (theme, Kadence/Gutenberg blocks, widgets, custom HTML), works with a cached page, and adds **zero per-request PHP** (no hot-path/DOM-parsing work). Skips same-site links, anchors, and `mailto:`/`tel:`. Options: a list of extra domains to treat as internal (stay same-tab — e.g. a shop subdomain), and an optional `rel=\"nofollow\"` toggle (default off). Default-off is wired via the `bw_dev_module_default_enabled` filter in `BW_Dev_Plugin::boot()`."
}
