diff options
Diffstat (limited to 'Sources/NorgUI/Theme/NorgTheme.swift')
| -rw-r--r-- | Sources/NorgUI/Theme/NorgTheme.swift | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Sources/NorgUI/Theme/NorgTheme.swift b/Sources/NorgUI/Theme/NorgTheme.swift index c788812..fa8ab25 100644 --- a/Sources/NorgUI/Theme/NorgTheme.swift +++ b/Sources/NorgUI/Theme/NorgTheme.swift @@ -40,6 +40,12 @@ public struct NorgTheme: Sendable { public var blockSpacing: CGFloat /// Padding applied above a heading. public var headingTopPadding: CGFloat + /// Point size used when rendering math. Inline math is rendered at this size + /// and display blocks slightly larger. + public var mathFontSize: CGFloat + /// Renderer used for inline and block math. When `nil`, math is shown as + /// monospaced text. See ``NorgMathRenderer``. + public var mathRenderer: (any NorgMathRenderer)? /// Tint for a task's status symbol. public var statusTint: @Sendable (TaskStatus) -> Color /// SF Symbol name for a task's status symbol. @@ -68,6 +74,8 @@ public struct NorgTheme: Sendable { verbatimPadding: CGFloat = 10, blockSpacing: CGFloat = 10, headingTopPadding: CGFloat = 4, + mathFontSize: CGFloat = 17, + mathRenderer: (any NorgMathRenderer)? = nil, statusTint: @escaping @Sendable (TaskStatus) -> Color, statusSymbol: @escaping @Sendable (TaskStatus) -> String, statusLabel: @escaping @Sendable (TaskStatus) -> LocalizedStringResource = { $0.displayName } @@ -90,6 +98,8 @@ public struct NorgTheme: Sendable { self.verbatimPadding = verbatimPadding self.blockSpacing = blockSpacing self.headingTopPadding = headingTopPadding + self.mathFontSize = mathFontSize + self.mathRenderer = mathRenderer self.statusTint = statusTint self.statusSymbol = statusSymbol self.statusLabel = statusLabel @@ -120,6 +130,7 @@ public struct NorgTheme: Sendable { codeBackground: AnyShapeStyle(.quaternary), codeFont: .system(.callout, design: .monospaced), indentWidth: 18, + mathRenderer: defaultMathRenderer, statusTint: { status in switch status { case .done: return .green @@ -141,4 +152,10 @@ public struct NorgTheme: Sendable { } } ) + + #if SwiftMathSupport + static let defaultMathRenderer: (any NorgMathRenderer)? = SwiftMathRenderer() + #else + static let defaultMathRenderer: (any NorgMathRenderer)? = nil + #endif } |