krz/domain-dig

an ios app for DNS & SSL analysis

clone: git clone https://gitbay.org/krz/domain-dig.git

2b52ee5520cad3c47d30d513946645366f268762

unsigned

author: Christian Cleberg <hello@cleberg.net> · 2026-07-17T16:12:16Z

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.
 DomainDig/ContentView.swift   | 20 ++++++++++++++++++++
 DomainDig/WatchlistView.swift | 12 ++++++++++++
 DomainDig/WorkflowsView.swift | 20 ++++++++++++++++++++
 3 files changed, 52 insertions(+)

diff --git a/DomainDig/ContentView.swift b/DomainDig/ContentView.swift
index b5ec729..d69cfa3 100644
--- a/DomainDig/ContentView.swift
+++ b/DomainDig/ContentView.swift
@@ -572,11 +572,21 @@ struct ContentView: View {
                         Button("Export JSON") {
                             shareSingleResults(format: .json)
                         }
+                        Button("Export Markdown") {
+                            shareSingleResults(format: .markdown)
+                        }
+                        Button("Export PDF") {
+                            shareSingleResults(format: .pdf)
+                        }
                     } else {
                         Button("CSV Export • Available in Pro") {}
                             .disabled(true)
                         Button("JSON Export • Available in Pro") {}
                             .disabled(true)
+                        Button("Markdown Export • Available in Pro") {}
+                            .disabled(true)
+                        Button("PDF Export • Available in Pro") {}
+                            .disabled(true)
                     }
                 } label: {
                     Image(systemName: "square.and.arrow.up")
@@ -614,11 +624,21 @@ struct ContentView: View {
                             Button("Export Batch JSON") {
                                 shareBatchResults(format: .json)
                             }
+                            Button("Export Batch Markdown") {
+                                shareBatchResults(format: .markdown)
+                            }
+                            Button("Export Batch PDF") {
+                                shareBatchResults(format: .pdf)
+                            }
                         } else {
                             Button("Batch CSV • Available in Pro") {}
                                 .disabled(true)
                             Button("Batch JSON • Available in Pro") {}
                                 .disabled(true)
+                            Button("Batch Markdown • Available in Pro") {}
+                                .disabled(true)
+                            Button("Batch PDF • Available in Pro") {}
+                                .disabled(true)
                         }
                     } label: {
                         Label("Export", systemImage: "square.and.arrow.up")
diff --git a/DomainDig/WatchlistView.swift b/DomainDig/WatchlistView.swift
index a1af244..5670e5e 100644
--- a/DomainDig/WatchlistView.swift
+++ b/DomainDig/WatchlistView.swift
@@ -160,11 +160,23 @@ struct WatchlistView: View {
                             Button("Export JSON") {
                                 shareTrackedDomains(format: .json)
                             }
+
+                            Button("Export Markdown") {
+                                shareTrackedDomains(format: .markdown)
+                            }
+
+                            Button("Export PDF") {
+                                shareTrackedDomains(format: .pdf)
+                            }
                         } else {
                             Button("CSV Export • Available in Pro") {}
                                 .disabled(true)
                             Button("JSON Export • Available in Pro") {}
                                 .disabled(true)
+                            Button("Markdown Export • Available in Pro") {}
+                                .disabled(true)
+                            Button("PDF Export • Available in Pro") {}
+                                .disabled(true)
                         }
                     } label: {
                         Image(systemName: "line.3.horizontal.decrease.circle")
diff --git a/DomainDig/WorkflowsView.swift b/DomainDig/WorkflowsView.swift
index e1cea09..3cfca42 100644
--- a/DomainDig/WorkflowsView.swift
+++ b/DomainDig/WorkflowsView.swift
@@ -246,11 +246,21 @@ struct WorkflowDetailView: View {
                                     Button("Export JSON") {
                                         shareWorkflowResults(format: .json)
                                     }
+                                    Button("Export Markdown") {
+                                        shareWorkflowResults(format: .markdown)
+                                    }
+                                    Button("Export PDF") {
+                                        shareWorkflowResults(format: .pdf)
+                                    }
                                 } else {
                                     Button("CSV Export • Available in Pro") {}
                                         .disabled(true)
                                     Button("JSON Export • Available in Pro") {}
                                         .disabled(true)
+                                    Button("Markdown Export • Available in Pro") {}
+                                        .disabled(true)
+                                    Button("PDF Export • Available in Pro") {}
+                                        .disabled(true)
                                 }
                             } label: {
                                 Label("Export Results", systemImage: "square.and.arrow.up")
@@ -537,11 +547,21 @@ struct WorkflowRunSummaryView: View {
                             Button("Export JSON") {
                                 share(format: .json)
                             }
+                            Button("Export Markdown") {
+                                share(format: .markdown)
+                            }
+                            Button("Export PDF") {
+                                share(format: .pdf)
+                            }
                         } else {
                             Button("CSV Export • Available in Pro") {}
                                 .disabled(true)
                             Button("JSON Export • Available in Pro") {}
                                 .disabled(true)
+                            Button("Markdown Export • Available in Pro") {}
+                                .disabled(true)
+                            Button("PDF Export • Available in Pro") {}
+                                .disabled(true)
                         }
                     } label: {
                         Image(systemName: "square.and.arrow.up")