Commit 2b52ee5520
2b52ee5520cad3c47d30d513946645366f268762
parent: 01c3d342f6
Unsigned
cmc <hello@cleberg.net> · 2026-07-17 16:12 UTC
v4.8.0: Wire markdown/PDF export buttons into share menus
Adds "Export Markdown"/"Export PDF" (and batch/workflow equivalents) to the
single-result, batch, watchlist, and workflow export menus, gated behind
.advancedExports like the existing CSV/JSON options. Matches the existing
menu structure and Pro-gate wording per file rather than introducing a new
shared component, consistent with how CSV/JSON were already duplicated across
these five menus before this change.
Layout: unified · split
DomainDig/ContentView.swift
+20
| @@ -572,11 +572,21 @@ struct ContentView: View { |
| 572 | 572 | Button("Export JSON") { |
| 573 | 573 | shareSingleResults(format: .json) |
| 574 | 574 | } |
| 575 | Button("Export Markdown") { |
| 576 | shareSingleResults(format: .markdown) |
| 577 | } |
| 578 | Button("Export PDF") { |
| 579 | shareSingleResults(format: .pdf) |
| 580 | } |
| 575 | 581 | } else { |
| 576 | 582 | Button("CSV Export • Available in Pro") {} |
| 577 | 583 | .disabled(true) |
| 578 | 584 | Button("JSON Export • Available in Pro") {} |
| 579 | 585 | .disabled(true) |
| 586 | Button("Markdown Export • Available in Pro") {} |
| 587 | .disabled(true) |
| 588 | Button("PDF Export • Available in Pro") {} |
| 589 | .disabled(true) |
| 580 | 590 | } |
| 581 | 591 | } label: { |
| 582 | 592 | Image(systemName: "square.and.arrow.up") |
| @@ -614,11 +624,21 @@ struct ContentView: View { |
| 614 | 624 | Button("Export Batch JSON") { |
| 615 | 625 | shareBatchResults(format: .json) |
| 616 | 626 | } |
| 627 | Button("Export Batch Markdown") { |
| 628 | shareBatchResults(format: .markdown) |
| 629 | } |
| 630 | Button("Export Batch PDF") { |
| 631 | shareBatchResults(format: .pdf) |
| 632 | } |
| 617 | 633 | } else { |
| 618 | 634 | Button("Batch CSV • Available in Pro") {} |
| 619 | 635 | .disabled(true) |
| 620 | 636 | Button("Batch JSON • Available in Pro") {} |
| 621 | 637 | .disabled(true) |
| 638 | Button("Batch Markdown • Available in Pro") {} |
| 639 | .disabled(true) |
| 640 | Button("Batch PDF • Available in Pro") {} |
| 641 | .disabled(true) |
| 622 | 642 | } |
| 623 | 643 | } label: { |
| 624 | 644 | Label("Export", systemImage: "square.and.arrow.up") |
DomainDig/WatchlistView.swift
+12
| @@ -160,11 +160,23 @@ struct WatchlistView: View { |
| 160 | 160 | Button("Export JSON") { |
| 161 | 161 | shareTrackedDomains(format: .json) |
| 162 | 162 | } |
| 163 | |
| 164 | Button("Export Markdown") { |
| 165 | shareTrackedDomains(format: .markdown) |
| 166 | } |
| 167 | |
| 168 | Button("Export PDF") { |
| 169 | shareTrackedDomains(format: .pdf) |
| 170 | } |
| 163 | 171 | } else { |
| 164 | 172 | Button("CSV Export • Available in Pro") {} |
| 165 | 173 | .disabled(true) |
| 166 | 174 | Button("JSON Export • Available in Pro") {} |
| 167 | 175 | .disabled(true) |
| 176 | Button("Markdown Export • Available in Pro") {} |
| 177 | .disabled(true) |
| 178 | Button("PDF Export • Available in Pro") {} |
| 179 | .disabled(true) |
| 168 | 180 | } |
| 169 | 181 | } label: { |
| 170 | 182 | Image(systemName: "line.3.horizontal.decrease.circle") |
DomainDig/WorkflowsView.swift
+20
| @@ -246,11 +246,21 @@ struct WorkflowDetailView: View { |
| 246 | 246 | Button("Export JSON") { |
| 247 | 247 | shareWorkflowResults(format: .json) |
| 248 | 248 | } |
| 249 | Button("Export Markdown") { |
| 250 | shareWorkflowResults(format: .markdown) |
| 251 | } |
| 252 | Button("Export PDF") { |
| 253 | shareWorkflowResults(format: .pdf) |
| 254 | } |
| 249 | 255 | } else { |
| 250 | 256 | Button("CSV Export • Available in Pro") {} |
| 251 | 257 | .disabled(true) |
| 252 | 258 | Button("JSON Export • Available in Pro") {} |
| 253 | 259 | .disabled(true) |
| 260 | Button("Markdown Export • Available in Pro") {} |
| 261 | .disabled(true) |
| 262 | Button("PDF Export • Available in Pro") {} |
| 263 | .disabled(true) |
| 254 | 264 | } |
| 255 | 265 | } label: { |
| 256 | 266 | Label("Export Results", systemImage: "square.and.arrow.up") |
| @@ -537,11 +547,21 @@ struct WorkflowRunSummaryView: View { |
| 537 | 547 | Button("Export JSON") { |
| 538 | 548 | share(format: .json) |
| 539 | 549 | } |
| 550 | Button("Export Markdown") { |
| 551 | share(format: .markdown) |
| 552 | } |
| 553 | Button("Export PDF") { |
| 554 | share(format: .pdf) |
| 555 | } |
| 540 | 556 | } else { |
| 541 | 557 | Button("CSV Export • Available in Pro") {} |
| 542 | 558 | .disabled(true) |
| 543 | 559 | Button("JSON Export • Available in Pro") {} |
| 544 | 560 | .disabled(true) |
| 561 | Button("Markdown Export • Available in Pro") {} |
| 562 | .disabled(true) |
| 563 | Button("PDF Export • Available in Pro") {} |
| 564 | .disabled(true) |
| 545 | 565 | } |
| 546 | 566 | } label: { |
| 547 | 567 | Image(systemName: "square.and.arrow.up") |