File: CatalogTemplateKind.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 (90 lines) | stat: -rw-r--r-- 3,380 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
 This source file is part of the Swift.org open source project

 Copyright (c) 2024 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 SwiftDocC

/// Specifies the different template kinds available for
/// initializing the documentation catalog.
public enum CatalogTemplateKind: String {
    
    /// A template designed for authoring article-only reference documentation, consisting of a catalog that contains only one markdown file.
    case articleOnly
    
    /// A template designed for authoring tutorials, consisting of a catalog that contains a table of contents and a chapter.
    case tutorial

}

/// Content of the different templates
extension CatalogTemplateKind {
    
    /// Content of the 'articleOnly' template
    static func articleOnlyTemplateFiles(_ title: String) -> [String: String] {
        [
            "\(title).md": """
                # \(title)
                
                <!--- Metadata configuration to make appear this documentation page as a top-level page -->
                
                @Metadata {
                  @TechnologyRoot
                }
                
                Add a single sentence or sentence fragment, which DocC uses as the page’s abstract or summary.
                
                ## Overview

                Add one or more paragraphs that introduce your content overview.
                """
        ]
    }
    
    /// Content of the 'tutorial' template
    static var tutorialTopLevelFilename: String { "table-of-contents.tutorial" }
    static func tutorialTemplateFiles(_ title: String) -> [String: String] {
        [
            tutorialTopLevelFilename: """
            @Tutorials(name: "\(title)") {
                @Intro(title: "Tutorial Introduction") {
                    Add one or more paragraphs that introduce your tutorial.
                }
                @Chapter(name: "Chapter Name") {
                    @Image(source: "add-your-chapter-image-filename-here.jpg", alt: "Add an accessible description for your image here.")
                    @TutorialReference(tutorial: "doc:page-01")
                }
            }
            """,
                "Chapter01/page-01.tutorial": """
            @Tutorial() {
                @Intro(title: "Tutorial Page Title") {
                    Add one paragraph that introduce your tutorial.
                }
                @Section(title: "Section Name") {
                    @ContentAndMedia {
                        Add text that introduces the tasks that the reader needs to follow.
                        @Image(source: "add-your-section-image-filename-here.jpg", alt: "Add an accessible description for your image here.")
                    }
                    @Steps {
                        @Step {
                            This is a step with code.
                            @Code(name: "", file: "")
                        }
                        @Step {
                            This is a step with an image.
                            @Image(source: "", alt: "")
                        }
                    }
                }
            }
            """
        ]
    }
}