feat: More styles, renames some items.
This commit is contained in:
28
Sources/CliDoc/Modifiers/ShellCommandStyle.swift
Normal file
28
Sources/CliDoc/Modifiers/ShellCommandStyle.swift
Normal file
@@ -0,0 +1,28 @@
|
||||
import Rainbow
|
||||
|
||||
public struct ShellCommandConfiguration {
|
||||
let symbol: any TextNode
|
||||
let content: any TextNode
|
||||
}
|
||||
|
||||
public extension ShellCommand {
|
||||
func style<S: ShellCommandStyle>(_ style: S) -> some TextNode {
|
||||
style.render(content: .init(symbol: symbol, content: content))
|
||||
}
|
||||
}
|
||||
|
||||
public protocol ShellCommandStyle: NodeModifier where Self.Content == ShellCommandConfiguration {}
|
||||
|
||||
public extension ShellCommandStyle where Self == DefaultShellCommandStyle {
|
||||
static var `default`: Self { DefaultShellCommandStyle() }
|
||||
}
|
||||
|
||||
public struct DefaultShellCommandStyle: ShellCommandStyle {
|
||||
|
||||
public func render(content: ShellCommandConfiguration) -> some TextNode {
|
||||
HStack {
|
||||
content.symbol
|
||||
content.content.textStyle(.italic)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user