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 {
572572 Button("Export JSON") {
573573 shareSingleResults(format: .json)
574574 }
575 Button("Export Markdown") {
576 shareSingleResults(format: .markdown)
577 }
578 Button("Export PDF") {
579 shareSingleResults(format: .pdf)
580 }
575581 } else {
576582 Button("CSV Export • Available in Pro") {}
577583 .disabled(true)
578584 Button("JSON Export • Available in Pro") {}
579585 .disabled(true)
586 Button("Markdown Export • Available in Pro") {}
587 .disabled(true)
588 Button("PDF Export • Available in Pro") {}
589 .disabled(true)
580590 }
581591 } label: {
582592 Image(systemName: "square.and.arrow.up")
@@ -614,11 +624,21 @@ struct ContentView: View {
614624 Button("Export Batch JSON") {
615625 shareBatchResults(format: .json)
616626 }
627 Button("Export Batch Markdown") {
628 shareBatchResults(format: .markdown)
629 }
630 Button("Export Batch PDF") {
631 shareBatchResults(format: .pdf)
632 }
617633 } else {
618634 Button("Batch CSV • Available in Pro") {}
619635 .disabled(true)
620636 Button("Batch JSON • Available in Pro") {}
621637 .disabled(true)
638 Button("Batch Markdown • Available in Pro") {}
639 .disabled(true)
640 Button("Batch PDF • Available in Pro") {}
641 .disabled(true)
622642 }
623643 } label: {
624644 Label("Export", systemImage: "square.and.arrow.up")
DomainDig/WatchlistView.swift +12
@@ -160,11 +160,23 @@ struct WatchlistView: View {
160160 Button("Export JSON") {
161161 shareTrackedDomains(format: .json)
162162 }
163
164 Button("Export Markdown") {
165 shareTrackedDomains(format: .markdown)
166 }
167
168 Button("Export PDF") {
169 shareTrackedDomains(format: .pdf)
170 }
163171 } else {
164172 Button("CSV Export • Available in Pro") {}
165173 .disabled(true)
166174 Button("JSON Export • Available in Pro") {}
167175 .disabled(true)
176 Button("Markdown Export • Available in Pro") {}
177 .disabled(true)
178 Button("PDF Export • Available in Pro") {}
179 .disabled(true)
168180 }
169181 } label: {
170182 Image(systemName: "line.3.horizontal.decrease.circle")
DomainDig/WorkflowsView.swift +20
@@ -246,11 +246,21 @@ struct WorkflowDetailView: View {
246246 Button("Export JSON") {
247247 shareWorkflowResults(format: .json)
248248 }
249 Button("Export Markdown") {
250 shareWorkflowResults(format: .markdown)
251 }
252 Button("Export PDF") {
253 shareWorkflowResults(format: .pdf)
254 }
249255 } else {
250256 Button("CSV Export • Available in Pro") {}
251257 .disabled(true)
252258 Button("JSON Export • Available in Pro") {}
253259 .disabled(true)
260 Button("Markdown Export • Available in Pro") {}
261 .disabled(true)
262 Button("PDF Export • Available in Pro") {}
263 .disabled(true)
254264 }
255265 } label: {
256266 Label("Export Results", systemImage: "square.and.arrow.up")
@@ -537,11 +547,21 @@ struct WorkflowRunSummaryView: View {
537547 Button("Export JSON") {
538548 share(format: .json)
539549 }
550 Button("Export Markdown") {
551 share(format: .markdown)
552 }
553 Button("Export PDF") {
554 share(format: .pdf)
555 }
540556 } else {
541557 Button("CSV Export • Available in Pro") {}
542558 .disabled(true)
543559 Button("JSON Export • Available in Pro") {}
544560 .disabled(true)
561 Button("Markdown Export • Available in Pro") {}
562 .disabled(true)
563 Button("PDF Export • Available in Pro") {}
564 .disabled(true)
545565 }
546566 } label: {
547567 Image(systemName: "square.and.arrow.up")