1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/*
This source file is part of the Swift.org open source project
Copyright (c) 2023 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception
See https://swift.org/LICENSE.txt for license information
See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/
import Foundation
import Markdown
/// A directive that specifies an accent color for a given documentation page.
///
/// Use the `PageColor` directive to provide a hint to the renderer as to how
/// the page should be accented with color. The renderer may use this color,
/// depending on the context, as a foundation for other colors used on the
/// page. For example, Swift-DocC-Render uses this color as the primary
/// background color of a page's introduction section and adjusts other
/// elements in the introduction section to account for the new background.
///
/// This directive is only valid within a ``Metadata`` directive:
///
/// ```markdown
/// @Metadata {
/// @PageColor(orange)
/// }
/// ```
public final class PageColor: Semantic, AutomaticDirectiveConvertible {
public static let introducedVersion = "5.9"
public let originalMarkup: BlockDirective
/// A context-dependent, standard color.
@DirectiveArgumentWrapped(name: .unnamed)
public var color: Color
/// A context-dependent, standard color.
public enum Color: String, CaseIterable, DirectiveArgumentValueConvertible {
/// A context-dependent blue color.
case blue
/// A context-dependent gray color.
case gray
/// A context-dependent green color.
case green
/// A context-dependent orange color.
case orange
/// A context-dependent purple color.
case purple
/// A context-dependent red color.
case red
/// A context-dependent yellow color.
case yellow
}
static var keyPaths: [String : AnyKeyPath] = [
"color": \PageColor._color,
]
@available(*, deprecated, message: "Do not call directly. Required for 'AutomaticDirectiveConvertible'.")
init(originalMarkup: BlockDirective) {
self.originalMarkup = originalMarkup
}
}
|