File: PageColor.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (70 lines) | stat: -rw-r--r-- 2,272 bytes parent folder | download
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
    }
}